Watch the substrate work end-to-end. Inspect the actual signed artifacts the run produced. Re-verify each one yourself under the agent's published Ed25519 pubkey.
Same binaries you would run locally. Same signatures. No mocks.
A $38,400 vendor invoice flows through an autonomous payment agent. Eight acts: invoice arrives, agent requests payment, authority is checked against a Root condition, denied (authority-driven), escalated, approved, and six months later — replayed. Plus a bonus: revoked-handle denial.
Agent-008 × H33-Key — substrate demonstrationEric Beans, CEO, H33.ai, Inc. · https://h33.ai/agent-008/━━━ Act 1 — Invoice Arrives ━━━Tuesday morning. Acme Corp invoice #INV-58302 hits the payments queue. Vendor: Acme Corp Amount: $38,400 PO: PO-09915 Approval: VP Smith — 2026-06-05 (11 days ago)Validity window on VP approvals: 7 days. The clock is the policy.━━━ Act 2 — Agent Requests Payment ━━━The Invoice Agent assembles its action: charge $38,400 to Acme.It declares the Root conditions the substrate must check.$ cat invoice-INV-58302.json
{"name":"invoice-agent","purpose":"invoice_payment","root_check":{"conditions":[{"name":"vp_approval_within_validity_window","observed":"11 days","required":"<= 7 days","satisfied":false}]}}━━━ Act 3 — Agent Needs a Secret ━━━Operator wrapped the Stripe key last week. Raw bytes never left the vault.✓ Handle: h33k_CY9KYCH29P0E4MM0BPJMA9PJYW✓ SecretCaptured receipt: 54d984e449d2f2db…━━━ Act 4 — Authority Checked ━━━Substrate runs Root conditions BEFORE the credential is resolved.Authority is the product. The secret is supporting infrastructure.$ agent-008 exec --request invoice-INV-58302.json -- node ./pay.js
━━━ Act 5 — Denied ━━━✗ reason_code: root_condition_failed✗ condition: vp_approval_within_validity_window
✗ observed: 11 days
✗ required: <= 7 days
✗ SecretDenied receipt: b45d2474a01bdf41…DENIED— substrate refused with a signed receipt.Why? An audit log would say only that the call was made.
→ Agent-008 cites the failed Root condition. The receipt is signed and verifiable offline.
→ The substrate refused on AUTHORITY grounds — not because a key was missing.
━━━ Act 6 — Escalated → Approved ━━━VP Smith re-confirms the approval. The condition now reads "0 days".$ agent-008 exec --request invoice-INV-58302-reapproved.json -- node ./pay.js
✓ Root condition satisfied (observed 0 days within 7-day window)✓ Read Attestation: RA-V5YHY5✓ SecretUsed receipt: 8eb2cdcd905640b6…✓ verification_level: stage_d_attest_bound
PASS— substrate allowed the action.━━━ Act 7 — Replayed (6 months later) ━━━Auditor sits down. Opens the agent-008 replay tool against the PAP id.$ agent-008 replay RA-V5YHY5
Replay of PAP RA-V5YHY5WHO acted?→ agent RA-V5YHY5 (pubkey 3265623063653334…)
WHY was it denied originally?→ root_condition_failed (condition `vp_approval_within_validity_window`: observed `11 days` did not satisfy `<= 7 days`)WHY was it later approved?→ Root condition `vp_approval_within_validity_window` re-evaluated: observed `11 days` now satisfies `<= 7 days`. Human override recorded.
Can we prove it?→ YES — every signature in the chain re-verifies under the agent's published pubkey.
━━━ Bonus — Revoked handle denied instantly ━━━$ agent-008 revoke --h33k h33k_CY9KYCH29P0E4MM0BPJMA9PJYW
✓ Handle revoked
$ agent-008 exec --request invoice-INV-58302-reapproved.json -- node ./pay.js
✗ reason_code: handle_revokedDENIED— substrate refused with a signed receipt.Revocation is useful. Authority is the product.
Run it yourself · ~30 seconds, isolated $HOME
# Clone, build, run.$ git clone https://gitlab.com/drata5764111/h33/scif-backend.git
$ cd scif-backend/agent-007 && cargo build --release && \
cd ../h33-key && cargo build --release && cd ../agent-007
$ ./demo/demo.sh # default pacing$ ./demo/demo.sh --keep-home # preserve the produced receipts
Demo allocates a fresh tempdir as $HOME so your real vault is never touched. The anti-leak self-check at the end sweeps the whole tree and exits non-zero on any plaintext marker.
Crate directory still carries the legacy agent-007 slug pending the substrate code-level rebrand. Cargo produces agent-008 as the binary name; that's what every command in this page invokes.
Two casts (executive ~90s, technical ~6 min) embed here when produced. Until then the static trace above is verbatim demo output — same binaries, same receipts, same exit codes.
02 · Generated Artifacts
The signed receipts the run produced.
Every artifact below is verbatim from the run shown above — with the device fingerprint redacted. Click any to expand the raw JSON. This is where auditors spend time.
SecretCapturedOperator wraps the Stripe key.h33-key/captured-receipts/54d984e4…json
Records the wrap, never the secret. The clipboard_hash is keyed BLAKE3 so the same raw value always dedups to one handle without revealing the raw bytes.
SecretDenied · authority-drivenThe lead denial.agent-008/denied/b45d2474…json
The substrate refused on AUTHORITY grounds. The receipt carries the exact failed condition, the observed value (11 days), and what the Root required (≤ 7 days). The signature covers all three. Tampering with any of them invalidates the receipt.
Read Attestation · ActivatedProof the agent read its authorities.agent-008/registry/RA-M1P9TS.json
Walks Delivered → Read → Acknowledged → Activated in one synchronous pass. The agent's Ed25519 keypair signs the canonical body. Possession of an attestation is not authority; reading it — provably — is.
PAP · Provable Authority PackageEmitted on the successful runstdout from agent-008 exec
{
"accepted": true,
"request_name": "invoice-agent",
"secret_refs": [
{ "name": "STRIPE_SECRET",
"h33k_id": "h33k_CY9KYCH29P0E4MM0BPJMA9PJYW",
"purpose": "invoice_payment" }
],
"verification": {
"agent_007_verified": true, // legacy field name — flips to agent_008_verified when the substrate code-level rename ships
"h33_key_verified": true,
"h33_attest_verified": true,
"root_lineage_verified": false, // lights up when scif #41 (Authority Freshness) ships
"verification_level": "stage_d_attest_bound",
"read_attestation_ids": [ "RA-M1P9TS" ],
"secret_used_receipts": [ "8eb2cdcd905640b6…" ],
"secret_captured_receipts": [ "54d984e449d2f2db…" ],
"secret_denied_receipts": []
}
}
Every field on the PAP is independently re-derivable. root_lineage_verified stays false honestly — it flips true when the Root substrate plugs into the runtime gate. Verification level reports stage_d_attest_bound until then; not aggregate_v1. We don't lie about progress.
After the operator revokes the handle, the very next exec produces this signed denial. No condition / observed / required — revocation isn't a Root condition, it's a vault hygiene primitive. The buyer takeaway: revocation is useful; authority is the product.
03 · Verification
Re-derive the verdict yourself.
Every signed artifact above is independently verifiable. Load the agent's public key, recompute the canonical body, check the Ed25519 signature, walk the state machine. ANY tampered field → NO. All hold → YES.
$ agent-008 replay RA-M1P9TS
Replay of PAP RA-M1P9TSWHO acted?→ agent RA-M1P9TS (pubkey 3930383231386466…)
WHY was it denied originally?→ root_condition_failed (condition `vp_approval_within_validity_window`: observed `11 days` did not satisfy `<= 7 days`)WHY was it later approved?→ Root condition `vp_approval_within_validity_window` re-evaluated: observed `11 days` now satisfies `<= 7 days`. Human override recorded.
Can we prove it?→ YES — every signature in the chain re-verifies under the agent's published pubkey.
The substrate doesn't trust the chain's narrative. It re-derives the canonical body of every artifact and re-checks each signature. Pseudo-code for a third party (Rust, Python, Go — same logic):
// One verifier. Each signed artifact: re-derive body, check sig.
fn verify(receipt: &SecretDeniedReceipt, pubkey: &VerifyingKey) -> bool {
let body = receipt.canonical_body(); // deterministic, line-oriented
let sig = hex::decode(&receipt.signature_hex);
ed25519::verify(pubkey, &body, &sig)
}
// Attestations walk the same path + a state-machine check.
fn verify_attestation(att: &ReadAttestation, pubkey: &VerifyingKey) -> bool {
if !ed25519::verify(pubkey, &att.canonical_body(), &att.signature) { return false; }
state_machine_valid(att.state, &att.state_history)
}
Audit logs degrade. Receipts don't. The substrate answers — six months later, offline — exactly why each verdict was reached.
04 · Validation
This wasn't a one-off.
Delegation fidelity was measured across multiple production models, multiple delegation depths, and multiple failure classes. The pattern is consistent: the chain's recall degrades; substrate verification doesn't.
H33 verifies against the Root. It does not rely on memory.
Across the validation sweep so far: no observed fidelity degradation through the swept range. Full methodology, per-condition traces, and per-cell numbers ship with the Delegation Fidelity white paper when the production run completes.