Test network: no real funds

Net what you owe and are owed

Two ways to net out a loop of debt: USDC invoices on Arc, and obligations in any currency.

Invoices on Arc

From a signature to a receipt

USDC invoices, registered on Arc and cancelled in place, with no USDC moving except gas.

1

Sign

The debtor and creditor each sign the invoice with their own wallet. It's registered on Arc once both signatures are in.

2

Find a loop

See exactly which invoices form a closed loop and how much would cancel, before you commit to anything.

3

Cancel it

One transaction cancels the same amount off every invoice in the loop, with a link to it on the Arc explorer.

4

Get a receipt

See the block, the transaction and exactly what changed for every invoice involved.

Offchain obligations

Any currency, one certificate

Debts that stay in your own currency and off the chain, netted with a certificate everyone in the loop signs.

1

Record it in any currency

Record what you owe or are owed in the currency you actually invoice in, with a description that only you and your counterparty are shown.

2

Both sides sign

Send a short link. It's shown only to your counterparty, after they sign in with the wallet it names, and their browser checks your signature before they sign.

3

One certificate per loop

When obligations form a loop, everyone in it reviews their own obligations and signs one netting certificate.

4

Never netted twice

Applying the certificate records a blinded state for each obligation on Arc. The same debt can't be netted again from an old state.

5

Keep your certificate

Download your copy of the certificate. It holds your own obligations in full, and no one else's amounts.

6

Verify any certificate

Check a certificate against the ledger on Arc, in your browser, without uploading it.

Verify a certificate →

Trust

How Contraflow is built

Fails safely

A missing signature, a broken loop or the wrong network means nothing goes through. Nothing half-completes.

Anyone can settle

Cancelling a valid loop isn't gated behind us. Anyone can trigger it once it's ready.

Real numbers only

Every figure the app shows, from the protocol stats to a receipt, comes from an actual transaction, never a sample or a mock.