Arrive, verify, approve, chain.
Scroll through the four moments that turn an agent's payment instruction into evidence a third party can replay.
Transactions arrive. None of them is checked yet.
Card payments, cross-border transfers and treasury sweeps flow between New York, London, Frankfurt, Dubai, Mumbai, Singapore and Tokyo. Each is initiated by a different agent, under different keys and policies. Without a receipt, each one is just a pending line in somebody's log.
- Intent declared by the agent ("pay supplier invoice 4471")
- Nothing yet that a third party could check
Every transaction passes the gate and is checked.
Each instruction is put into one canonical form, hashed, and signed twice: Ed25519 and ML-DSA-65. It leaves the gate as a receipt that the receiving side can verify on its own. If either signature fails, the receipt fails. There is no "mostly valid".
- Canonical encoding (dCBOR), so two verifiers agree byte for byte
- Key id and key epoch inside the signed body
A high-value payment waits for two of two.
Above the policy threshold the payment is held at the gate. Two named approvers must sign before it is released, and the approval is itself a signed receipt that records which policy applied at that moment. Four-eyes stops being a screenshot in a ticket.
- Approver 1 and approver 2 each sign; order and time are recorded
- A missing or late approval is visible, not silent
Receipts chain, roll into a root, and are designed to anchor outside the bank.
Each checked receipt links to the one before it. Batches roll up into a Merkle root that is designed to be anchored externally, so nobody, including the bank or DCS, can rewrite history quietly. An auditor takes the chain and the root and replays it with an offline verifier.
- Inclusion proof for any single payment
- Insertions, deletions and edits show up as mismatches