Every state change in an Orgs entity writes an audit chain entry — BLAKE3-hashed, Ed25519-signed, linked to the previous entry. The chain is immutable, tamper-evident, and admissible in court.

Entry format

{
  "event": "proposal.vote.cast",
  "entity": "did:oas:wy:llc:0001423",
  "proposal": "prop-2026-04-12-0031",
  "actor":   "did:oas:human:hr-01-a4f2",
  "payload": {
    "choice":  "approve",
    "weight":  1.0,
    "reason":  "Q2 compute is budgeted; this is within plan."
  },
  "ts":       "2026-04-12T14:22:07.123Z",
  "policy":   "constitution.governance.voting",
  "prev":     "blake3::6b7f2c94...3d0a",
  "hash":     "blake3::c2a81f3b...e7d9",
  "sig":      "ed25519::a4f2c7b9...8b2c"
}

Hash chain

Each entry’s hash is computed as:
hash = BLAKE3(canonical_json({
    event, entity, actor, payload, ts, policy, prev
}))
And the entry is signed:
sig = Ed25519_sign(
    private_key = actor_signing_key,
    message = hash
)
Any tampering with a historical entry breaks the chain from that point forward — both the hash and the signature fail verification.

Event types

Event names are hierarchical. Common ones:
  • entity.created, entity.updated, entity.dissolved
  • constitution.loaded, constitution.amended
  • proposal.created, proposal.opened, proposal.closed
  • proposal.vote.cast, proposal.vote.delegated
  • proposal.executed
  • treasury.balance.checked, treasury.disbursed, treasury.received
  • compliance.filed, compliance.renewed
  • escalation.check, escalation.required, escalation.resolved
  • member.added, member.removed, member.role_changed

Retention

  • Default: 7 years
  • Extended: configurable up to 99 years via constitution
  • Legal hold: indefinite for an entity under legal hold

Export

Chain segments can be exported in three formats:
  • JSONL — one entry per line, human-readable, good for grep
  • CSV — flat, good for spreadsheet import
  • Parquet — columnar, good for analytics
orgs audit export helios-research \
  --since 2026-01-01 \
  --until 2026-04-01 \
  --format parquet \
  --output ./2026-q1.parquet

Verification

Anyone with a chain segment + the relevant public keys can verify independently:
orgs audit verify ./2026-q1.parquet
# Returns: 12,488 entries, all signatures valid, chain intact.

Court admissibility

Audit chain exports are admissible under Federal Rules of Evidence 803(6) as business records. Key properties:
  • Contemporaneous (written at time of event)
  • Regular course of business (every action writes)
  • Custodian testimony available (Orgs as platform operator)
  • Integrity verifiable (hash chain + signatures)
We have supported customers with audit-chain-based evidence in 4 cases through 2026 Q1. Happy to provide references on request.