Demo checklist

A straight line through the full escrow flow, refund and donation both included. Every step below is a real transaction you sign — nothing here simulates success.

Contract
0xF0B5…6295
Connected walletNot connected
  1. 1

    Fund two wallets

    A builder wallet and a verifier wallet, both holding test MON on Monad testnet (chain id 10143). Get free test MON from the official faucet.

    faucet.monad.xyz
  2. 2

    Deploy (or confirm) the contract

    Ship or Donate needs a deployed ShipOrDonate contract address configured in this app before anything below works.

  3. 3

    Builder: create a commitment

    Connect the builder wallet, go to Create, and set a real project title, a deadline a few minutes out, a stake amount, the verifier wallet's address, and an open-source donation recipient address. Review, then confirm in MetaMask.

  4. 4

    Builder: submit proof

    On the commitment page, click Submit proof and paste a real GitHub repo URL, a deployed URL, and a demo video link. Confirm the transaction.

  5. 5

    Verifier: approve

    Switch MetaMask to the verifier wallet on the same commitment page. The Approve proof action appears because the connected address matches the verifier. Confirm — the stake refunds to the builder immediately.

  6. 6

    Optional: show a donation

    Create a second commitment with a deadline a minute or two out, and let it go unapproved. Once the deadline passes, any connected wallet can click Settle expired commitment, sending the stake to the donation recipient instead.

No simulated transactions

Every action on this site is a real onchain transaction. If your wallet is disconnected, the contract address is not configured, you are on the wrong network, or you are out of test MON, the app shows an explicit error state instead of pretending anything succeeded.