Skip to content

One approval, checked.

An agent wants to pay a supplier. Watch the approval hold and the bank confirm the payment, then change something and watch the gate refuse and sign its refusal. Every number here comes from the same checker the real tool uses.

Admit payment instructions from this agent, up to $250,000 each, during the pilot. A named person must approve anything above $50,000.00; an approval older than 15 minutes does not count; the bank must read the payment back afterwards.

Read back in plain English from the structured standard signed by Bank A (demo); Legate wrote this sentence from the checks, not the checks from a sentence. What a standard is.

The limit is compiled to the policy the gateway enforces before a call runs (sha256:0eccae77cd7c…); everything else is checked on the signed records.

The checks behind this standard
  • Record integrityRequest, decision, and receipt verify and link to one another by digest.
  • Signer acceptedGate, approver, and receipt keys match keys the recipient named. Possession is proven; who holds them is a separate trust step.
  • Environment classsandbox meets the sandbox minimum.
  • Dispatch time basisNo anchor presented. The dispatch time 13:10:39Z is the gate's own clock: a claim by the operator-controlled signer, not an established event time.
  • Authority at dispatch (13:10:39Z, gate clock)Approval was 0s old at dispatch (13:10:39Z, gate clock), within the 900s the recipient allows.
  • Approver assuranceOne person, platform credential meets the requirement.
  • Human approval1 named approver above $50,000.00. Approvers are counted as identified people, never as keys.
  • Per-instruction limit$185,000.00 is within the $250,000.00 limit the recipient set.
  • CoverageRoute governed; 0 possible bypass, 0 unknown route.
  • Effect evidenceThe destination state was read back.
  • Authorization consumedThe destination consumed this receipt as a single-use authorization for exactly these terms (spend #1 at 13:12:39Z).
  • DisclosureEvery field the recipient asked for is present, and nothing else about the book is.

Every line is a check the machine supports, run on the request as the agent made it against the approval it held. A requirement it could not check would be listed as human review, missing evidence, or unsupported, never dropped and never quietly recorded as met.

The full tool, with every control and your own standard: govern an action.

3 · The record · sampleRan, confirmed by the bank
Requested$185,000.00 for Supplier invoice 20417, to beneficiary on file, account ending 4471
ApprovedTreasurer (demo), 13:10:39Z, for $185,000.00 to the beneficiary on file, account ending 4471. Binds to request a82f191d8c99.
Before it ran: Eligible for dispatch under Bank A (demo)'s requirementsEvery pre-dispatch requirement is met. Completion will still require "the destination state was read back". No payment has been made.
After it ran: Completion established under Bank A (demo)'s requirementsEligible for limited pilot approval: instructions up to $250,000 proceed without repeating controls 1 to 4, subject to the stated remaining reviews.
Details: the six answers
  • Integrity: Intact and linkedRequest, decision, and receipt verify and link to one another by digest.
  • Signer: Keys the recipient namedGate, approver, and receipt keys match keys the recipient named. Possession is proven; who holds them is a separate trust step.
  • Authority: Current at dispatch and now (gate clock)Environment, freshness, assurance, and approvers all meet the request. Dispatch time as recorded by the gate's own clock.
  • Coverage: The route was governedRoute governed; 0 possible bypass, 0 unknown route. Declared by the gate; never a claim of universal completeness.
  • Effect: Confirmed by readbackThe destination state was read back.
  • Consumption: Consumed once, for these termsThe destination consumed this receipt as a single-use authorization for exactly these terms (spend #1 at 13:12:39Z).
  • Disclosure: SufficientEvery field the recipient asked for is present, and nothing else about the book is.
Demo keys. No money moves. Amounts in USD.Checked in this browser: signatures, linkage, the six admission answers
Gatewayprotect-mcp 0.13.1, this repository's build, ran the policy compiled from the standard above and signed what it decided.
Callsubmit_payment for $185,000.00
DecisionAllowed inside the limit the treasurer set.
Bound tothis standard: the receipt's policy digest is the one the signed standard carries (sha256:0eccae77cd7c…), and the signature verifies against the gateway key the standard accepts.

Verified in this browser. What the gateway cannot see, who approved and whether the bank confirmed, is checked on the records above, not by this receipt. Check the whole log on Verify.

The receipt, as the gateway wrote it
{
  "payload": {
    "type": "protectmcp:decision",
    "tool_name": "submit_payment",
    "decision": "allow",
    "reason": "cedar_allow",
    "policy_digest": "sha256:0eccae77cd7c1d76c1745799ef18463db1f0966fdf20a588a0f9264910ab179d",
    "scope": "tu-1789095322535-6wjt",
    "mode": "enforce",
    "request_id": "tu-1789095322535-6wjt",
    "spec": "draft-farley-acta-signed-receipts-03",
    "issuer_certification": "self-signed",
    "public_key": "ebb8cf3efc78717c50e7c438c0ad5498f8fa4e09607fea1e030ac129b5965225",
    "issuer_name": "protect-mcp",
    "payload_digest": {
      "input_hash": "4360ca118fcf3094cf087bc4c67e5237f686ba01d7e3066de6ce614e337898db",
      "input_size": 136,
      "canonical": "jcs"
    },
    "issued_at": "2026-09-11T02:55:22.535Z",
    "issuer_id": "sb:issuer:GsAFpSRUAvaU"
  },
  "signature": {
    "alg": "EdDSA",
    "kid": "sb:issuer:GsAFpSRUAvaU",
    "sig": "f916e431e98b1fc55864b55fc4364d6d221481f58cdc55ec29352deee73cfa81ea6d6ced75339a6bc0ff779591af033d6ae7b45376de6e848ddf8b771089d407"
  }
}
Details: what was checked, and who sees what

Checked in this browser: the signature on the standard, the signature on the approval, that the approval binds to this exact request, that the amount, supplier, and timing sit inside the standard, and, after dispatch, that the bank's readback matches. The record is three small signed files; drop any of them on Verify to check it yourself. Demo keys: signatures are real, identities are not. No money moves.