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.

BaseBase Sepolia · testnet only

Everything below is live and readable without a wallet — connect one only to send a transaction.

Proxy 0x8bB2…8A84 · Implementation 0x5c3F…0Fb4 · Verifier 0xE637…2D56 · Source on GitHub


Live on chain

  • Escrows4
  • Contract balance0.003 ETH
  • Pending withdrawals0.003 ETH
  • Block44455627

Funds are never pushed. Every settlement credits a pull-payment balance the payee withdraws themselves, so the contract's ETH balance always equals the total pending withdrawals.


Escrows

Every escrow this contract has created, oldest first. Expand a row for its commitment and its full evidence timeline.
#StateAmountBuyerSellerArbiterDetails
0 Released 0.001 ETH 0x49FE…5edF 0x7099…79C8 0x90F7…b906
1 Released 0.001 ETH 0x49FE…5edF 0x7099…79C8 0x90F7…b906
2 Resolved 0.001 ETH 0x7099…79C8 0x9965…A4dc 0x49FE…5edF
3 Resolved 0.001 ETH 0xeBA0…42d7 0xDdD2…933d 0x49FE…5edF

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

The commitment is Poseidon(secret). Derive it locally with scripts/poseidon.js — the secret never leaves your machine, and you will need it again to generate the release proof. You become the buyer; the three addresses must all differ.

Fund an escrow

The exact amount is read back from the chain, so the value sent always matches to the wei. Buyer only, and only while the escrow is Created.

Release with a proof

Anyone may send this transaction: the proof authorises the release, not the sender, and it is bound to this one escrow by the nullifier. Generate all of it with scripts/prove.sh <secret> <escrowId>.

Refund the buyer

Seller only, and only while the escrow is Funded.

Raise a dispute

Buyer or seller, on a Funded escrow. This text is emitted on chain in the clear and is what the AI arbiter reads — and what anyone else can read too.

Submit further evidence

Buyer or seller, on a Disputed escrow. Also emitted on chain in the clear.

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.


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.