Setoff

Debts in five currencies clear at one on-chain fixing.

Only the net moves, and either every party settles or none does. Live on Arc mainnet: debts priced in USD, EUR, MXN, BRL or JPY, endorsed by their debtors, then paid in native USDC at the Chainlink fixing, or cleared together in a cycle.

Debts settled
—
Gross owed
—
USDC moved
—
Set off
—

Latest cycle

Reading the chain.

Today's fixings

Reading the chain.

Your position

Read live
Reading the chain.

Debts

Reading the chain.

Try to break it.

Stale rates, underpayment, the wrong payer, a cycle settled twice: every attempt runs against the live contract, read-only, and is refused by name.

It answers in its own words: StaleFixing, Underpaid, NotDebtor, WrongCycleState.

Open the refusal room

Stated plainly

  • The four parties are wallets we control, for the demo. Every function is open, so anyone can record their own debts and cycles.
  • No audit. The contract has no owner and no admin key, but nobody else has reviewed it.
  • No currency changes hands. Debts are priced in five currencies and settled in USDC at the fixing; nobody receives pesos or yen.
  • Amounts are dollars, not thousands, because this is real money on mainnet.
  • This is milestone 2's contract. Milestone 1's, 0xcbEb…3ce7, stays on-chain as its own record, and has no cycles.
Read the verified contract

How a debt clears

Two paths. Every step is one transaction, final the moment it lands

On its own

  1. 1 / 4ProposedProposeThe creditor signsRecords what they're owed, in the currency they invoiced in. It counts for nothing yet.
  2. 2 / 4EndorsedEndorseThe debtor signsAgrees it's owed. Neither side can invent a debt the other didn't accept.
  3. 3 / 4Pay at the fixingThe debtor signsPays native USDC at today's Chainlink fixing: the rate the feed last published, never a live quote. A stale one is refused, and the one used is recorded.
  4. 4 / 4USDC outWithdrawThe creditor signsPulls the payout. Nothing is pushed, so one blocked account can't hold anyone else's money.

In a cycle, against everything else

  1. 1 / 4EnrollingEnrolBoth signA creditor bills into an open cycle, and the debt joins when its debtor endorses it. Enrolment closes at the cutoff.
  2. 2 / 4FixedFixAnyone signsAt the cutoff, one Chainlink read per currency prices every debt in the cycle. That one published rate is the fixing.
  3. 3 / 4FundedFundNet debtors signEach party's debts are set off against what it is owed, and only the difference, its net, is left. Only net debtors pay, once, before the deadline.
  4. 4 / 4Settle, or voidAnyone signsIf every net debtor funded, one transaction credits the creditors and nets every debt. If anyone didn't, the cycle is voided and every deposit comes back.