Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
188 changes: 94 additions & 94 deletions benchmarks/solana-trading-platform-wars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

slug: solana-trading-platform-wars
number: "201"
title: "Solana trading platform leaderboard: pump.fun vs GMGN vs Axiom vs Fomo, live 24h volume"
seo_title: "Solana trading platform comparison 2026: pump.fun, GMGN, Axiom, Fomo, Trojan"
seo_description: "{{best_name}} leads Solana trading platforms at ${{best_p50}} 24h volume. pump.fun vs GMGN vs Axiom vs Fomo vs Trojan vs Padre vs Phantom ranked live from Mobula lighthouse data."
subtitle: Live 24-hour trading volume for each Solana trading platform and Telegram bot. Polled every 15 minutes from Mobula lighthouse, which aggregates on-chain swap events routed through each frontend across all Solana DEX programs.
title: "Trading platform leaderboard: GMGN vs Axiom vs Fomo vs pump.fun, live 24h volume"
seo_title: "Trading platform comparison 2026: GMGN, Axiom, Fomo, pump.fun, Trojan, Terminal"
seo_description: "{{best_name}} leads trading platforms at ${{best_p50}} 24h volume. GMGN vs Axiom vs Fomo vs Trojan vs Terminal vs BasedBot ranked live from Dune community datasets."
subtitle: Live 24-hour trading volume per platform and Telegram bot, cross-chain (Solana + BNB + Base + Robinhood node + HyperEVM + Monad). Sourced from Sacha's Dune community datasets, refreshed every 4 hours.

category: Trading
status: live
Expand All @@ -14,7 +14,7 @@ unit: usd
higher_is_better: true

disclaimer: |
Volume figures are sourced from Mobula's lighthouse aggregator, which indexes on-chain swap events attributed to each trading platform or Telegram bot. Data is refreshed every 15 minutes. Platforms with zero volume may indicate no attributable on-chain activity in the last 24 hours or a temporary attribution gap in Mobula's indexing.
Volume figures are sourced from Sacha's (adam_tehc) Dune community datasets, which aggregate cross-chain trading activity per platform (Solana, BNB Chain, Base, Robinhood node, HyperEVM, Monad, and more). Data is refreshed every 4 hours. pump.fun volume = bonding-curve Solana swaps (dataset_pumpapp_sol_daily) + cross-chain relay swaps (dataset_pumpfun_relay_daily). Fomo = Solana only (dataset_fomo_sol_daily). All others sum across all blockchains.

seo_intro: |
Solana's trading frontend market is a contested race between GMGN, Axiom and
Expand Down Expand Up @@ -42,12 +42,12 @@ abstract: |
trading platforms as providers.

methodology:
- "Source: Mobula lighthouse (api.mobula.io/api/2/market/lighthouse), byPlatform field. Mobula attributes swap events using on-chain referral tags, program IDs and memo fields."
- "Poll cadence: harness fetches the endpoint every 15 minutes and updates Prometheus gauges. Prometheus scrapes :2112/metrics every 60 seconds."
- "Volume: sum of all swap event notional values (in USD at time of swap) within the last 24 hours for swaps attributed to this platform. Higher = more user activity routed through this frontend."
- "Attribution: Mobula uses on-chain referral tags, program IDs and memo fields. Each swap is attributed to exactly one platform. Platforms without standard referral tags may be undercounted."
- "pump.fun: sourced from Mobula's byLaunchpad bucket (bonding-curve swaps via pump.fun's own frontend). PumpSwap trades routed through GMGN or Axiom count under those platforms."
- "Phantom: wallet-initiated swaps via Jupiter or other aggregators, not active trading sessions."
- "Source: Sacha's (adam_tehc) Dune community datasets (dune.adam_tehc_co.dataset_*_daily). Each dataset covers one trading platform across all blockchains it operates on."
- "Poll cadence: harness queries Dune every 4 hours and updates Prometheus gauges. Prometheus scrapes :2112/metrics every 60 seconds."
- "Volume: sum of volume_usd across all blockchains for the most recent complete day in each platform's dataset. Higher = more total user activity."
- "pump.fun: dataset_pumpapp_sol_daily (Solana bonding-curve) + dataset_pumpfun_relay_daily filtered to req_class='swap'. pump.fun cut fees to 0% in Aug 2026; volume is for their own frontend only (pumpapp), not all bonding-curve activity."
- "fomo: dataset_fomo_sol_daily (Solana only). Includes Fomo's relay cross-chain volume when Sacha incorporates it."
- "BasedBot: multi-chain bot (Robinhood node, BNB, Base, Solana, ETH, HyperEVM, Avalanche)."

findings:
- "{{best_name}} leads Solana trading platforms at ${{best_p50}} 24h volume."
Expand All @@ -56,11 +56,11 @@ findings:
- "Trojan serves the Telegram-native segment and accounts for significant bot-driven Solana swap flow. Padre is a web trading terminal, not a Telegram bot."
- "Phantom collects a 0.85% platform fee on in-wallet swaps routed to its own fee wallets; it is a monetised frontend, not a passive aggregator pass-through."

source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/solana-trading-platform-wars
source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/dune-platform-volume

prometheus:
window: 24h
freshness_metric: solana_platform_volume_24h_usd
freshness_metric: dune_platform_volume_24h_usd

faq:
- q: "Which Solana trading platform has the most volume?"
Expand All @@ -79,106 +79,106 @@ faq:
a: "BullX has limited Solana attribution in Mobula's lighthouse data. BullX primarily targets EVM chains and its Solana swap volume may not be tagged with referral data that Mobula can attribute. DEX volume for BullX across chains is tracked in bench 205."

providers:
- slug: pump-fun
name: pump.fun
tag: "Solana meme launchpad, bonding curve"
formula: "24h swap volume in USD on pump.fun's bonding curve via pump.fun's own frontend (Mobula lighthouse byLaunchpad[name=PumpFun].volumeUSD.24h, updated every 15 min)."
queries:
p50: solana_platform_volume_24h_usd{platform="pump-fun"}
p90: solana_platform_volume_24h_usd{platform="pump-fun"}
p99: solana_platform_volume_24h_usd{platform="pump-fun"}
mean: solana_platform_volume_24h_usd{platform="pump-fun"}
success: solana_platform_health{platform="pump-fun"}
sample_size: solana_platform_fees_24h_usd{platform="pump-fun"}
series: solana_platform_volume_24h_usd{platform="pump-fun"}

- slug: gmgn
name: GMGN
tag: "AI trading terminal on Solana"
formula: "24h swap volume in USD attributed to GMGN (Mobula lighthouse byPlatform[name=GMGN].volumeUSD.24h, updated every 15 min)."
tag: "AI trading terminal, multi-chain"
formula: "24h cross-chain volume in USD (Solana + BNB + Robinhood node + Base + ETH + more) from dune.adam_tehc_co.dataset_gmgn_daily, latest complete day."
queries:
p50: solana_platform_volume_24h_usd{platform="gmgn"}
p90: solana_platform_volume_24h_usd{platform="gmgn"}
p99: solana_platform_volume_24h_usd{platform="gmgn"}
mean: solana_platform_volume_24h_usd{platform="gmgn"}
success: solana_platform_health{platform="gmgn"}
sample_size: solana_platform_fees_24h_usd{platform="gmgn"}
series: solana_platform_volume_24h_usd{platform="gmgn"}
p50: dune_platform_volume_24h_usd{platform="gmgn"}
p90: dune_platform_volume_24h_usd{platform="gmgn"}
p99: dune_platform_volume_24h_usd{platform="gmgn"}
mean: dune_platform_volume_24h_usd{platform="gmgn"}
success: dune_platform_volume_health{platform="gmgn"}
sample_size: dune_platform_volume_24h_usd{platform="gmgn"}
series: dune_platform_volume_24h_usd{platform="gmgn"}

- slug: axiom
name: Axiom
tag: "Web trading terminal on Solana"
formula: "24h swap volume in USD attributed to Axiom (Mobula lighthouse byPlatform[name=Axiom].volumeUSD.24h, updated every 15 min)."
tag: "Web trading terminal, multi-chain"
formula: "24h cross-chain volume in USD (Solana + Robinhood node + BNB + ETH) from dune.adam_tehc_co.dataset_axiom_daily, latest complete day."
queries:
p50: solana_platform_volume_24h_usd{platform="axiom"}
p90: solana_platform_volume_24h_usd{platform="axiom"}
p99: solana_platform_volume_24h_usd{platform="axiom"}
mean: solana_platform_volume_24h_usd{platform="axiom"}
success: solana_platform_health{platform="axiom"}
sample_size: solana_platform_fees_24h_usd{platform="axiom"}
series: solana_platform_volume_24h_usd{platform="axiom"}
p50: dune_platform_volume_24h_usd{platform="axiom"}
p90: dune_platform_volume_24h_usd{platform="axiom"}
p99: dune_platform_volume_24h_usd{platform="axiom"}
mean: dune_platform_volume_24h_usd{platform="axiom"}
success: dune_platform_volume_health{platform="axiom"}
sample_size: dune_platform_volume_24h_usd{platform="axiom"}
series: dune_platform_volume_24h_usd{platform="axiom"}

- slug: fomo
name: Fomo
tag: "Solana trading platform"
formula: "24h swap volume in USD attributed to Fomo (Mobula lighthouse byPlatform[name=Fomo].volumeUSD.24h, updated every 15 min). Fees from DeFiLlama (dailyRevenue)."
formula: "24h Solana volume in USD from dune.adam_tehc_co.dataset_fomo_sol_daily, latest complete day."
queries:
p50: dune_platform_volume_24h_usd{platform="fomo"}
p90: dune_platform_volume_24h_usd{platform="fomo"}
p99: dune_platform_volume_24h_usd{platform="fomo"}
mean: dune_platform_volume_24h_usd{platform="fomo"}
success: dune_platform_volume_health{platform="fomo"}
sample_size: dune_platform_volume_24h_usd{platform="fomo"}
series: dune_platform_volume_24h_usd{platform="fomo"}

- slug: basedbot
name: BasedBot
tag: "Multi-chain trading bot"
formula: "24h cross-chain volume in USD (Robinhood node + BNB + Base + Solana + ETH + HyperEVM) from dune.adam_tehc_co.dataset_basedbot_daily, latest complete day."
queries:
p50: solana_platform_volume_24h_usd{platform="fomo"}
p90: solana_platform_volume_24h_usd{platform="fomo"}
p99: solana_platform_volume_24h_usd{platform="fomo"}
mean: solana_platform_volume_24h_usd{platform="fomo"}
success: solana_platform_health{platform="fomo"}
sample_size: defillama_dex_fees_24h_usd{platform="fomo"}
series: solana_platform_volume_24h_usd{platform="fomo"}
p50: dune_platform_volume_24h_usd{platform="basedbot"}
p90: dune_platform_volume_24h_usd{platform="basedbot"}
p99: dune_platform_volume_24h_usd{platform="basedbot"}
mean: dune_platform_volume_24h_usd{platform="basedbot"}
success: dune_platform_volume_health{platform="basedbot"}
sample_size: dune_platform_volume_24h_usd{platform="basedbot"}
series: dune_platform_volume_24h_usd{platform="basedbot"}

- slug: trojan
name: Trojan
tag: "Telegram trading bot on Solana"
formula: "24h swap volume in USD attributed to Trojan (Mobula lighthouse byPlatform[name=Trojan].volumeUSD.24h, updated every 15 min)."
- slug: pump-fun
name: pump.fun
tag: "Solana meme launchpad + cross-chain relay"
formula: "24h volume = pump.fun app Solana swaps (dataset_pumpapp_sol_daily) + cross-chain relay swaps (dataset_pumpfun_relay_daily, req_class=swap). pump.fun cut fees to 0% Aug 2026; volume is for pumpapp frontend only."
queries:
p50: solana_platform_volume_24h_usd{platform="trojan"}
p90: solana_platform_volume_24h_usd{platform="trojan"}
p99: solana_platform_volume_24h_usd{platform="trojan"}
mean: solana_platform_volume_24h_usd{platform="trojan"}
success: solana_platform_health{platform="trojan"}
sample_size: solana_platform_fees_24h_usd{platform="trojan"}
series: solana_platform_volume_24h_usd{platform="trojan"}
p50: dune_platform_volume_24h_usd{platform="pump-fun"}
p90: dune_platform_volume_24h_usd{platform="pump-fun"}
p99: dune_platform_volume_24h_usd{platform="pump-fun"}
mean: dune_platform_volume_24h_usd{platform="pump-fun"}
success: dune_platform_volume_health{platform="pump-fun"}
sample_size: dune_platform_volume_24h_usd{platform="pump-fun"}
series: dune_platform_volume_24h_usd{platform="pump-fun"}

- slug: padre
name: Padre
tag: "AI web trading terminal on Solana"
formula: "24h swap volume in USD attributed to Padre (Mobula lighthouse byPlatform[name=Padre].volumeUSD.24h, updated every 15 min)."
name: Terminal
tag: "pump.fun's own trading app (formerly Padre, acquired Apr 2025)"
formula: "24h cross-chain volume in USD (Solana + Robinhood node + Base + BNB) from dune.adam_tehc_co.dataset_terminal_daily, latest complete day."
queries:
p50: dune_platform_volume_24h_usd{platform="padre"}
p90: dune_platform_volume_24h_usd{platform="padre"}
p99: dune_platform_volume_24h_usd{platform="padre"}
mean: dune_platform_volume_24h_usd{platform="padre"}
success: dune_platform_volume_health{platform="padre"}
sample_size: dune_platform_volume_24h_usd{platform="padre"}
series: dune_platform_volume_24h_usd{platform="padre"}

- slug: trojan
name: Trojan
tag: "Telegram trading bot on Solana"
formula: "24h Solana volume in USD from dune.adam_tehc_co.dataset_trojan_daily, latest complete day."
queries:
p50: solana_platform_volume_24h_usd{platform="padre"}
p90: solana_platform_volume_24h_usd{platform="padre"}
p99: solana_platform_volume_24h_usd{platform="padre"}
mean: solana_platform_volume_24h_usd{platform="padre"}
success: solana_platform_health{platform="padre"}
sample_size: solana_platform_fees_24h_usd{platform="padre"}
series: solana_platform_volume_24h_usd{platform="padre"}
p50: dune_platform_volume_24h_usd{platform="trojan"}
p90: dune_platform_volume_24h_usd{platform="trojan"}
p99: dune_platform_volume_24h_usd{platform="trojan"}
mean: dune_platform_volume_24h_usd{platform="trojan"}
success: dune_platform_volume_health{platform="trojan"}
sample_size: dune_platform_volume_24h_usd{platform="trojan"}
series: dune_platform_volume_24h_usd{platform="trojan"}

- slug: photon
name: Photon
tag: "Solana trading terminal"
formula: "24h swap volume in USD attributed to Photon (Mobula lighthouse byPlatform[name=Photon].volumeUSD.24h, updated every 15 min)."
queries:
p50: solana_platform_volume_24h_usd{platform="photon"}
p90: solana_platform_volume_24h_usd{platform="photon"}
p99: solana_platform_volume_24h_usd{platform="photon"}
mean: solana_platform_volume_24h_usd{platform="photon"}
success: solana_platform_health{platform="photon"}
sample_size: solana_platform_fees_24h_usd{platform="photon"}
series: solana_platform_volume_24h_usd{platform="photon"}

- slug: maestro
name: Maestro
tag: "Telegram trading bot on Solana"
formula: "24h swap volume in USD attributed to Maestro (Mobula lighthouse byPlatform[name=Maestro].volumeUSD.24h, updated every 15 min)."
formula: "24h Solana volume in USD from dune.adam_tehc_co.dataset_photon_daily, latest complete day."
queries:
p50: solana_platform_volume_24h_usd{platform="maestro"}
p90: solana_platform_volume_24h_usd{platform="maestro"}
p99: solana_platform_volume_24h_usd{platform="maestro"}
mean: solana_platform_volume_24h_usd{platform="maestro"}
success: solana_platform_health{platform="maestro"}
sample_size: solana_platform_fees_24h_usd{platform="maestro"}
series: solana_platform_volume_24h_usd{platform="maestro"}
p50: dune_platform_volume_24h_usd{platform="photon"}
p90: dune_platform_volume_24h_usd{platform="photon"}
p99: dune_platform_volume_24h_usd{platform="photon"}
mean: dune_platform_volume_24h_usd{platform="photon"}
success: dune_platform_volume_health{platform="photon"}
sample_size: dune_platform_volume_24h_usd{platform="photon"}
series: dune_platform_volume_24h_usd{platform="photon"}
15 changes: 15 additions & 0 deletions harnesses/dune-platform-volume/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM golang:1.24-alpine AS builder

WORKDIR /app
RUN apk add --no-cache git

COPY go.mod go.sum ./
COPY cmd ./cmd
RUN go mod tidy && CGO_ENABLED=0 GOOS=linux go build -o /app/harness ./cmd/script

FROM debian:bookworm-slim
WORKDIR /app
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/harness /app/harness
EXPOSE 2112
CMD ["/app/harness"]
Loading
Loading