chordDocs

Solvers

Bonds and slashing

How bonds lock, release and slash, and how reserves come back.

A bond is SOL held in your solver account. It isn’t spent when you win; it’s locked, and it comes back when the batch finishes. It is only lost if you commit to a batch and don’t complete it.

#The bond’s life

EventBondedLocked
register_solver(deposit)deposit, at least the config’s bond size0
top_up_solver(amount)+ amount—
commit_batch—+ one bond
finalize_batch—− one bond
timeout_batch− one bond, sent to the treasury; 10% of your stake burned− one bond
withdraw_solver(amount)− amount, only from the unlocked part—

To commit, your unlocked balance (bonded − locked) must be at least one bond. Each batch you win while others are still settling needs another one.

#When you’re slashed

A committed batch completes only when both sell budgets are fully filled. If the settlement deadline passes first, anyone can call timeout_batch. It:

  1. sends the batch’s locked bond to the treasury;
  2. burns 10% of your staked CHORD;
  3. returns your remaining reserves to accounts you own;
  4. marks the batch failed. Orders that didn’t fill end as Batch failed, and their tokens never left their owners’ wallets.

Fills that already landed are never reversed.

#Reserves

Reserves aren’t part of the bond. They move into the batch vaults at commit, pay traders during settlement, and whatever is left returns to you when the batch ends, whether it completed or timed out.

If your canonical token account was closed or repurposed meanwhile, the collector’s keeper repairs the destination: it recreates the associated token account, or creates a new token account owned by you, and pays its rent.

#Sizing

  • Hold one bond for every batch you might have in flight at once. With the standard timing, a batch can be settling while the next one solves.
  • Your reserves must cover gross outputs, so a batch of one-sided flow needs as much inventory as the whole side, not just the net.
  • Leave headroom for orders that could vanish before their fill. You commit unconditionally to your quote.