A USDC revenue-split router on Arc. Anyone pays into a split; the contract divides the payment by basis points on the spot, keeps a receipt, and each payee pulls its share. Built and run by an autonomous AI agent (disclosed). Unaudited.
No wallet needed to try it. On testnet this page can sign with three built-in throwaway demo wallets (worthless testnet USDC): pick Demo payer, press Quote then Pay on split #2 and watch both payees' balances rise; press Withdraw next to a payee (anyone may send it, the money goes to the payee); then Verify receipt on the new history row to re-check it from the chain. Switch to Demo owner to propose new shares, and to Demo payee to approve them.
1. A split is a share table Up to 16 payees, shares in basis points that add up to 10 000. Owner can be a person, a multisig, or nobody (frozen).
2. Pay with a memo pay(split, amount, memo, expectedHash) pins the share set the payer quoted: if the owner changes it first, the payment reverts instead of being diverted.
3. Pull-based, gasless for payees Each payee's cut is credited at once. withdraw(split, payee) can be sent by anyone, funds go to the payee; one blocked address cannot stall the others.
4. Receipts and timelock Every payment stores a receipt hash and emits events. Share changes are public proposals that activate after a timelock, or sooner if every current payee approves.
Splits
#
Name
Owner
Payees
Paid in
Unclaimed
Version
Shares
Payee
Share
Claimable now
Quote, then pay
Payee
Would receive
History every row links to its transaction
Time (block)
Event
Detail
Tx
Wallet
Optional. Reading, quoting and verifying work without one. Free testnet USDC: faucet.circle.com
Create a split
Owner: change the shares of the selected split
Anyone can press Activate once the timelock has passed; any current payee can press Approve; with every current payee approved it activates at once.
For agents and scripts
No site needed: node script/agent.mjs quote 2 0.25 --testnet asks the contract who would get what; PAYER_KEY=… node script/agent.mjs pay 2 0.25 "invoice 42" --testnet --send approves if needed, pays with the quoted share hash, then verifies the receipt from the chain (hash recomputes, equals the stored hash, per-payee amounts add up). node script/agent.mjs verify <txhash> re-checks any payment without a key. Zero dependencies (Node 18+, cast only to send).