Live on Arc mainnet · unaudited beta

Pay when it's done. Not before, and not never.

Lock USDC behind a condition: a date, an approval, a verifier's sign-off, a schedule. The contract pays the moment it is met, on Arc, Base or Arbitrum, and returns the money if it never is. Nobody in between can touch it.

What people use it for

Any payment that should wait for something.

Each of these is a policy you create from your own wallet in one transaction. The rule is enforced by the contract, so neither side has to trust the other, or us.

Grant milestones

A funder locks each tranche up front. It pays out when enough of the named reviewers approve the milestone, and goes back to the funder if they never do.

Approval · 2 of 3 reviewers

Supplier payments on delivery

The buyer locks the invoice, so the supplier knows the money exists. It pays the moment delivery is confirmed, not thirty days later.

Approval or sign-off on delivery

Work checked by a verifier

Name someone both sides trust to confirm the work: a reviewer, an inspection service, or an AI agent with its own wallet. Their signature releases the payment, and it can only ever go to the recipient.

Attestation · one named verifier

Contributor payroll, across chains

Set an amount and an interval once. Every period is paid to the contributor, on Base or Arbitrum if that is where they are, with no gas needed. Stop any time; periods already owed are still paid.

Payroll · fixed or open-ended

Vesting and dated releases

Money promised for a date is paid on that date. Nobody can release it early, and nobody can hold it back.

Timelock · pays from a set time

Treasury sweeps

Keep a working buffer and move everything above it to another wallet, on a schedule, without anyone having to remember.

Sweep · above a buffer, every interval
How it works

Lock it, set the rule, and the contract does the rest.

You need a browser wallet and some USDC on Arc. USDC is also Arc's gas, so there is nothing else to hold.

1

Lock the money

From your own wallet, in one transaction: it approves exactly the amount and creates the policy together. You choose the recipient, where they are paid, and a deadline.

2

Set the condition

The policy waits in the vault until its rule holds. Until then, nothing moves.

a dateN of M approvalsa verifier's signaturea schedulea sweep
3

Paid, or returned

When the rule holds, anyone can trigger the release and the contract pays the recipient itself: on Arc directly, or on Base or Arbitrum through Circle's CCTP, with no gas needed on their side. If it never holds, you take the money back after the deadline.

Why you can trust it

The contract holds the money, and it has only two places to send it.

Nobody can take it

Money in a policy can only go to its recipient, or back to the wallet that funded it. There is no admin key, no upgrade, and no operator holding funds.

Paid, or refunded: never stuck

Every policy has a deadline. Before it, a met condition pays. After it, whatever was not paid goes back to the owner. A deadline can only be moved later, which only helps the recipient.

Recipients need nothing

No account, no gas, no app. On Base or Arbitrum, Circle's Forwarding Service delivers the USDC to their address.

An emergency brake that cannot steal

A 2-of-3 Safe can pause payouts for up to 7 days if something looks wrong. Every deadline moves out by the pause, owners can still take back unmet policies, and the Safe can never move anyone's money.

Proof on mainnet

Real USDC, real payouts.

The first two policies on the mainnet vault: one paid on Arc, one paid on Base to a wallet holding no ETH. Every line links to the transaction.

Arc mainnet · chain 5042onchain
Vault deployedblock 23706907 · cost 0.1023 USDC0xcd2a9a43…
Policy 0 locked and createdone transaction, from the owner's wallet0x93c9a2e2…
Policy 0 paid on Arcthe contract sent 0.10 USDC to the recipient0x6242536b…
Policy 1 locked and createdpayable on Base0x6405787e…
Policy 1 released on Arcthe contract sent it through Circle's CCTP0xd691b510…
0.10 USDC arrived on Base, 8 seconds laterto a recipient holding no ETH0xc8fe7f99…
Vault · PolicyVaultV5
Source · verified, exact match
Guardian · 2-of-3 Safe

What to know before you use it

  • The contract has not been audited yet. It is tested, and was exercised end to end on Arc testnet first, but an audit comes next.
  • The vault holds at most 100 USDC in total, across everyone. Use small amounts.
  • Price-based conditions are in the contract, not yet in the app.

Try it with a small amount.

Lock a few cents for yourself, behind a timelock a few minutes away, and watch the contract pay it back out.