Skip to content

Seals & integrity

Sealing is Axowl’s core differentiator: consequential records are hash-chained and sealed so that tampering is detectable and decisions are independently verifiable.

Entities extending AuthIntegrityBase carry integrity fields (AuthIntegrityBase.cs):

  • RecordHash (on the base GlobalBaseEntity), PreviousHash, SequenceNumber — the hash chain.
  • SecurityMode (default General), TpmSignature (hardware seal), SealedAt — the seal.
  • NotarizedStatus / NotarizedHash / NotarizedAt — a second PUF-notarization layer.
  • General tier → NotarizedStatus stays "None"; the software seal (hash chain) is sufficient.
  • Standard / Iron tiers → after sealing, a central PUF signs again and NotarizedStatus becomes Notarized (via the Iron seal provider).
  • Tamper detection — a background scanner re-verifies stored hashes; a mismatch raises an integrity violation.
  • Independent verification — hashing is reproducible client-side, so a consumer can verify a record on their own device (the WASM core; see Integrity SDK).
  • Raw-SQL migrations bypass the interceptor → blank RecordHash='' in the migration so the seeder’s reseal pass re-seals via the interceptor.
  • jsonb columns must be canonicalized before hashing to avoid false-positive tamper alerts.