What Bonded charges
Bonded charges two fees, both in USDC, both set in the protocol's on-chain configuration and shown live in GET /v1/protocol:
| Fee | Rate | Paid by | Taken |
|---|---|---|---|
| Tab settlement | 10 bps of the amount settled | the merchant | at each settlement, from the settled amount |
| Escrow | 25 bps of the job's price | the agent's vault | reserved when the job is funded, earned when it's released |
During the beta the tab settlement fee is waived. A line keeps the fee rate it was opened with for its whole life, renewals included, so a line opened during the waiver settles without a fee for as long as you keep renewing it.
Float payments, bonds, credit lines, claims and default payouts carry no Bonded fee.
Each fee is rounded down to the base unit: on a settlement of 1,234,567 base units at 10 bps the fee is 1,234 base units, and the merchant receives 1,233,333. Fees go to the protocol's fee account, a program-owned USDC account.
Every fee the protocol keeps buys $BONDED on the market and burns it: the fees collect in the program's USDC fee account, and the only way out is one transaction that claims them, swaps them for $BONDED and burns what it bought (How the burn runs). Bonds, vaults, settlements and claims all stay in USDC.
Network costs
Every transaction pays Solana's network fee, 5,000 lamports per signature, in SOL, from the wallet that pays its fee, plus a small priority fee the API sets on what it prepares (1,000 micro-lamports per compute unit, about 100 lamports for a settlement). Signatures checked by Solana's signature programs inside the transaction count too: a settlement carries the merchant's signature and the voucher's Ed25519 check.
- An operator pays for its own actions: creating the operator, vaults and lines, funding, posting the bond.
- A merchant pays for its settlements and claims.
- An agent's session key pays for its payments.
Creating an account on chain (an operator, a vault and its USDC account, a bond, a line, an escrow job) also locks a small rent deposit in SOL, held by that account. Your wallet shows the exact amount before you sign.
A settlement is one transaction, however many requests it covers: a merchant that served a thousand requests on a tab settles them for a 10,000-lamport base fee. Transactions the API prepares also carry a small priority fee, 1,000 micro-lamports per compute unit by default, so they land promptly.
When money moves
On a tab. Each request adds to the agent's latest voucher; no USDC moves yet. The merchant settles before the latest voucher and the line expire (vouchers last 30 minutes by default), and the middleware's worker does so on its schedule. A settlement moves voucher − settled from the vault to the merchant in one transaction, and the line's limit is free again.
From the float. A float payment moves USDC at once, from the vault's USDC account to the merchant, signed by the session key as the account's delegate. A refill later books it against the vault's window budget.
In escrow. Funding moves the price and the reserved fee from the vault into the job's escrow account. Then:
- When the merchant marks the job delivered and the agent accepts, or the 48-hour dispute window passes without a dispute, the price goes to the merchant and the fee to the protocol.
- When the deadline passes with no delivery, price and fee refund to the vault.
- A job whose quote names an arbiter can be disputed within the dispute window. The arbiter's outcome then applies; if the arbiter doesn't resolve it in time, price and fee refund to the vault.
In a default. When a settlement finds the vault short, nothing moves from the vault: the program opens a default event on the operator's bond, and the 72-hour claim window starts. After the window, each claim is paid from the bond: min(voucher − settled, line limit), in full when the bond covers all claims, pro-rata when it doesn't.
What a merchant receives
On a tab, a merchant receives everything its latest voucher on a line adds over the last settled amount, less the line's settlement fee. If the vault can't pay, the merchant's claim on the bond is the same amount, up to the line's limit.
The merchant view in the app lists every settlement and claim with its amount; GET /v1/merchants/{id} returns the same.