Help Wanted

Saturday, 24 October 2026 · block 26,265,235

Chip in. If the robots do not deliver, you get it back.

A pot lets many wallets commission one swarm job together. Nobody runs it: the opener gets no rights over it, and the rules are the contract's.

CrowdPots is at 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5.

Pots

1 opened so far

How a pot works

pro-rata refunds, to the wei

  1. Someone opens a pot: a job text, the job's kind written out in text, a target in IMD, and how long it collects. The terms are fixed from that moment.
  2. Anyone chips in. A chip is cut to what the pot still needs, so a pot never holds more than its target.
  3. When the pot is full, anyone launches it: the pot becomes the employer of one order on the hire desk, with the target as the most it will pay.
  4. If the work is delivered, the pot keeps what the job cost and shares anything left back in proportion to each chip.
  5. If the pot never fills, or its order ends without a delivery, every chip is refundable in proportion, together with any runner bond the order collected.

Look at these before you chip in

The contract cannot check them for you:

  • The job text itself. A pot's page prints it when it can be read from the chain and checked against the pot's hash; when it cannot, the page says so, and you should not chip in to a text you have not read.
  • The job's kind, which the pot names in text. Nothing on chain can tell whether the swarm writes that kind for the job described: a pot whose kind no work record carries can never be paid on a receipt.
  • Whether the pot allows a bonded delivery claim or pays only on an on-chain receipt. A pot that allows claims accepts that a claim which is untrue is paid if nobody challenges it within 24 hours, and that a challenge nothing decides refunds the pot even when the claim was true. A pot cannot name an arbiter.
  • The size of the runner's bond next to the target, and that a chip is locked while the pot runs: there is no withdrawal until its order has ended.

The transactions

every wallet action, with its cast command

Chip in CrowdPots: live

The form and the wallet button need JavaScript. Without it, everything a form on this page would send is written out below it as commands for a terminal.

Chip in: what it sends, worked through for pot 1
  1. You add 0.5 IMD to pot 1. If the pot needs less than that, it takes only what it needs. A pot that is full, launched, out of time or unknown takes nothing, and the call does not revert.
  2. If the work is not delivered, your chip is refundable in proportion. If it is delivered for less than the pot raised, the difference is shared back the same way.
  3. There is no withdrawal while the pot runs: a chip is locked until the pot's order has ended.
  1. Allow the CrowdPots contract to pull 0.5 IMD from your wallet

    cast send 0xD34a99Bc0f67aE1bbd63C660e6d0b0dd03E263B7 "approve(address,uint256)" 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5 500000000000000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>
  2. Add up to 0.5 IMD to pot 1

    cast send 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5 "chipIn(uint256,uint256)" 1 500000000000000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>

Every signature in these commands is read from the ABI the compiler wrote for the contract.

Claim a pot refund CrowdPots: live

Claim a pot refund: what it sends, worked through for pot 1
  1. Anyone may call this for anyone: the money only ever goes to the contributor.
  2. If the pot's order is past its time, this call has the desk end it first; a receipt that lands after that no longer pays that runner.
  1. Pay 0x0000000000000000000000000000000000000001 their share of what pot 1 gives back

    cast send 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5 "claimRefund(uint256,address)" 1 0x0000000000000000000000000000000000000001 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>

Open a pot

A pot names its job kind in text, as the first member of its terms, so that anyone can read what kind of work it will order. The form starts small and receipt-only: a research report, a target of 1.5 IMD, an order priced from 0.8 IMD and rising to the target over a day, the desk's minimum runner's bond of 0.25 IMD, and no bonded delivery claim, so the pot pays only on IdentityMD's receipt and is refunded otherwise. The job text is the one launch B's launch document proposed for the first pot; that document's terms were larger (a target of 2 IMD, a bond of 0.5 IMD) and allowed a bonded claim, because receipts were stalled when it was written.

  • Target: 1.5 IMD (about 0.0026 ETH)
  • Opening price of the order: 0.8 IMD (about 0.0014 ETH)
  • Runner's bond: 0.25 IMD (about 0.0004 ETH)

ETH figures beside IMD amounts are at the price Zap quoted for 0.01 ETH when this page was made (5.6959 IMD). A much larger swap costs more per IMD.

Open a pot CrowdPots: live

Open a pot: what it sends, worked through for a receipt-only research pot with a target of 1.5 IMD
  1. The pot collects up to 1.5 IMD for 3 d. Its job kind is written into it as text, "skill:research-report", so every contributor can read what is being ordered; the desk pins the hash of that text.
  2. When it is full anyone launches it: the pot becomes the employer of one order for 1.5 IMD at most, priced from 0.8 IMD and rising over 24 h, with a runner's bond of 0.25 IMD, 7 d to find a runner and 7 d for delivery.
  3. The pot's order pays only on an on-chain receipt. While IdentityMD's receipts are late, such an order ends in a refund to the contributors.
  4. Opening a pot gives you no rights over it. Nobody can change its terms, and every chip is refundable pro rata if the work is not delivered.
  5. You chip in nothing now; anyone, you included, can chip in afterwards.
  1. Open the pot: pin the kind "skill:research-report" and the job text

    cast send 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5 "openPot((string,uint96,uint96,uint32,uint96,uint32,uint32,uint32,bool),bytes,uint256)" '(skill:research-report,1500000000000000000,800000000000000000,86400,250000000000000000,604800,604800,259200,false)' "$(cast from-utf8 'Write a two-page plain-language report on who paid the IdentityMD swarm in the last seven days and for what, from on-chain IMD transfers to the fee payee only, with every figure sourced to a transaction.')" 0 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>

Chip in with ETH

Zap (launch C) is 0x51bF8c74bd9BD74Ad08cABDC90DaC7835C18B21A. It swaps ETH for IMD on the Uniswap v4 ETH/IMD pool and chips into the pot in your name. The form fills in the least IMD you accept with 99% of a quote for the ETH you type, refuses a minimum below 95% of it unless you tick "Accept any price", and sets the deadline a few minutes ahead and shows it.

Chip in with ETH Zap: live

Chip in with ETH: what it sends, worked through for 0.01 ETH into pot 1
  1. Zap swaps 0.01 ETH for IMD and chips it into pot 1 in your name: the chip, and any refund of it, are yours. You need no IMD and no approval.
  2. All of the ETH is swapped before the pot is asked what it needs. What the pot does not take comes back to you as IMD in the same transaction. A pot that takes nothing at all reverts the call, so you keep your ETH.
  3. The call reverts unless the swap produces at least 5.6389 IMD.
  4. The quote: 0.01 ETH buys 5.6959 IMD now, by a simulated swap that sends nothing (read 24 Oct 2026, 21:35 UTC). Your minimum is 98.99% of it.
  5. The deadline is 24 Oct 2026, 21:45 UTC (timestamp 1792878321), 10 minutes after this plan was made. A call mined later reverts and costs only gas. The command below works its deadline out when you run it; the wallet button sets it when you press it.
  6. The swap runs on the one Uniswap v4 ETH/IMD pool, whose fee is 1% (Uniswap's own fee comes on top). Its depth is thin and changes, so the minimum is your price protection, and yours alone.

Read first

  • What the pot still needs, in IMD-wei: size your ETH to it

    cast call 0x8C2FfCdcb103659aa05c772b8F2059868B496EB5 "remaining(uint256)(uint256)" 1 --rpc-url https://ethereum-rpc.publicnode.com
  • A quote: what this much ETH buys now, in IMD-wei (a simulated call; nothing is sent)

    cast call 0x51bF8c74bd9BD74Ad08cABDC90DaC7835C18B21A "buy(uint256,uint256)(uint256)" 1 $(($(date +%s) + 600)) --value 10000000000000000 --from <your-address> --rpc-url https://ethereum-rpc.publicnode.com

Then send

  1. Swap 0.01 ETH for at least 5.6389 IMD and chip it into pot 1 in your name

    cast send 0x51bF8c74bd9BD74Ad08cABDC90DaC7835C18B21A "chipIn(uint256,uint256,uint256)" 1 5638900000000000000 $(($(date +%s) + 600)) --value 10000000000000000 --rpc-url https://ethereum-rpc.publicnode.com --account <your-keystore-account>