Selling 10 SOL is one click. Selling 30,000 is a job: the book can't take it all at once, the market moves while you work, and everyone can see you doing it. This guide explains how professionals sell a large holding, which the benchmark's planned treasury task tests, and how a mandate keeps an agent doing it inside limits.
It assumes the spot guide: a book of asks and bids, slippage, a floor. The spot guide bought SPCX with your $1,000; this time the holding is a treasury's, and it's the token a treasury on Solana usually holds: 30,000 SOL, at $100, sold on the SOL-USDC markets the specs name. The figures are a teaching model with made-up prices.
1. The job
The treasury's ticket:
| Number | The sale | What it is |
|---|---|---|
| Holding | 30,000 SOL | What there is to sell. |
| Arrival price | $100 | SOL's price when the sale starts. |
| Paper value | $3,000,000 | Holding × arrival price: what the SOL is worth, on paper, at the start. |
| Floor | $94 | The mandate's min_sell_price: no SOL may sell below it. |
| Time | 120 rounds | How long the sale may take; whatever is left after is sold later, at a discount. |
The paper value is a number nobody can get: selling 30,000 SOL at once would walk far down the book, as the spot guide's 3,000 SOL did. What matters is how close the sale comes.
1.1. Implementation shortfall
The implementation shortfall is the paper value minus what the sale actually brings in, counting whatever is left unsold at what it can be sold for later. It's usually given in basis points of the paper value:
shortfall = paper value − proceeds − value of what's left
shortfall in bp = shortfall ÷ paper value × 10,000
| How it was sold | Proceeds | Shortfall |
|---|---|---|
| All at once, at an average of $97 | $2,910,000 | $90,000: 300 bp |
| Over the session, at an average of $99.50 | $2,985,000 | $15,000: 50 bp |
| In a rising market, at an average of $101 | $3,030,000 | −$30,000: −100 bp, better than paper |
A negative shortfall means the sale beat the arrival price, usually by waiting in a market that rose.
2. Fast or slow
Two costs pull in opposite directions:
- Impact. Selling pushes the price down, and the faster you sell, the further: each round's slice walks further down the book. Some of the push fades as the book refills (temporary impact), and some stays, because the market has learned there's a seller (permanent impact).
- Risk and drift. While you wait, SOL moves on its own. On average it may drift one way, and either way the result gets less certain the longer the sale takes.
Selling over a few hours is usually the balance. A market that's falling pushes the balance toward faster; one that's rising, toward slower.
How fast to sell 30,000 SOL
Each curve is a cost of selling evenly over the hours on the axis. Move the hours, and change the market around the sale.
Impact falls as the sale slows; risk grows with the square root of the time. The dashed curve adds one standard deviation of risk to the expected cost, and its lowest point is the balance this lab calls best.
3. Schedules
A schedule says how much to sell when. Four simple ones, each the winner in some market:
| Schedule | How it sells | It wins when |
|---|---|---|
| All at once | Everything in the first round, down the book | The market is about to crash: any SOL left will sell for less |
| Evenly (TWAP) | The same slice every round: 250 SOL | The market is calm, and nobody is watching |
| Front-loaded | Twice the pace, done halfway | The market is falling steadily |
| Adaptive | Faster when SOL is under the arrival price, slower when over, then whatever is left at the end | The market is rising, or someone is reading steady sellers |
TWAP stands for time-weighted average price: selling the same amount in each period gets you, roughly, the market's average price over the session.
4. Being read
On-chain, every order is public. A seller who sells 250 SOL every round is a pattern, and a front-runner can trade on it: sell just ahead of each slice, let the slice push the price down, and buy back lower. Every slice then sells into a price the front-runner has already pushed down.
Steady schedules pay for it most. Ways to be harder to read:
- vary the slices' sizes and timing;
- rest asks on the book instead of always taking the bids;
- split the sale across venues, such as OpenBook and Phoenix;
- pause after being traded ahead of, so the front-runner's trade doesn't pay.
5. Under a mandate
A treasury's mandate, in the mandate, allows the SOL-USDC spot markets on OpenBook and Phoenix, sell-only, never below $94:
sides: ["sell"]: no buys, and no resting bids, even to buy back cheaply after a crash.min_sell_price: 94: no fill below $94, including the last SOL of a slice that walks the book. A schedule must stop its slices at the floor.max_position: 30000: the treasury's holding, counted across both venues and the wallet.- No drawdown limit: the holding falls with SOL whatever the agent does.
The floor changes the job. In a fall, the price can sink to the floor before the sale is done, and a schedule that waited can't sell what's left. In a crash, the floor arrives within a few rounds.
6. Scenarios
Each scenario plays a 120-round session of a made-up SOL market against the four schedules, under the mandate's floor. The top panel is SOL's price before anyone's selling, and the bottom one what each schedule still has to sell. The readouts are each schedule's shortfall: lower is better, and negative means it sold above $100.
Four schedules, five markets
Choose the market, the floor and the book. Unsold SOL at the end is valued 3% under the closing price, as the treasury would sell it later.
No schedule wins every market. A good seller reads which market it's in, from the price, the book and the tape, and changes pace: fast when it falls, patient when it rises, irregular when it's watched.
7. Parameters
What an execution bot decides before it sells:
| Parameter | What it means |
|---|---|
| Horizon | How long the sale may take, and what happens to what's left. |
| Pace | How much to sell in each round, and how it changes with the market. |
| Urgency | How fast to speed up when the price falls, and slow down when it rises. |
| Passive share | How much to rest as asks, which pay less impact and fee but may not fill, against selling into bids. |
| Venue split | How much to sell on each venue, from each book's depth. |
| Disguise | How much to vary slice sizes and timing, and when to pause. |
| The floor | How to stop each slice before it walks below min_sell_price. |
8. Risks
9. When to use it, and when not to
10. Check yourself
Three questions for each idea, all on the treasury's 30,000 SOL. Work each one out on the ticket first (holding, arrival price, paper value, floor), then open the answer.
10.1. The shortfall
You sell all 30,000 SOL at an average of $98.50. What's the shortfall?
$45,000, or 150 bp. The paper value is $3,000,000, and the proceeds $2,955,000.
You sell 20,000 SOL at an average of $99, and 10,000 are left. SOL closes at $96, and what's left is valued 3% under the close. What's the shortfall?
$88,800, or 296 bp. The proceeds are $1,980,000, and the 10,000 SOL left are worth 10,000 × $96 × 0.97 = $931,200.
Your shortfall is −100 bp. What happened?
You sold above the arrival price, on average at $101: usually by waiting in a market that rose.
10.2. Fast or slow
In the lab, why does selling in 15 minutes cost 425 bp of impact when 4 hours costs 50?
Because impact grows with speed: you sell sixteen times as fast, so each moment's selling walks much further down the book.
Why not take two days and pay almost no impact?
Because the longer the sale, the more SOL can move against you. In the lab, one bad day's move over a day-long sale is worth about $69,000.
SOL is falling 5% a day. Should you sell faster or slower?
Faster. Every hour you wait, the SOL you still hold is worth less; in the lab the balance moves from 2.5 to about 2 hours.
10.3. Being read
You sell exactly 250 SOL every round. What does a front-runner do?
It sells just before each of your slices, lets your slice push the price down, and buys back lower. Every slice sells into a price it already pushed down.
How can a bot be harder to read?
Vary slice sizes and timing, rest some of the sale as asks, split it across venues, and pause after being traded ahead of.
In a calm market with a front-runner watching, why does adaptive beat evenly in the lab?
Because adaptive's pace changes with the price, the front-runner can read only part of it: it loses 18 bp, against evenly's 30.
10.4. The mandate
The floor is $94, and the last SOL of your next slice would sell at $93.90. May you sell it?
No. Every fill must be at $94 or above, not just the average, so the slice has to stop at the floor.
SOL falls 8% over the session. Why can evenly end with SOL unsold?
Because SOL reaches the floor before evenly is done, and it may not sell below it. In the lab it's left with 2,127 SOL.
SOL crashes, then recovers. May the agent buy some SOL back at the bottom?
No. The mandate is sell-only, and that covers resting bids too.
11. Glossary
Every term this guide uses is in the glossary. In the text, an underlined term shows its definition when you hover it or tap it.