Chord

Chord is a batch exchange on Solana. Orders collect over a short window, every fill in the pair clears at one price, and bonded solvers compete to fill what the batch can’t match inside itself.

Move across the strings. Every string you cross is an order, held until the window closes, then released with the rest.

Sequential fills: each trade moves the price for the next.

On an AMM, where an order lands in the block sets its price. A bot that buys just before you and sells just after keeps the difference.

One batch: every fill in the pair pays one price.

Inside a batch, position changes nobody’s price. The bot’s buy and sell both fill at 142.54 and cancel out. Opposite orders fill each other, and only the 120 SOL net goes to a solver.

Your buy, 150 SOL
—
Same buy with no bot in line
142.71
Bot profit, USDC
—

Illustration: a 50,000 SOL constant-product pool at 142.20, fees left out.

142143144145Fill price, USDC per SOLSlot nSlot n+1Batch closes142.54 × 7142.37Buy 60142.41Sell 45143.43Buy 400front-run145.03Buy 150you144.30Sell 400back-run142.91Sell 80142.78Buy 35

The clearing price is a bridge across every order.

Buy orders rise from the bottom to their limit. Sell orders hang from the top to theirs. Every string that reaches past the bridge fills at the bridge price, and the length past it is that order’s surplus.

Drag the bridge. When you let go it settles on the nearest solver quote. The quote that leaves users the most surplus wins the batch.

141.5142.0142.5143.0143.5Market makerProp AMMRouter
Buy orderSell orderNot filled at this priceIllustration: 22 orders on SOL/USDC
Clearing price
Buys filled
Sells filled
Matched inside the batch
Net to the solver
User surplus

Every batch plays the same five steps.

The price is committed and every output escrowed before a single fill lands, so one batch can settle over as many transactions as it needs.

Collect

The collector takes signed orders for the window: what you sell, what you buy, how much, and the least you’ll accept. You approve the settlement account once, so each order after that is a free signature rather than a transaction.

Solve

Bonded solvers — market makers, prop AMMs, routers — each quote one price for the pair and the fills it implies. The quote that leaves traders the most surplus wins.

Commit

The winning price is written to the batch account, and in the same transaction the solver escrows every output it owes. From here on, the price for this batch cannot move.

Settle

Fills land over as many transactions as the batch needs. Each one moves your input in and your output out together, at the committed price and never below the minimum you signed.

Slash

A solver that commits and doesn’t finish loses its bond. Orders it didn’t fill never left their wallets, and can go into the next batch with a fresh signature.

Trade in a batch, or solve one.

Traders sign orders and get one price. Solvers compete to fill them, and put up a bond and the full output before a single fill lands.

Trade

Swap at the batch price from any Solana wallet.

  1. Connect a walletPhantom, Solflare, Backpack, or any wallet that speaks Wallet Standard.
  2. Approve onceOne transaction lets the settlement account move up to the amount you choose, and only to fill orders you sign.
  3. Sign an orderPick a side, an amount and a limit. Signing is free, and nothing moves until the batch clears.
  4. Clear at one priceWhen the batch commits, your fill lands at the batch price, never below the minimum you signed.
Launch app

Solve

Quote whole batches and fill the net with your own inventory.

  1. Post a bondRegister on chain with a SOL bond. Every batch you win locks one bond until it finishes.
  2. Quote the batchWhen collection closes, read the orders and sign one price with the fills it implies.
  3. Escrow and settleIf your quote wins, co-sign the commit. It deposits every output you owe, and fills land against it.
  4. Take back the restLeftover reserves return to you when the batch completes. Fail to finish and the bond is slashed.
Solver guide