Live transactions
Every claim in these docs that says “live” points here. Each transaction links to Cardanoscan (preprod); blocks, fees, times and the details under “What to check” were read back from the chain. Nothing on this page is simulated, and no hash is filled in before its run has happened.
First passkey-signed Cardano send
Live on preprod- Block
- 5353436
- Time (UTC)
- 2026-10-30 14:03:30
- Amount
- 1 ADA to the demo seller
- Fee
- 0.167349 ADA
A plain send from the web app. The user's passkey signed the transaction body hash (SIGN_RAW_PAYLOAD_V2); the API attached the witness and broadcast through Blockfrost. The first Cardano transaction ZyroPay ever submitted. How this works
AI-paid x402 report, direct
Live on preprod- Block
- 5353756
- Time (UTC)
- 2026-10-30 15:59:52
- Amount
- 2 ADA to the seller's payTo
- Fee
- 0.167349 ADA
- Latency
- About 160 s from the agent's request to CONFIRMED, including the human approval
ChatGPT, connected through the ZyroPay MCP connector, called pay_x402 for the address report. The user approved with a passkey; the seller's facilitator submitted the transaction; the report came back with HTTP 200 and its delivery receipt verified. How this works
AI-paid lock into Masumi escrow
Live on preprod- Block
- 5353819
- Time (UTC)
- 2026-10-30 16:25:09
- Amount
- 5 ADA locked at the escrow script
- Fee
- 0.187589 ADA
- Latency
- About 130 s from the agent's request to the lock, including the human approval
The agent paid the escrow route of the same seller. ZyroPay verified the seller-signed terms, built the inline datum, bound it into the payload hash, and the user's passkey signed the lock. How this works
Seller's on-chain SubmitResult, proof verified
Live on preprod- Block
- 5353820
- Time (UTC)
- 2026-10-30 16:25:30
- Amount
- 5 ADA stays in escrow
- Fee
- 0.688128 ADA
- Latency
- 21 s after the lock, in the next block
The seller recorded result_hash = SHA-256 of the report it delivered. ZyroPay compared it with the SHA-256 the MCP worker computed over the bytes the agent received: equal, so the proof state is verified. How this works
Seller collects after unlock_time (Withdraw)
Live on preprod- Block
- 5353887
- Time (UTC)
- 2026-10-30 16:54:17
- Amount
- 4.357634 ADA to the seller (5 ADA escrow minus the fee)
- Fee
- 0.642366 ADA
- Latency
- 39 s after unlock_time, within one cron period
The seller worker's cron sweeper (every minute) saw chain time pass unlock_time and spent the escrow with the Withdraw redeemer. This closes the honest lifecycle of the escrow above: lock, SubmitResult, Withdraw. No ZyroPay component and no passkey is involved; the seller collects alone. How this works
Masumi registry registration (NFT mint)
Live on preprod- Block
- 5354719
- Time (UTC)
- 2026-10-30 22:06:48
- Amount
- 1 registry NFT, held with 5 ADA by the selling wallet
- Fee
- 0.289014 ADA
Our own Masumi Payment Service (0.29.0, Docker) minted the registry entry for Cardano Address Intelligence from its selling wallet. The NFT's asset id is the agentIdentifier; its metadata points Sokosumi and other Masumi buyers at the MIP-003 endpoint https://masumi-agent.zyropay.online, at a fixed 1 tUSDM. How this works
What to check on the explorer
Section titled “What to check on the explorer”First passkey-signed send
Section titled “First passkey-signed send”Open 0818000832…ef1ace on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Input | One UTxO from the user's enterprise address addr_test1vqj6…3wa (no stake part, ADR-002) |
| Output #0 | 1 ADA to the demo seller addr_test1qr954…kaen |
| Output #1 | Change back to the sender's address |
| Fee | 0.167349 ADA (271-byte transaction) |
| Validity | An upper bound (TTL) only |
| Scripts, metadata | None. One vkey witness. |
x402 payment, direct
Section titled “x402 payment, direct”Open 83ecc5742f…9d787b on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Input | One UTxO from the same user address addr_test1vqj6…3wa |
| Output #0 | Exactly 2 ADA (the 402's amount) to payTo addr_test1qr954…kaen |
| Output #1 | Change to the sender |
| Validity | TTL 489 slots after inclusion: inside the 402's maxTimeoutSeconds (600) |
| Fee | 0.167349 ADA |
| Scripts, metadata | None. A plain transfer: the x402 exact scheme |
Also in the seller’s answer (not on chain): PAYMENT-RESPONSE names this transaction id, and the
receipt verified against the seller’s address.
Escrow lock
Section titled “Escrow lock”Open 630f20122b…43c653 on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Output #0 | Exactly 5 ADA to the Masumi V2 escrow script addr_test1wzs4e6…37w4g, with an inline datum |
| Datum: buyer | Payment key hash 25a18eb6… (the user's address) |
| Datum: seller | Payment key hash cb4ab9d1… (the seller's address) |
| Datum: state | FundsLocked (constructor 0), result_hash empty |
| Datum: deadlines | payBy 16:28:38, submitResult 16:38:38, unlock 16:53:38, external dispute 17:08:38 (UTC) |
| Validity | TTL = payBy rounded down to a slot (137694518) |
| Output #1 | Change to the user; no script runs at lock time |
| Fee | 0.187589 ADA (731-byte transaction) |
Seller’s SubmitResult
Section titled “Seller’s SubmitResult”Open ee7b142e73…865361 on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Inputs | The escrow UTxO 630f2012…#0 (5 ADA, script) and a 20 ADA seller UTxO |
| Script | One Plutus V3 execution (the 10,003-byte vested_pay script, inline) |
| Output #0 | 5 ADA back to the escrow, same datum except the fields below |
| Datum: result_hash | d80a4d02d13d08a45d4662e432c5a5a6550ac9c2a093549f5dbbd0c6afbfbfce |
| Datum: state | ResultSubmitted (constructor 1); seller cooldown set |
| Collateral | The same 20 ADA seller UTxO, with a 15 ADA collateral return |
| Fee | 0.688128 ADA (11,052-byte transaction, paid by the seller) |
The proof: the SHA-256 ZyroPay’s MCP worker computed over the report the agent received equals the
result_hash above, so the request’s proof state is verified.
Seller’s Withdraw
Section titled “Seller’s Withdraw”Open c59d85cf3b…b916d3 on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Input | The escrow UTxO ee7b142e…5361#0 (5 ADA at the script, state ResultSubmitted) |
| Script | One Plutus V3 spend of the vested_pay script a15ce9d8…14ad, redeemer Constr 0 [] (Withdraw) |
| Output #0 | 4,357,634 lovelace to the seller addr_test1qr954…kaen; no output back to the escrow |
| Validity | Starts at slot 137696019, after unlock_time (16:53:38 UTC): the script only allows Withdraw then |
| Signer | The seller's payment key (cb4ab9d1…), the key the datum names |
| Fee | 0.642366 ADA (10,450-byte transaction, the script inline, paid out of the escrow) |
Lock, SubmitResult and Withdraw are one escrow, start to finish: each spends the output the one
before created (630f2012…#0, then ee7b142e…#0). The seller’s own status route agrees:
GET https://address-intel.zyropay.online/v1/escrow/630f2012…c653 answers
"status": "withdrawn".
Masumi registry entry
Section titled “Masumi registry entry”Open 11dcdf21c5…1486e9 on Cardanoscan (preprod) and check:
| Where | What you should see |
|---|---|
| Mint | 1 asset under the Masumi V2 registry policy 67ab0c92…bd0b, mint redeemer Constr 0 [] |
| agentIdentifier | 67ab0c92…bd0b106fe284…8f000000 (policy id followed by the asset name) |
| Output #0 | The NFT with 5 ADA to the selling wallet addr_test1qr44th…c2xv |
| Metadata 674 | msg: Masumi, RegisterAgent |
| Metadata 721 | name Cardano Address Intelligence, author ZyroPay, api_base_url https://masumi-agent.zyropay.online |
| Fee | 0.289014 ADA (2,922-byte transaction) |
The full agentIdentifier is
67ab0c92c4ac1610895a1c965ee50aba41a8f1513b15240723b3bd0b106fe284ceb06b6c8510815f3d9813378d66b57c8c9cecf4e31532928f000000
(token on Cardanoscan).
Its endpoint answers: GET https://masumi-agent.zyropay.online/availability returns
{"status": "available", "type": "masumi-agent"}, and POST /start_job returns node-signed terms
in state awaiting_payment. Two smaller transactions before the mint funded the selling wallet
(e42223ad…7313, 100 tADA from a test wallet of the ZyroPay team) and split off its collateral
(3e101ee6…5d89); both are housekeeping and prove nothing on their own.
Awaiting a live run
Section titled “Awaiting a live run”These are built and tested offline; each will be added here with its hash after it runs.
Refund: SetRefundRequested and WithdrawRefund, passkey-signed
Awaiting live runThe user asks for a refund in the app, the seller authorizes it, and the user withdraws. Both buyer spends are signed with the passkey. How this works
Dishonest seller: proof mismatch, then refund
Awaiting live runThe seller's demo switch records one hash on chain and delivers other bytes; ZyroPay reports mismatch and recommends a refund. How this works
Agents hiring agents: the seller's sub-payment
Awaiting live runAddress Intelligence pays Token Intelligence over x402 while building a report, and embeds the specialist's receipt. How this works
Paid Sokosumi task
Awaiting live runA Sokosumi hire paid into the Masumi escrow, the result hash submitted by our Payment Service. How this works
Autonomous payment within an on-chain allowance
Not builtNot built. Cardano payments always need the passkey today. How this works
Earlier runs on other networks
Section titled “Earlier runs on other networks”On the previous staging deployment (2026-10-20), real passkey-signed sends confirmed on Solana devnet
and Ethereum Sepolia through the web app, and a delegated-key autonomous payment of 0.01 SOL confirmed
on devnet. They are recorded in docs/IMPLEMENTATION_STATUS.md; their hashes are not part of this
evidence set.