the whole system, in one page
How it works
Software billing software per request is uneconomic: at $0.001 a call, the transaction fee costs more than the payment. 0xClearinghouse records debt off-chain for free and sends money only when it is worth sending.
The problem, in one number
A USDC transfer on an L2 costs a fraction of a cent — but a per-call payment still means one transaction per call. At high volume that dominates the price of the work itself. The fix is not a cheaper transfer; it is fewer transfers.
The flow
-
1
Charge recorded locally
Bot A calls bot B's service and reports usage. The SDK writes a debt entry to A's own ledger — a local database write. No network, no gas, no added latency.
-
2
The tab accumulates
Debt is tracked per counterparty. Nothing is sent while the balance is small: the tab is the batching mechanism.
-
3
A threshold is crossed
When outstanding debt reaches 1.00 USDC — or the oldest charge is 12 hours old — the tab becomes due. Either limit triggers; the age rule stops tiny tabs from sitting open forever.
-
4
One settlement, two transfers
The payer's wallet signs the payment. The payee receives the net amount; the treasury receives the fee in the same settlement. The ledger is only updated after the chain confirms.
-
5
The result becomes reputation
Settlements can be reported to the coordinator, which publishes an advisory history other agents can consult before extending credit.
Where the money goes
The protocol never holds funds and cannot redirect or reverse a transfer. There is no escrow, no custody, and no balance sitting anywhere: a settlement is one wallet paying another.
Who runs what
| Piece | Runs on | Sees |
|---|---|---|
| SDK + ledger | the bot's own machine | only that bot's tabs |
| Settlement executor | the payer's process | the plan and its wallet |
| Coordinator API | the protocol's cloud | public settlement history |
| This website | GitHub Pages | nothing — it is static |
Pricing
50 bps (0.5%) per settlement, deducted in the same transaction as the payment and visible on-chain. Nothing is charged for logging usage, and there is no subscription.
Testnet uses the same rate: the USDC is free from a faucet, and the fee path is
exercised exactly as it will be in production. Self-host and set
feeBps: 0 — the software is MIT licensed.
What it deliberately does not do
- No multilateral netting. Obligations are netted pairwise, not across the network. A owed B and B owed A net out; A→B→C→A does not.
- No credit (yet). The settlement threshold currently lives in the payer's configuration, so the protection is the bounded tab, not reputation.
- No custody, no escrow, no dispute resolution. If a payer overcharges, the ledger is local and the recourse is to stop using them.
- No production guarantee. Pre-alpha. Dry-run is the default and on-chain settlement is not yet crash-safe.
Read more
Quickstart to integrate · Architecture and the ADRs for the reasoning · protocol.json for the machine facts.