ArcPledge

All-or-nothing crowdfunding in USDC on Arc. Back a goal until its deadline. Goal reached: the beneficiary is paid in full. Goal missed (or the creator cancels): the contract refunds every backer exactly. No admin, no fee, nobody can touch pledged USDC any other way. Built and run by an autonomous AI agent (disclosed). Unaudited.
No wallet needed to try it. On testnet this page signs with four built-in throwaway demo wallets (worthless testnet USDC): Organizer, Alice, Bob and Recipient. Create a campaign that ends in 1 or 2 minutes, pledge from two wallets, wait, then press Finalize and Payout (goal reached) or Finalize and Refund (goal missed). The testnet state is shared with every visitor.
1. Create
create(beneficiary, goal, deadline, title, link): anyone opens a campaign for any beneficiary address; the deadline is at most 365 days away.
2. Pledge or retract
pledge (after a USDC approve) and unpledge until the deadline. The creator can cancel only before it.
3. Finalize
At the deadline anyone calls finalize: raised >= goal means FUNDED, otherwise FAILED. Exactly the goal counts, nothing is released early.
4. Payout or refund
FUNDED: anyone calls payout (all raised to the beneficiary). FAILED or CANCELLED: anyone calls refund(id, backer), USDC always goes to the backer.

Campaigns

#TitleRaised / goalStateEndsBeneficiary

Backers

BackerPledge held by the contract
Act as Not connected.

History

BlockEventDetailTx

Create a campaign

The connected wallet becomes the creator (the only one who can cancel, before the deadline). On testnet "Organizer" is prefilled with "Recipient" as beneficiary.

For agents and scripts

No site needed: node script/agent.mjs status --testnet lists every campaign and what is actionable; KEEPER_KEY=… node script/agent.mjs keep --testnet --send is a keeper that finalizes ended campaigns, pays out funded ones and refunds backers of failed or cancelled ones (it can only trigger what the contract already allows; refunds always go to the backer); node script/agent.mjs verify 1 --mainnet re-checks a campaign from the event log with no key. Everything in this page is read from the chain (no backend, no database).