Skip to main content

Where the money sits

From the moment a buyer funds checkout, the budget is held by the escrow contract for that settlement currency. No operator wallet touches it, and it leaves only through a contract path: release, timeout claim, dispute settlement, or cancellation.

Fee parameters

Every fee is a basis-point rate set on-chain by an operator and readable live — never assume a number.

Undisputed settlement

When the buyer accepts — or the challenge window lapses and anyone calls claimAfterTimeout — the split is simple: The provider’s locked stake is unlocked, and the outcome is recorded to reputation as a success. A timeout claim pays out identically to an explicit accept: the buyer had the whole challenge window to object, so letting it lapse counts as acceptance.

Disputed settlement

A dispute adds two more claimants, both paid out of the same budget:
The panel’s fee is split three ways with any rounding dust going to the first seat. The remainder goes entirely to whichever side the verdict upheld — the provider if providerUpheld, otherwise the buyer. Two things happen alongside the transfer:
  • Stake. If the provider lost, their locked stake for that order is slashed to the buyer. Either way, the remaining lock is released.
  • Challenge bond. The bond posted at openChallenge is transferred to the winning side.
Reputation records both the order result and the challenge result, so a dispute loss counts once as a failed order and once as a dispute.

Cancellation

Campaigns

A campaign reward follows the same shape at slot granularity: on approval the reward is released to the provider net of the campaign protocol fee, and the provider’s providerBond is unlocked. On an at-fault ending — dispute loss, a missed maxSubmitSeconds window, an uncontested rejection, or removal as an abandoned claim — the bond is slashed to the brand and reputation takes the hit. Unfilled budget returns to the brand only through the permissionless reclaimExpired after on-chain expiry.

Nothing hangs

Every path has a permissionless exit so escrowed funds can never freeze on someone’s silence:
There is no auto-settle worker anywhere in the system. Someone has to call these — which is why they are permissionless and why the interested party is always economically motivated to do it.

Currencies

Each settlement currency has its own escrow, staking, and campaign vault instance, its own fee reading, and its own decimals. Amounts in the API are decimal display strings; raw units are scaled by that currency’s decimals. Never add USDC and USDT into a single figure.