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
140 changes: 97 additions & 43 deletions benchmarks/memecoin-platforms.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
# OpenChainBench. Bench 200
# OpenChainBench. Bench 200

slug: memecoin-platforms
number: "200"
title: Cheapest platform to trade memecoins (Fomo vs pump.fun vs Photon)
seo_title: "Fomo vs pump.fun trading fees 2026"
seo_description: "Compare trading fees on Fomo, pump.fun, Photon and Axiom. Real fee data from Mobula on the top Solana memecoins by market cap."
subtitle: Average total fee per trade (platform + gas + MEV) as a percent of trade value, sampled across the top 10 pump.fun tokens every 5 minutes.
category: Apps
subtitle: Average total fee per trade (platform fee plus gas plus MEV) as a percent of trade value, sampled across the top 10 pump.fun tokens every 5 minutes.
category: Trading
status: live
metric: Avg total fee
unit: pct

dimensions:
platform:
- { value: fomo, label: Fomo }
- { value: pump-fun, label: pump.fun }
- { value: photon, label: Photon }
- { value: axiom, label: Axiom }
source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/memecoin-platforms

seo_intro: |
Fomo and pump.fun both compete for Solana memecoin traders, but they charge
very differently. This benchmark measures the real all-in cost platform fee
plus gas plus any MEV on the top 10 pump.fun tokens by market cap, sampled
very differently. This benchmark measures the real all-in cost, platform fee
plus gas plus any MEV, on the top 10 pump.fun tokens by market cap, sampled
every 5 minutes via Mobula's enriched trades API. The headline number is total
fee as a percent of trade value, not the advertised fee rate. Aggregators like
Photon and Axiom route through the same pools but add their own markup; this
Expand All @@ -30,40 +25,99 @@ seo_intro: |
abstract: |
The harness fetches the top 10 tokens by market cap from pump.fun every 5
minutes, then pulls the last 200 trades per token from Mobula's
`/api/2/token/trades-enriched` endpoint (`chainId=solana:solana`). Each trade
carries a `platform` tag (fomo, pump-fun, photon, axiom, …) and three fee
fields: `platformFeesUSD`, `gasFeesUSD`, `mevFeesUSD`. We group by platform,
compute the average total fee (sum of all three) as a percent of `amountUSD`,
and emit `memecoin_platform_fee_pct`. The leaderboard sorts by the median of
that gauge over 24 hours.
token/trades-enriched endpoint (chainId=solana:solana). Each trade carries a
platform tag (fomo, pump-fun, photon, axiom, trojan, gmgn...) and three fee
fields: platformFeesUSD, gasFeesUSD, mevFeesUSD. We group by platform, compute
the average total fee as a percent of amountUSD, and emit
memecoin_platform_fee_pct. The leaderboard sorts by the median over 24 hours.

formula: avg(memecoin_platform_fee_pct) by (platform)
methodology:
- "Tokens: top 10 by market cap from pump.fun, refreshed every 5 minutes."
- "Trades: last 200 trades per token from Mobula token/trades-enriched (chainId=solana:solana)."
- "Cost: totalFeesUSD / amountUSD * 100, covering platform fee plus gas plus MEV."
- "Grouping: trades are split by the platform field returned by Mobula (fomo, pump-fun, photon, axiom, trojan, gmgn, maestro, phantom)."
- "Cadence: full sweep every 5 minutes; each poll covers the 200 most recent trades per token."
- "Aggregation: headline is the average of memecoin_platform_fee_pct across all tracked tokens over 24 hours."

leaderboard:
- id: fee_pct_by_platform
title: Average total fee % by platform
description: Mean fee across all sampled tokens (lower is better)
query: avg(avg_over_time(memecoin_platform_fee_pct[24h])) by (platform)
unit: pct
lower_is_better: true
findings:
- "{{best_name}} currently leads with the lowest average trading fee at {{best_p50}} (p50, 24h) across top pump.fun tokens."
- "{{worst_name}} has the highest average fee at {{worst_p50}} (p50, 24h). Trading bots charge a fixed tip on top of DEX fees, which dominates at small trade sizes."

- id: platform_fee_usd
title: Average platform fee (USD)
description: Explicit protocol fee, excluding gas
query: avg(avg_over_time(memecoin_platform_fee_usd[24h])) by (platform)
unit: usd
lower_is_better: true
faq:
- q: "Is Fomo cheaper than pump.fun?"
a: "{{best_name}} currently leads at {{best_p50}} (p50, 24h). The live leaderboard refreshes every 5 minutes from Mobula trade data."
- q: "What fees do memecoin trading platforms charge?"
a: "Native clients (pump.fun) charge a protocol fee on each swap. Aggregator frontends (Photon, Axiom) add a referral tip on top. Trading bots (Trojan, Maestro, GMGN) charge a fixed percentage per trade. Gas is a separate Solana transaction fee. This benchmark combines all three into a single all-in percent."
- q: "Does MEV affect Solana memecoin trading?"
a: "Minimally at this scale. Solana's parallel execution and fast finality reduce MEV extraction compared to EVM chains. The mevFeesUSD field in Mobula's data is near zero for most trades on these tokens."

- id: gas_usd
title: Average gas fee (USD)
description: Solana transaction fee per trade
query: avg(avg_over_time(memecoin_platform_gas_usd[24h])) by (platform)
unit: usd
lower_is_better: true
prometheus:
window: 24h
expected_freshness_seconds: 900

- id: trade_volume
title: Trade samples (24h)
description: Number of trades analyzed per platform
query: sum(avg_over_time(memecoin_platform_trade_count[24h])) by (platform)
unit: count
lower_is_better: false
providers:
- slug: fomo
name: Fomo
tag: Mobile app
formula: "Average total fee percent across top pump.fun tokens traded via Fomo, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="fomo"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="fomo"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="fomo"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="fomo"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="fomo"}[24h]))

- slug: pump-fun
name: pump.fun
tag: Native launchpad
formula: "Average total fee percent across top pump.fun tokens traded via the pump.fun native interface, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="pump-fun"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="pump-fun"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="pump-fun"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="pump-fun"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="pump-fun"}[24h]))

- slug: photon
name: Photon
tag: Aggregator frontend
formula: "Average total fee percent across top pump.fun tokens traded via Photon, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="photon"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="photon"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="photon"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="photon"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="photon"}[24h]))

- slug: axiom
name: Axiom
tag: Aggregator frontend
formula: "Average total fee percent across top pump.fun tokens traded via Axiom, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="axiom"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="axiom"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="axiom"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="axiom"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="axiom"}[24h]))

- slug: trojan
name: Trojan
tag: Trading bot
formula: "Average total fee percent across top pump.fun tokens traded via Trojan bot, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="trojan"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="trojan"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="trojan"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="trojan"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="trojan"}[24h]))

- slug: gmgn
name: GMGN
tag: Trading bot
formula: "Average total fee percent across top pump.fun tokens traded via GMGN, 24h median."
queries:
p50: quantile_over_time(0.50, avg(memecoin_platform_fee_pct{platform="gmgn"})[24h:5m])
p90: quantile_over_time(0.90, avg(memecoin_platform_fee_pct{platform="gmgn"})[24h:5m])
p99: quantile_over_time(0.99, avg(memecoin_platform_fee_pct{platform="gmgn"})[24h:5m])
mean: avg_over_time(avg(memecoin_platform_fee_pct{platform="gmgn"})[24h:5m])
sample_size: sum(avg_over_time(memecoin_platform_trade_count{platform="gmgn"}[24h]))
Loading
Loading