ZK Escrow Explorer
A live demo of the Pigfox zk-escrow contracts on Base Sepolia. Funds are released either by a Groth16 zero-knowledge proof of a delivery secret, or — when delivery is contested — by an AI arbiter whose ruling and full reasoning are written to the chain.
Base Sepolia · testnet only
Everything below is live and readable without a wallet — connect one only to send a transaction.
Proxy 0x4421…9774 · Implementation 0x22c9…1b8A · Verifier 0x20B9…5825 · Source on GitHub
Live on chain
Live data unavailable — showing the last known values.
- Escrows14
- Contract balance0.0018 ETH
- Pending withdrawals0.001 ETH
- Block45997816
Funds are never pushed. Every settlement credits a pull-payment balance the payee withdraws themselves, so the contract's ETH balance covers the total pending withdrawals, plus anything still held in an open escrow.
Escrows
Featured
| # | State | Amount | Buyer | Seller | Arbiter | Details |
|---|---|---|---|---|---|---|
| 0 | Released | 0.001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| Released with a ZK proof | ||||||
| 1 | Resolved | 0.001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| AI ruling — seller wins | ||||||
All escrows (14)
| # | State | Amount | Buyer | Seller | Arbiter | Details |
|---|---|---|---|---|---|---|
| 0 | Released | 0.001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 1 | Resolved | 0.001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 2 | Disputed | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 3 | Created | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 4 | Funded | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 5 | Disputed | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 6 | Funded | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 7 | Disputed | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 8 | Funded | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
| 9 | Disputed | 0.0001 ETH | 0xe2DA…c03E | 0xfEe5…6eEb | 0x97eC…32aE | |
Interact
Everything above is readable without a wallet. To send a transaction, connect one — it signs and broadcasts on your machine. Pigfox never holds, receives, or proxies a private key.
Not connected.
Create an escrow
Fund an escrow
Release with a proof
Refund the buyer
Raise a dispute
Submit further evidence
Withdraw your balance
Settlements are never pushed to you. Every outcome credits a pull-payment balance that you withdraw yourself.
Connect a wallet to see your balance.
Every check on this panel is UX only — the contract enforces all of it regardless of what this page allows. There is deliberately no resolveDispute action here: disputes are settled by the AI arbiter agent, and its rulings appear in the escrow timelines above.
Recovery story
This happened on the retired v1 deployment (0x8bB2…8A84), not on the contract above. That proxy is still on chain and still holds every transaction described here — but none of these numbers belong to the deployment this page reads. It is kept because it is the honest record of how the contract behaved under real traffic.
An earlier run assigned several disputes an arbiter address that had no private key anywhere — a keyless arbiter can never call resolveDispute, so nine escrows sat stranded in Disputed, their funds frozen (though never at risk: a settlement can only ever pay the buyer or seller).
The fix used the one authority still keyed — the contract owner. A V2 implementation (0x1cB2…1637) was deployed and that proxy upgraded to it via UUPS upgradeToAndCall, adding a single owner-only setArbiter scoped to a disputed escrow; the storage layout is byte-identical to V1. All nine arbiters were then rotated to a fresh keyed address — one rotation on-chain.
With the arbiter keyed and funded, the AI agent settled all nine: it read each dispute's evidence, ruled, and wrote both the ruling and its full reasoning to the chain — one settlement on-chain. Every one now reads Resolved.
About this demo
Testnet only. These contracts hold Base Sepolia test ETH, which has no monetary value, and the circuit's trusted setup is demo-grade — it was generated for this demo and is not a ceremony anyone should rely on.
Pigfox never holds, receives, or proxies a private key. This page reads the chain and nothing more; anything that changes state is signed by your own wallet.
What the AI arbiter is and is not trusted with is written out in full in the trust model. A commitment is Poseidon(secret), derived locally by scripts/poseidon.js — the secret itself never leaves your machine.