Small trades on Folio cost almost nothing, on every asset. Big trades depend on what you buy. No single router gives the best price, which is why Folio asks four of them every time. That is what 42,824 priced trades showed us over 63 hours in October.
The Folio liquidity study measures what Folio’s route selection would have paid on 168 trades, repeated every 15 minutes, against the app’s own market price. Nothing was signed or sent. Every number below comes from that run.
42,824quote requests
63hours of readings
4routers asked
14stocks and coins
6trade sizes, $5 to $10K
Up to $1,000, every asset is cheap
Buy $5 or $1,000 of anything in the study, from SPY to SKR, and the typical price lands within 24 bps of the market. A basis point (bp) is a hundredth of a percent, so that’s under $2.40 on $1,000.
At $10,000 the assets split. BTC, SOL and ETH stay under 5 bps. HOOD and SKR jump to 54.
- HOOD, SKR, AAPL, META
- The other 10
Median gap between the picked route’s quoted price and the app’s market price, buys, in bps. Hover a line for its values.
Ten of the 14 assets stayed under 20 bps even at $10,000. HOOD and SKR hit 54.
The grid below has every asset at every size. Read across a row to see where size starts to bite.
- 0 or better
- 0–5
- 5–10
- 10–25
- 25–50
- 50 or more
Buys
Sales
Median gap in bps over 255 readings. Sales below zero are an artifact of grading both sides against one market price, explained under the round-trip chart.
Medians hide the spread. At $1,000, SOL, BTC and SPY land in a tight band. META and HOOD range across 40 bps from one trade to the next.
- Middle half of trades
- Median
Thin line: 1 in 10 to 9 in 10 trades. Box: the middle half. Bps from the market price; the value on the right is the median.
When a price crosses 50 bps, Folio shows a low-liquidity notice before you confirm. It never blocks the trade. In the study it would have shown on 2.4% of trades, three in four of them at $10,000.
What would your trade cost?
Pick an asset and an amount. The numbers are the study’s medians for that exact trade.
- 9 in 10 buys landed within
- Buy and sell straight back
A $1,000 HOOD buy landed a median 16.5 bps from the market price, about $1.65.
Medians from the study’s 255 readings of each asset and size. A guide to the typical price, not a quote.
Why some sales look free
In the grid, many sales sit below zero, as if they paid more than the market. They didn’t. The study read one market price per asset and graded both sides against it, and for most assets that price sat 2 to 6 bps below the middle of where buys and sales landed.
Add a buy and a sale from the same reading and that offset cancels. What’s left is the real cost of getting in and out.
- $100
- $10,000
Median of the buy gap plus the sale gap from the same reading, in bps; the market price cancels out. Value on the right: $10,000.
No router wins every time
Folio sends each trade through KSwap, Kamino’s quote service, which asks four routers at once: okx, dflow, titan and jupiter. A router searches Solana’s markets for the best path and quotes what it will deliver.
okx gave the best price on 53% of requests, titan on 25%, dflow on 22%. The bigger the trade, the more okx wins.
- okx
- dflow
- titan
Stocks
Crypto
Share of quote requests where each router gave the highest guaranteed output. jupiter returned no quotes and won none.
Winning isn’t the same as mattering. Take one router away and see whether the best price gets worse. Without dflow, it rarely does: another router almost always matched it. Without titan, the best price got worse by more than 1 bp on 28% of the requests titan answered.
Gave the best price
Beat the next-best quote by over 1 bp
Left: share of all requests. Right: share of the requests each router answered alongside another; this is the price you would lose without it.
And the winner never stays put.
Share of consecutive 15-minute readings, per asset, side and size, where a different router won. The median winning streak was one reading.
The best router changed from one 15-minute reading to the next 44% of the time. No single router is the right one to hard-code.
Routers come and go
okx and dflow answered almost every request. jupiter answered none of the 42,816 that KSwap returned. titan answered 46% until 18:00 UTC on 9 October, then 86%. The answer rate tracked the clock, not the trade, and the data doesn’t say what changed on titan’s side.
- US market open
Each column is one reading; its height is the share of the 168 requests the router answered. Dashed line: 18:00 UTC on 9 October, when titan’s answer rate jumped. Times in UTC.
- Before (46% overall)
- After (86% overall)
Share of requests titan answered, by hour of day (UTC). The run ended at 09:47 UTC on 10 October, so the afternoon hours after the change were never measured.
Asking four routers at once costs little time. One KSwap call returns every quote.
515 msmedian
620 ms9 in 10 within
1,273 ms99 in 100 within
8.4 sslowest
- titan answered (median 538 ms)
- titan did not (median 479 ms)
One KSwap call returns every router’s quote, so this is time per request, not per router.
Market hours barely matter
The tokenized stocks trade on Solana around the clock, while Wall Street keeps its own hours. A $10,000 stock buy landed a median 13.5 bps from the market price with the US market open and 12.8 with it closed. HOOD at $1,000 was the exception: 26.7 bps open, 15.3 closed.
- Stocks, median
- Stocks, middle 80%
- Crypto, median
- US market open
Each reading: the median gap of $1,000 buys across the 10 stocks (band: 1 in 10 to 9 in 10 of them) and the 4 coins, in bps. Times in UTC.
The quotes Folio now skips
Between 03:30 and 07:16 UTC on 8 October, 90 quotes came in far better than the market, 89 of them from okx, while the other routers on the same request stayed within 10 bps of it. The wildest was a $5 SKR sale quoted at 5.3 times what the SKR was worth.
- okx quote
- titan quote
- okx gave no quote
Picked quotes 50 bps or more better than the app’s market price (log scale, bps). Shaded: 03:30 to 07:16 UTC on 8 October. Ticks along the top: requests okx left unanswered.
A quote that far from every other router is a broken quote, not a bargain. Route selection picked all 92 of them in the study. It now passes over a quote that beats the market by more than the trade’s slippage allowance when KSwap’s own price-impact estimate agrees. It moves to the next route, and if none is left, the app tells you no route is available.
What this means for you
- Up to $1,000, trade anything. Every asset in the study priced within 24 bps of the market.
- At $10,000, the asset matters. BTC, SOL and ETH stay under 5 bps. HOOD and SKR reach 54, and the app tells you before you confirm when a trade crosses 50.
- You never pick a router. Folio asks all four on every trade and takes the one that guarantees you the most.
- Folio ranks by the guarantee. That changed the pick on 0.6% of requests and cost a median 0.17 bps when it did.
- Broken quotes don’t get through. A price too good to be true is skipped.
How we measured it
Every 15 minutes from 18:22 UTC on 7 October to 09:47 UTC on 10 October, we priced 14 assets, buys and sales, at six sizes from $5 to $10,000: 168 quote requests a reading, 255 readings. Ten assets are tokenized stocks on Solana (SPY, QQQ, HOOD, GOOGL, CRCL, TSLA, NVDA, META, AAPL, MSTR) and four are crypto (BTC, SOL, ETH, SKR).
- 1Ask
KSwap asks okx, dflow, titan and jupiter for a route, with the app’s settings.
- 2Discount
Each quote loses the 1% slippage floor. What is left is the guaranteed output.
- 3Pick
The highest guaranteed output wins. That is the route the app would send.
- 4Grade
Its quoted price is compared with the app’s market price, in basis points.
A basis point (bp) is a hundredth of a percent: 100 bps is 1%. Positive means worse for you.
The limits:
- 63 hours in one week of October. Other weeks can look different.
- Quotes, not fills. The study shows what routes promised, not what landed on chain.
- Sizes stop at $10,000.
- One market price per asset per reading graded both sides, and stock prices were about three minutes old. The round trip removes that offset; single-side numbers carry it.
- Accounts per transaction followed the app’s budget for one wallet. A wallet with other holdings can get a different one.
- One of 171,295 raw lines was unreadable after the measuring machine ran out of disk, and two requests failed with HTTP 502. KSwap never rate-limited the run.
Every chart, the method and the data checks are on the full Folio liquidity study page.
Investing involves risk, including loss of the money you invest.
Also published on claude.do.
