The League
What Solana trading bots actually charge, read from on-chain fee payments — trade by trade, not from their marketing pages.
Fees measured 2026-08-13 · rebuilt 2026-08-16On this page: Cost calculator · Who trades · Bots · All fee accounts · Small trades · Speed · Method
GMGN and Photon both charge 1 percent per leg, so on fees alone they tie at every size we priced. There is no crossover. Execution could separate them; we have a dated measurement for GMGN only, further down this page. Trojan is never cheapest — it is GMGN plus a fixed 0.0015 SOL. Axiom, the largest bot on Solana by volume, was the most expensive of the four at every size we priced. Several accounts we measured charge about half of GMGN; we earn nothing from those and list them anyway.
Fee as a share of your trade
On the Trojan line: it is drawn as if the ~1% applies to every trade. We measured that percentage stacking on roughly 70% of Trojan trades, not all of them, so Trojan’s real curve sits below the line shown here. We draw the conservative version until we can publish a firmer figure.
Both axes are logarithmic, so a flat fee falls as a straight line and a percentage fee is horizontal. Photon and GMGN both charge about 1 percent per leg, so their lines sit on top of each other: on fees alone they tie at every size.
Who trades where
Every fee payment we read carries the size of the trade that produced it. Axiom is measured from its own fee accounts separately, because it executes through a private engine our main census excludes. Group those by bot and you can see what kind of trader each one attracts. These are shares, not volumes — we sample a fixed number of transactions per fee account, so the number of trades we saw says nothing about a bot's market share. Only the mix, the median and the whale share compare across bots.
| Group | Trade size mix | Median trade (SOL) | Share over 0.5 SOL |
|---|---|---|---|
| Jito tip payers | 0.204 | 36.9% | |
| Axiom | 0.155 | 28.6% | |
| Unattributed collector | 0.175 | 25.9% | |
| Frontend A | 0.149 | 22.4% | |
| Trojan | 0.099 | 21.0% | |
| Photon | 0.084 | 20.0% | |
| Frontend B | 0.085 | 15.9% | |
| Unnamed collector (pfn) | 0.089 | 15.7% | |
| GMGN | 0.084 | 14.6% |
Named bots
| Bot | What it charges | Cheapest when | How we know | How well we know it |
|---|---|---|---|---|
| Photon | ~1% of trade, each leg | Ties with GMGN at every size | Four controlled trades from our own phone, read on chain, plus 196 priced trades collected by the same fee account from 54 separate wallets. One percent of trade size on every leg, across six size bands from under 0.05 SOL to over 1 SOL. No flat component at any size. The sixteen pfn-prefixed accounts we used to call Photon are a different service: they route through different programs, and in a sample of their payers not one wallet also paid Photon’s real collector. | Corrected 9 September 2026. We published a flat 0.0035 SOL per leg for three weeks. It was wrong, and so was the way we identified Photon at all — by the pfn account-name prefix, which we could never verify. So we ran four controlled trades through Photon from a phone and read them on chain. No pfn account received anything. Photon routes through program BSfD6SHZ… and collects into AVUCZyuT…, neither of which appears in Trojan’s or GMGN’s fee transactions, and neither of which was in our census. Across 196 priced trades from 54 separate wallets the fee is 1.00 percent of trade size per leg — 1.02 percent under 0.05 SOL, 1.00 percent above 1 SOL, six size bands, no flat component. That matches Photon’s advertised rate. The old figure overstated Photon on small trades by about three and a half times and understated it on large ones by about three. Every number on this page has been recomputed. |
| Trojan | 0.0015 SOL + ~1% of trade | Never | 407 payments read across the 2 accounts we could confirm belong to Trojan. Both are charged on the same trade, so the cost is a fixed part plus a percentage. | Stated terms. Our account-level census could not confirm a per-size curve: median fee per account in the same size band ranged 0.00023–0.06914 SOL, so we publish the advertised shape rather than a measured one. |
| GMGN | ~1% of trade, each leg | Ties with Photon at every size | We sent our own money through it and watched what came out: 1.00 percent taken on the buy, 0.94 percent on the sell. | Stated terms. Same limit — account medians in the smallest band ranged 0.00009–0.09579 SOL, too wide to price per band. |
| Axiom | ~1% of trade + ~0.0107 SOL per leg | Never | One controlled trade from our own wallet: 0.92 percent on the buy, 0.90 percent on the sell, plus about 0.0107 SOL per leg for priority inside its execution engine. Default settings, n=1 — not a population measurement like Photon. | Single controlled trade from our own wallet, not a census. Treat as one observation. |
Cost by trade size (SOL, fees only)
| Trade size | Photon | Trojan | GMGN | Axiom | Cheapest |
|---|---|---|---|---|---|
| 0.02 | 0.00020 | 0.00170 | 0.00020 | 0.01090 | Photon and GMGN (tie) |
| 0.05 | 0.00050 | 0.00200 | 0.00050 | 0.01120 | Photon and GMGN (tie) |
| 0.1 | 0.00100 | 0.00250 | 0.00100 | 0.01170 | Photon and GMGN (tie) |
| 0.2 | 0.00200 | 0.00350 | 0.00200 | 0.01270 | Photon and GMGN (tie) |
| 0.35 | 0.00350 | 0.00500 | 0.00350 | 0.01420 | Photon and GMGN (tie) |
| 0.5 | 0.00500 | 0.00650 | 0.00500 | 0.01570 | Photon and GMGN (tie) |
| 1.0 | 0.01000 | 0.01150 | 0.01000 | 0.02070 | Photon and GMGN (tie) |
| 2.0 | 0.02000 | 0.02150 | 0.02000 | 0.03070 | Photon and GMGN (tie) |
Every fee account we measured
Live accounts collecting fees from Solana traders, ranked by how many separate wallets paid them. Click any column to sort. A name appears only where the bot’s own program signed the transaction, or where we ran a controlled trade through that bot ourselves and watched which account took the fee. Everything else stays unnamed, because guessing is how fee comparisons go wrong — we guessed once from an account-name prefix and had to retract it. Rates are lower bounds: if a bot splits its fee across several accounts, its real cost is higher.
| Who | Account | Where it sits | Wallets | Payments | Rate | How it compares |
|---|---|---|---|---|---|---|
| unnamed | 5YxQFdt3Tr… | bot fee account | 256 | 339 | 0.47% | Cheaper than Photon at every size we measured |
| Frontend A | J5XGHmzrRm… | bot fee account | 232 | 434 | 1.01% | Dearer than Photon at every size we measured |
| Frontend B | 62qc2CNXwr… | bot fee account | 230 | 287 | 0.47% | Cheaper than Photon at every size we measured |
| unnamed | 7hTckgnGnL… | bot fee account | 185 | 250 | 0.47% | Cheaper than Photon at every size we measured |
| Trojan verified | 9yMwSPk9mr… | bot fee account | 145 | 236 | 1.0% | Cheaper than Photon under ~0.182 SOL |
| unnamed | A7hAgCzFw1… | private execution engine | 143 | 158 | 0.47% | Cheaper than Photon at every size we measured |
| GMGN verified | DXfkEGoo6W… | bot fee account | 135 | 151 | 1.02% | Too few samples to compare |
| GMGN verified | HeZVpHj9jL… | bot fee account | 133 | 158 | 1.0% | Cheaper than Photon under ~0.333 SOL |
| Unattributed collector | CebN5WGQ4j… | private execution engine | 128 | 143 | 0.47% | Cheaper than Photon at every size we measured |
| unnamed | 5cjcW9wExn… | private execution engine | 127 | 141 | 0.48% | Cheaper than Photon at every size we measured |
| GMGN verified | 7VtfL8fvgN… | private execution engine | 126 | 143 | 0.47% | Cheaper than Photon at every size we measured |
| unnamed | 5eHhjP8JaY… | private execution engine | 121 | 136 | 0.48% | Cheaper than Photon at every size we measured |
| unnamed | AVmoTthdrX… | private execution engine | 121 | 138 | 0.48% | Cheaper than Photon at every size we measured |
| unnamed | 3BpXnfJaUT… | private execution engine | 117 | 141 | 0.43% | Cheaper than Photon at every size we measured |
| unnamed | 9M4giFFMxm… | bot fee account | 117 | 133 | 0.48% | Cheaper than Photon at every size we measured |
| unnamed | EHAAiTxcdD… | private execution engine | 116 | 131 | 0.48% | Cheaper than Photon at every size we measured |
| Trojan verified | BGT8Vm1u5n… | bot fee account | 112 | 171 | 0.33% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnTcJ1i4m… | bot fee account | 112 | 134 | 0.12% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnSbziLrS… | bot fee account | 111 | 130 | 0.14% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnSbG36fC… | bot fee account | 110 | 133 | 0.11% | Cheaper than Photon at every size we measured |
| unnamed | 9rPYyANsfQ… | private execution engine | 107 | 124 | 0.48% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfn9b35be4… | bot fee account | 107 | 138 | 0.13% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnXi2FdpF… | bot fee account | 107 | 132 | 0.12% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnaxrmMoe… | bot fee account | 106 | 141 | 0.11% | Cheaper than Photon at every size we measured |
| unnamed | GXPFM2caqT… | private execution engine | 103 | 118 | 0.47% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnEJvqLGd… | bot fee account | 103 | 127 | 0.11% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnUxCuZcf… | bot fee account | 102 | 125 | 0.11% | Cheaper than Photon at every size we measured |
| unnamed | G5UZAVbAf4… | private execution engine | 101 | 110 | 0.48% | Cheaper than Photon at every size we measured |
| unnamed | FogvMj1LQA… | bot fee account | 100 | 159 | — | Too few samples to compare |
| Unnamed collector (pfn) verified | pfn6dyanKi… | bot fee account | 100 | 129 | 0.12% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfngGVVQLi… | bot fee account | 100 | 129 | 0.12% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnntQ8jDj… | bot fee account | 100 | 123 | 0.15% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnKWwarhj… | bot fee account | 99 | 130 | 0.12% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnSAoQWtJ… | bot fee account | 99 | 129 | 0.13% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfn2d1g6xk… | bot fee account | 95 | 128 | 0.12% | Cheaper than Photon at every size we measured |
| unnamed | FWsW1xNtWs… | private execution engine | 94 | 102 | 0.47% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnaZXdkjJ… | bot fee account | 94 | 126 | 0.1% | Cheaper than Photon at every size we measured |
| Unnamed collector (pfn) verified | pfnP85qobX… | bot fee account | 89 | 121 | 0.14% | Cheaper than Photon at every size we measured |
| Photon verified | AVUCZyuT35… | bot fee account | 67 | 148 | 1.02% | Dearer than Photon at every size we measured |
| unnamed | EvfEXLGwrS… | private execution engine | 64 | 76 | — | Too few samples to compare |
| unnamed | 52okb8rFtP… | private execution engine | 63 | 72 | — | Too few samples to compare |
| unnamed | AhkMmeq1fR… | private execution engine | 55 | 83 | 0.3% | Cheaper than Photon at every size we measured |
| unnamed | FVprL5naK4… | private execution engine | 54 | 66 | — | Too few samples to compare |
| unnamed | 35xNJexEZL… | private execution engine | 48 | 59 | — | Too few samples to compare |
| unnamed | HWS5XZ89MH… | private execution engine | 47 | 53 | 0.3% | Cheaper than Photon at every size we measured |
| unnamed | ARu4n5mFdZ… | bot fee account | 40 | 42 | 0.85% | Cheaper than Photon at every size we measured |
| unnamed | 6cy1Kr2o2a… | private execution engine | 37 | 42 | — | Too few samples to compare |
| unnamed | B4T1s465DA… | bot fee account | 34 | 49 | — | Too few samples to compare |
| GMGN verified | 9EkrsbLh87… | private execution engine | 29 | 39 | — | Too few samples to compare |
| Micro-fee | 4ACfpUFoaS… | bot fee account | 27 | 50 | — | Too few samples to compare |
| unnamed | GesfTA3X2a… | bot fee account | 19 | 28 | — | Too few samples to compare |
Coverage
| Bot | Measured by us? |
|---|---|
| Photon | measured |
| Trojan | measured |
| GMGN | measured |
| Axiom | measured |
| BullX | discontinued June 2026 |
| bonkbot | not yet |
| FOMO | not yet |
| terminal | not yet |
| pump.fun app | not yet |
The part nobody tells small traders
What about speed?
What you actually get filled at
Disclosure. The Trade buttons on this page are referral links for Photon, Trojan, GMGN and Axiom: we may earn a fee when readers sign up through them. Costs and rankings here use measured fees only. This study ran to 19 August 2026 and has not been re-run since.
Fees are only half of what a trade costs. The other half is the price you get, and nobody publishes it. So we measured it: 17,121 real fills across 264 tokens, comparing every trade against the volume-weighted price of other trades on the same token, in the same 30 second window, at a similar size. Same token, same moment, same size, different bot.
| Bot | Trades | Execution (bps) | 95% range | Sample 1 / 2 | Under $25k | $25-100k |
|---|---|---|---|---|---|---|
| GMGN | 797 | -75 | -119 to -38 | -77 / -61 | -83 | -16 |
| Axiom | 508 | -70 | -140 to -3 | -7 / -154 | -56 | +39 |
| Photon | Withdrawn 14 September 2026 — see below | |||||
Negative is better: the trade got a better price than others happening at the same moment. GMGN is the only bot with a clear edge — about 75 basis points, consistent across two deliberately different sets of tokens. GMGN is identified from its own on-chain program, which is solid evidence. Axiom's two samples disagree by 147 basis points, and part of its attribution comes from two wallet addresses hard-coded without a recorded reason, so treat its number as unsettled.
Total cost: fee plus fill
| Trade size | GMGN | Axiom |
|---|---|---|
| 0.05 SOL | 25 | 2170 |
| 0.1 SOL | 25 | 1100 |
| 0.25 SOL | 25 | 458 |
| 0.5 SOL | 25 | 244 |
| 1 SOL | 25 | 137 |
| 2 SOL | 25 | 84 |
| 5 SOL | 25 | 52 |
What would change this: a re-run with correct Photon identification, which we can now do. This study ran to 19 August; the next one will carry its own date.
Method and limits: execution is measured against other traders in the same window, not against a theoretical best price, so it captures being early or late as well as routing quality. It cannot measure sub-second speed claims. It does not control for who chooses which bot or why. All tokens are Solana memecoins in their first hours of trading.
How this was measured
Every number comes from the blockchain, not from a fee schedule. We read the SOL that left traders' wallets on each trade and grouped it by which account received it. Before comparing anything we sorted those accounts into what they really are: a bot's own fee account, a Jito tip, a venue protocol fee, a private execution engine, or routing infrastructure. All eight of Jito's tip addresses sat in our raw data and would have been counted as a trading bot had we not separated them — most fee comparisons never make that distinction. Accounts marked as sitting inside a private execution engine are real fees paid by real traders, but that engine is shared, so we do not attribute them to a particular bot.
Not measured here: speed, fill quality, MEV protection, reliability. Price only. Fees change without notice, which is why the measurement date is printed at the top.