Analysis · data recorded on 26 October 2026
Orca's SOL/USDC pool charges 4 bp a swap. The median trade in it paid 0.7 bp
What SOL/USDC trades on Solana actually pay: one evening of swaps on Solana's main DEXs, each priced against Binance at the moment it executed.
On Monday 26 October 2026 we recorded Solana's DEXs for five and a half hours (16:30–21:57 UTC), transaction by transaction, together with Binance and Coinbase quotes on the same clock. Then we asked a simple question: when someone swaps SOL for USDC on Solana, what do they actually pay?
The headline surprised us. Orca's main SOL/USDC pool charges 0.04% (4 basis points) on every swap. Yet against the market mid at the moment of execution, its median buy paid 0.72 bp and its median sell 0.64 bp, fee included. Nine trades in ten paid less than 2 bp. The fee tells you what a pool charges. It doesn't tell you what the trades in it pay.
TL;DR
- Trades paid less than the fee. In Orca's main SOL/USDC pool (fee 4 bp, 99% of Orca's SOL/USDC trades of 1–100 SOL), 96% of trades paid less than 4 bp against the mid and 91% less than 2 bp.
- Most likely because the flow is routed. On Orca and Meteora, most SOL/USDC trades come through Jupiter or other programs that can pick the venue at the last moment, and arbitrage bots trade a pool when its price falls behind the market. Our reading, which the next datasets will test: a pool mostly fills when its price is already a few basis points in the taker's favor.
- A round trip cost about 1.5 bp or less on 10 of the 12 venues we could measure (median buy cost plus median sell cost, trades of 1–100 SOL). On BisonFi, GoonFi and the Manifest order book, the median trade printed better than the mid on both sides.
- Who sends the trade matters, a little. On Meteora DLMM, transactions calling the pool directly paid 0.06 bp round trip, Jupiter routes 1.05 bp and other programs 1.50 bp.
- 27% of SOL/USDC trades tip Jito, over 40% on Orca and Manifest. Network fee and tip together came to a median 0.01–0.04 bp of the trade; for the costliest tenth on Orca and Meteora DLMM they reached 0.5–0.6 bp, close to the median price cost.
- Few swaps call Orca directly. 93% of PumpSwap swaps are direct calls; on Orca and Meteora only 8% are, 27% come through Jupiter and 65% through 300+ other programs.
- A fifth to a quarter of DEX transactions don't trade. In two samples that afternoon, 27% and 21% of the transactions that referenced a DEX program never called it.
What we recorded
A Yellowstone gRPC stream at the confirmed commitment, filtered on 25 DEX programs and decoded live:
| Window | 26 Oct 2026, 16:30–21:57 UTC (5 h 28 min) |
| Transactions | 10,217,182 that executed a DEX program (failed ones excluded) |
| Swaps decoded | 4,080,004: PumpSwap 3,397,965 · Meteora DLMM 344,806 · Orca Whirlpool 337,233 |
| Reconciled | 99.97% · 95.53% · 99.77% of those swaps match the pool's balance changes exactly |
| Other venues | 7,342,430 balance changes on 22 more venues, proprietary AMMs and order books included |
| SOL/USDC trades | 141,022 identified, from 0.01 SOL up, on 17 venues; the venue tables use the 69,117 of 1–100 SOL on the 12 venues with enough of both sides |
| Reference prices | 497,089 Binance SOLUSDT quotes (best bid and ask, about 25 a second) and 16,578 Coinbase SOL-USD ones, on the same clock |
| Gaps | two 7-second stream drops: 67 of 92,492 slots missing (0.07%), and flagged |
For PumpSwap, Orca and Meteora DLMM we read each swap from the token transfers in and out of the pool and check them against the pool's balance changes. For the other venues, many of which publish no readable pool state, the effective price comes from the balance changes of whoever signed the transaction.
1. The fee is 4 bp; nine trades in ten paid under 2

Orca Whirlpool's SOL/USDC pool Czfq3…44zE (about $29M of liquidity) charges a 0.04% fee on every
swap. It took 99% of Orca's SOL/USDC trades of 1–100 SOL in our window: 11,435 of them. We priced
each one against the market mid at the moment it executed, fee and slippage included:
| Buy, bp | Sell, bp | Round trip, bp | |
|---|---|---|---|
| 10th percentile | −0.27 | −0.16 | −0.43 |
| 25th percentile | 0.22 | 0.22 | 0.44 |
| Median | 0.72 | 0.64 | 1.35 |
| 75th percentile | 1.31 | 1.07 | 2.39 |
| 90th percentile | 2.32 | 1.60 | 3.93 |
| 95th percentile | 4.70 | 2.82 | 7.52 |
Cost against the mid, positive = worse than the mid. Round trip = the buy and sell percentiles added.
96% of the trades paid less than the 4 bp fee, 91% paid less than 2 bp, and 15.5% got a better price than the mid itself. Even the 90th-percentile buy and sell together (3.9 bp) cost less than half of the 8 bp a round trip pays in fees.
In theory, a trade sent at a random moment pays about the fee: between trades the pool's price drifts a little above or below the market, and the 4 bp come on top. Our reading is that these trades didn't arrive at random. On Orca and Meteora, most SOL/USDC trades come through Jupiter or other programs that can pick the venue at the last moment (section 3): aggregators split each order across whichever venues quote best right then, and arbitrage bots trade a pool when its price has fallen far enough behind Binance to pay for the fee. If that's right, Orca's pool gets the trade when its price, fee included, beats BisonFi's, Tessera's and everyone else's, which most likely happens just after the market has moved and before the pool has caught up. The trader then lands a few basis points better than the pool's last price, and the fee eats most of that. We haven't measured the pool's quoted price between trades yet; that's the next dataset, and it will test this.
That is good news if you route through an aggregator, and something to keep in mind if you read fee tiers as costs. It also means that what the median trade paid on a venue says as much about who trades there as about the venue.
2. A round trip cost about 1.5 bp or less on most venues

Across all 12 venues with enough SOL/USDC trades of 1–100 SOL on both sides, we took the median cost of buying and of selling. Adding the two gives a round-trip cost that barely depends on where exactly you put the mid: whatever the reference adds to one side, it mostly takes away from the other. With a different reference, the round trips of the eight venues with the most trades move by 0.15 bp or less.
| Venue | Trades | Buy, bp | Sell, bp | Round trip, bp |
|---|---|---|---|---|
| BisonFi | 29,720 | −0.43 | −0.55 | −0.98 |
| Meteora DAMM v2 | 218 | −0.24 | −0.26 | −0.50 |
| GoonFi | 6,383 | −0.16 | −0.30 | −0.46 |
| Manifest | 1,305 | −0.28 | −0.10 | −0.38 |
| Tessera V | 6,945 | 0.11 | −0.02 | 0.09 |
| AlphaQ | 222 | 0.41 | 0.48 | 0.88 |
| Raydium CLMM | 2,709 | 0.48 | 0.42 | 0.90 |
| Meteora DLMM | 7,601 | 0.62 | 0.45 | 1.07 |
| Orca Whirlpool | 11,543 | 0.72 | 0.64 | 1.36 |
| Aquifer | 1,718 | 0.82 | 0.68 | 1.51 |
| ZeroFi | 572 | 1.27 | 1.09 | 2.36 |
| Raydium AMM v4 | 181 | 2.37 | 0.42 | 2.79 |
Median all-in cost against the mid, pool fee and slippage included, network fees and tips excluded. Trades of 1–100 SOL. Positive means worse than the mid.
For comparison, Jump Crypto, which runs BisonFi, put the median SOL/USDC fill on the proprietary AMMs at 0.72 bp from the best mid of Binance, Coinbase, OKX and Bybit, over about 20 million fills in March 2026 (their write-up). Our numbers for those venues come only from single-venue transactions (likely mostly bots) and use a mid at Solana's own price level, so the two aren't directly comparable.
Like with like. Because the balance-based venues only include transactions that touch a single venue, we ran the same check on the two pools. Counting only transactions with one venue and one swap, Orca's round trip comes to 1.06 bp instead of 1.36, and Meteora DLMM's to 0.68 bp instead of 1.07; trades inside routes or multi-swap transactions paid more (1.54 and 1.37 bp). So part of the gap between those pools and the venues at the top of the table is the kind of flow, not the venue. BisonFi, Meteora DAMM v2, GoonFi, Manifest and Tessera stay cheaper either way.
Three venues that set their own quotes printed better than the mid on both sides. On BisonFi, the venue with the most SOL/USDC trades of 1–100 SOL in our sample, the median buy and the median sell were both slightly better than the mid; GoonFi and the Manifest order book too (and Meteora DAMM v2, a public pool, on a small sample of 218 trades). That's consistent with quotes that trail Binance by a fraction of a second, and trades that land while a quote is behind, whoever sends them. The effect is small and sensitive to timing: measured at the moment each transaction reached us instead of the moment its slot was processed, BisonFi's round trip is −0.90 bp and Orca's 1.18 bp, and the order of the venues barely changes. Not every proprietary venue behaves this way: ZeroFi cost more than Orca, and Aquifer about the same.
Raydium AMM v4 had the highest round trip, on a small sample of 181 trades, and by far the worst tails: a quarter of its trades paid more than 30 bp.
Size barely moves the needle
| Orca Whirlpool | Trades | Buy, bp | Sell, bp |
|---|---|---|---|
| under 1 SOL | 28,147 | 0.71 | 0.52 |
| 1–10 SOL | 8,049 | 0.78 | 0.68 |
| 10–100 SOL | 3,494 | 0.60 | 0.52 |
| 100+ SOL | 334 | 0.31 | 0.18 |
| Meteora DLMM | Trades | Buy, bp | Sell, bp |
|---|---|---|---|
| under 1 SOL | 29,559 | 1.00 | 0.74 |
| 1–10 SOL | 7,005 | 0.67 | 0.45 |
| 10–100 SOL | 596 | 0.36 | 0.53 |
| 100+ SOL | 219 | 0.54 | 0.24 |
Big trades are likely routed to the deepest pools at good moments by whoever sends them, so this is not a liquidity curve. But the typical 100-SOL trade (about $10,000) didn't pay more than the typical small one.
A note on the price level
SOL/USDC on Solana traded 11.8 bp below Binance's SOL/USDT and 4.1 bp above Coinbase's SOL/USD over the evening (medians). Part of that is likely the stablecoins themselves (USDT, USDC and USD are not exactly the same dollar); we'll measure it directly next time by recording Binance's USDC/USDT book. That's why the mid we use follows Binance's quotes second by second but sits at Solana's own price level (details in the method). The round-trip column barely depends on that choice.
3. Who sends the trade

For every swap on PumpSwap, Orca and Meteora DLMM we know which program sat at the top of the call stack. PumpSwap is called directly 93% of the time, consistent with bots and the pump.fun app calling the pool themselves. Orca and Meteora are the opposite: 8% direct, about 27% through Jupiter and 65% through 300+ other programs: other aggregators, routers, trading bots and arbitrage contracts.
On SOL/USDC, the caller shows up in the price:
| Trades of 1–100 SOL | Caller | Trades | Buy, bp | Sell, bp | Round trip, bp |
|---|---|---|---|---|---|
| Meteora DLMM | the pool directly | 1,346 | 0.07 | −0.01 | 0.06 |
| Jupiter | 2,225 | 0.53 | 0.51 | 1.05 | |
| other programs | 4,030 | 0.91 | 0.59 | 1.50 | |
| Orca Whirlpool | the pool directly | 2,471 | 0.51 | 0.43 | 0.93 |
| Jupiter | 4,349 | 0.72 | 0.68 | 1.40 | |
| other programs | 4,723 | 0.84 | 0.69 | 1.53 |
Direct calls paid the least, and they came from a handful of wallets: 22 on Meteora and 56 on Orca, with the ten busiest sending 97–99% of them. Even Jupiter's flow is concentrated: the ten busiest signers sent 56–63% of the Jupiter-routed SOL/USDC trades of this size, which looks more like bots using Jupiter for routing than like people swapping in a wallet. On Orca, Jupiter's flow paid 0.6–0.7 bp per side whatever the size: 0.72 and 0.58 bp under 1 SOL, 0.72 and 0.68 bp for 1–10 SOL, 0.71 and 0.68 bp for 10–100 SOL.
4. Landing the trade is cheap, and a lot of it tips Jito

For SOL/USDC trades of 1–100 SOL sent as a transaction of their own (one venue, one swap), the network fee plus any Jito tip came to a median 0.01–0.04 bp of the amount traded. Next to the price cost, that's noise. But tipping is common: 27% of these trades paid a Jito tip, from 10% on GoonFi to 42% on Orca and 45% on Manifest (ZeroFi, almost none). On Orca and Meteora DLMM the tips were large: a median of 175,701 lamports on Orca (about $0.018) and 114,615 on Meteora, against 9,000–21,000 on the proprietary AMMs and Manifest, consistent with bots bidding for a position in the block. For the costliest tenth of trades on Orca and Meteora DLMM, fee and tip came to 0.5–0.6 bp of the trade, close to the median price cost.
5. A fifth to a quarter of DEX transactions don't trade
Our filter catches any transaction that references one of the 25 DEX programs. In a 20-minute sample recorded earlier the same day (13:51–14:10 UTC), 247,934 of 914,218 such transactions (27%) never invoked any of them; in a second sample half an hour later, 21%. In the first sample they came from just 180 fee payers, the top ten sending 46% of them, and used a median of 20,199 compute units against 78,268 for the ones that traded. That's consistent with bots that load the accounts, check a price and exit without trading; one we looked up was an arbitrage program that ran, paid a tiny Jito tip and traded nothing. We no longer store them, but they are a real share of the blockspace that DEX activity consumes.
What's next
This was one evening. With every day of recording we can answer the questions that need more history: what a trade sent at a random moment would have paid (that needs each pool's quoted price at every slot, which we're adding), who quotes late against Binance and by how many milliseconds, how much of the volume is wash trading, and how all of it changes week to week.
We're building this into a dataset: swaps on Solana's main venues with their real execution cost, the priority fee and Jito tip each one paid, and the CEX price at the same instant, delivered as daily Parquet with a simple API. If that's useful to you, join the waitlist or tell us what you'd want in it.
Method
- Recording. Yellowstone gRPC (Dragon's Mouth) at
confirmed, filtered on the programs of 25 DEXs, decoded on the fly in Rust and written to Parquet. Failed transactions are excluded. BinancebookTicker(SOLUSDT, about 25 updates a second that evening) and Coinbaseticker(SOL-USD) are recorded on the same machine, so every timestamp is on one clock. - When a swap happened. The time the
processedstatus of its slot reached us. Minutes in which the stream ran more than two seconds late (16 of 328) are left out of the price comparisons. - The mid. Binance's SOLUSDT mid at that time, multiplied by a slowly moving factor that brings it to Solana's SOL/USDC level: for each minute, the geometric midpoint between the median buy and the median sell ratio (DEX price over Binance mid) across all venues in the surrounding 11 minutes. By construction the market as a whole buys about as far above this mid as it sells below it, so a venue's buy and sell numbers say how it compares with the rest of the market. Round trips barely depend on the factor: with Binance's mid converted to USD with Coinbase instead, the round trips of the eight venues with the most trades move by 0.15 bp or less, and ZeroFi's and Raydium AMM v4's by about 0.6 bp.
- Execution price. PumpSwap, Orca Whirlpool and Meteora DLMM: tokens into and out of the pool, plus anything the trader paid outside the pool within the swap, only for swaps that reconcile with the pool's balance changes. Other venues: the signer's change in SOL (native plus wrapped, with any Jito tip added back) and in USDC, only for transactions that touch a single venue and no other token. Costs include the pool's fee and slippage, not network fees or tips.
- The fee. Orca's API gives the pool a fee rate of 400 per million, 0.04% (26 Oct 2026).
- Network costs. Fee plus Jito tip over the SOL traded, for transactions with a single venue and a single swap, so that the fee belongs to that trade and not to a whole route.
Limits
- One evening is one market regime, and medians hide tails.
- Coverage. We recorded 25 programs. At least two venues that matter today were not on the list: Scorch, a proprietary AMM with about $60M a day in volume according to DefiLlama, and Kipseli, a newer venue that Jupiter was sending small SOL→USDC swaps to as we wrote this. HumidiFi barely shows up in our recording (7 transactions) even though DefiLlama reports volume for it; we're checking why. Jupiter's RFQ fills are not measured. The venue tables cover the venues we recorded, not the whole market.
- Balance-based prices exclude multi-venue routes, so for those venues they describe mostly single-venue flow (often bots). On Orca and Meteora DLMM, that kind of flow paid about 0.3–0.4 bp less per round trip than their average (section 2). A trader who opens a new token account in the same transaction pays its rent in SOL, which makes a few small trades look more expensive; medians absorb it.
- We measure each leg, not the order. A Jupiter order split across three venues shows up as three trades, each priced on its own.
- USDC is treated as equal to Coinbase's USD for the level comparison.
Numbers are as recorded; nothing here is investment advice. Method details and the SQL behind the numbers are available on request.