One of the largest issues with the crypto imo is that the people building the apps and tools do not trade.

CEO
Ravn
@UniswapVillain
Mobula was the obvious choice for us when we needed an API provider for all things.
mobula
© 2025 Mobula. All rights reserved.
Back to top
How Ravn improved data completness by switching to Mobula
RAVN's signal quality depends entirely on early buyer lists. Every filter, every wallet label, every behavioral pattern is derived from knowing exactly who bought a token in its first minutes. A missing trade at launch doesn't create a small error it removes a wallet from the system entirely.
That wallet never gets labeled, never gets tracked across future launches, never feeds the pattern recognition loop.
When Tom's team cross-checked their early buyer lists against raw on-chain data, the gap was systematic.
@UniswapVillain placed 2nd in the BananaGun trading competition in 2023, turning 1 ETH into $300k+ in a single month. He teamed up with @degenbuddha to automate their internal trading process, spending 15 months building filters, wallet labels, and behavioral pattern detection across 300+ tokens per day. RAVN is that system, packaged for other traders. It has been running profitably for 17 months. (source)
Trades routed through Phoenix, Lifinity, and multi-hop aggregators like Jupiter were absent from their provider's dataset.
Entire categories of early activity snipers, MEV bundles, aggregator routes weren't being indexed.
The root cause: most blockchain indexers cover 1-2 major DEXs per chain.
On Solana in particular, where trading is fragmented across dozens of venues and aggregators, that architectural choice creates a structural blind spot from the first block of every launch.

Competitive Analysis
To quantify the gap, we tested Mobula, Moralis, Bitquery, and Codex on 8 tokens across Solana, Ethereum, BSC, and Base using 10-minute windows. The metric: unique transaction hashes not total trade count, which varies depending on how each provider handles multi-leg swaps.
Transaction Analytics
Solana is the critical chain. The fragmentation is structural: traders route through aggregators like Jupiter
that bundle swaps across multiple DEXs simultaneously.
On EVM chains, most volume flows through Uniswap or PancakeSwap directly every provider indexes those reliably.
Beyond coverage, each provider has a structural limitation that matters in production:
| Provider | Solana coverage | EVM coverage | Critical limitation |
|---|---|---|---|
| Mobula | Reference | Complete | None |
| Bitquery | -11 to -13% | Perfect | 10k trades hard cap, no pagination |
| Codex | -22 to -25% | Perfect | 10 trades/page (60s for 296 TX) |
| Moralis | -48 to -57% | Good | Not viable on Solana |
Bitquery is fastest but truncates silently above 10,000 trades. Codex pagination at 10 results per page makes
it unusable at volume. Mobula has no artificial cap.
Full benchmark code (independently testable): github.com/Flotapponnier/token-trade-benchmark-
What sets Mobula Apart
RAVN's requirement is simple: every trade on a token, from minute one, across every DEX.
Mobula's /api/2/trades/filters endpoint is built for exactly this batch retrieval with cursor-based pagination,
no hard limits.
GET /api/2/trades/filters?blockchain=solana&tokenAddress=<TOKEN_ADDRESS>&from=<LAUNCH_TIMESTAMP>&to=<LAUNCH_TIMESTAMP + 3600000>&limit=5000
Trade Returns
| Field | Usage |
|---|---|
| swapSenderAddress | Early buyer wallet identification |
| type: "buy" / "sell" | Isolates buyers from sellers |
| operation: "regular" / "mev" | MEV detection from block one |
| labels: ["sniper", "bundler", "insider"] | Mobula's native wallet classification |
| platform: { name } | DEX-level routing visibility |
| baseTokenPriceUSD | Exact entry price at trade time |
| mevFeesUSD | Conviction buy vs extraction signal |
| pagination.nextCursor | Gapless pagination across large datasets |
Beyond the endpoint, Mobula's architecture is relevant: stream-based by default,
no cache on any tier, 50+ chains through a single unified API.
When edge cases surface in production, the team responds directly with a technical fix, not a support ticket.
Conclusion
A 57% coverage gap on Solana is not a data quality issue it's a labeling system that operates on half the market.
The missing wallets don't get recovered downstream. The filters built on incomplete early buyer lists don't self-correct.
The errors compound across every launch.
For RAVN, switching to Mobula resolved the blind spot at the source.
Every trade, every DEX, from the first block. That's the only level of completeness a system like this can be built on.
RAVN's signal quality depends entirely on early buyer lists. Every filter, every wallet label, every behavioral pattern is derived from knowing exactly who bought a token in its first minutes. A missing trade at launch doesn't create a small error it removes a wallet from the system entirely.
That wallet never gets labeled, never gets tracked across future launches, never feeds the pattern recognition loop.
When Tom's team cross-checked their early buyer lists against raw on-chain data, the gap was systematic.
@UniswapVillain placed 2nd in the BananaGun trading competition in 2023, turning 1 ETH into $300k+ in a single month. He teamed up with @degenbuddha to automate their internal trading process, spending 15 months building filters, wallet labels, and behavioral pattern detection across 300+ tokens per day. RAVN is that system, packaged for other traders. It has been running profitably for 17 months. (source)
Trades routed through Phoenix, Lifinity, and multi-hop aggregators like Jupiter were absent from their provider's dataset.
Entire categories of early activity snipers, MEV bundles, aggregator routes weren't being indexed.
The root cause: most blockchain indexers cover 1-2 major DEXs per chain.
On Solana in particular, where trading is fragmented across dozens of venues and aggregators, that architectural choice creates a structural blind spot from the first block of every launch.

Competitive Analysis
To quantify the gap, we tested Mobula, Moralis, Bitquery, and Codex on 8 tokens across Solana, Ethereum, BSC, and Base using 10-minute windows. The metric: unique transaction hashes not total trade count, which varies depending on how each provider handles multi-leg swaps.
Transaction Analytics
Solana is the critical chain. The fragmentation is structural: traders route through aggregators like Jupiter
that bundle swaps across multiple DEXs simultaneously.
On EVM chains, most volume flows through Uniswap or PancakeSwap directly every provider indexes those reliably.
Beyond coverage, each provider has a structural limitation that matters in production:
| Provider | Solana coverage | EVM coverage | Critical limitation |
|---|---|---|---|
| Mobula | Reference | Complete | None |
| Bitquery | -11 to -13% | Perfect | 10k trades hard cap, no pagination |
| Codex | -22 to -25% | Perfect | 10 trades/page (60s for 296 TX) |
| Moralis | -48 to -57% | Good | Not viable on Solana |
Bitquery is fastest but truncates silently above 10,000 trades. Codex pagination at 10 results per page makes
it unusable at volume. Mobula has no artificial cap.
Full benchmark code (independently testable): github.com/Flotapponnier/token-trade-benchmark-
What sets Mobula Apart
RAVN's requirement is simple: every trade on a token, from minute one, across every DEX.
Mobula's /api/2/trades/filters endpoint is built for exactly this batch retrieval with cursor-based pagination,
no hard limits.
GET /api/2/trades/filters?blockchain=solana&tokenAddress=<TOKEN_ADDRESS>&from=<LAUNCH_TIMESTAMP>&to=<LAUNCH_TIMESTAMP + 3600000>&limit=5000
Trade Returns
| Field | Usage |
|---|---|
| swapSenderAddress | Early buyer wallet identification |
| type: "buy" / "sell" | Isolates buyers from sellers |
| operation: "regular" / "mev" | MEV detection from block one |
| labels: ["sniper", "bundler", "insider"] | Mobula's native wallet classification |
| platform: { name } | DEX-level routing visibility |
| baseTokenPriceUSD | Exact entry price at trade time |
| mevFeesUSD | Conviction buy vs extraction signal |
| pagination.nextCursor | Gapless pagination across large datasets |
Beyond the endpoint, Mobula's architecture is relevant: stream-based by default,
no cache on any tier, 50+ chains through a single unified API.
When edge cases surface in production, the team responds directly with a technical fix, not a support ticket.
Conclusion
A 57% coverage gap on Solana is not a data quality issue it's a labeling system that operates on half the market.
The missing wallets don't get recovered downstream. The filters built on incomplete early buyer lists don't self-correct.
The errors compound across every launch.
For RAVN, switching to Mobula resolved the blind spot at the source.
Every trade, every DEX, from the first block. That's the only level of completeness a system like this can be built on.
How Ravn improved data completness by switching to Mobula
How Ravn improved data completness by switching to Mobula

@UniswapVillain placed 2nd in the BananaGun trading competition in 2023, turning 1 ETH into $300k+ in a single month. He teamed up with @degenbuddha to automate their internal trading process, spending 15 months building filters, wallet labels, and behavioral pattern detection across 300+ tokens per day. RAVN is that system, packaged for other traders. It has been running profitably for 17 months. (source)
RAVN's signal quality depends entirely on early buyer lists. Every filter, every wallet label, every behavioral pattern is derived from knowing exactly who bought a token in its first minutes. A missing trade at launch doesn't create a small error it removes a wallet from the system entirely.
That wallet never gets labeled, never gets tracked across future launches, never feeds the pattern recognition loop.
When Tom's team cross-checked their early buyer lists against raw on-chain data, the gap was systematic.
Trades routed through Phoenix, Lifinity, and multi-hop aggregators like Jupiter were absent from their provider's dataset.
Entire categories of early activity snipers, MEV bundles, aggregator routes weren't being indexed.
The root cause: most blockchain indexers cover 1-2 major DEXs per chain.
On Solana in particular, where trading is fragmented across dozens of venues and aggregators, that architectural choice creates a structural blind spot from the first block of every launch.
Competitive Analysis
To quantify the gap, we tested Mobula, Moralis, Bitquery, and Codex on 8 tokens across Solana, Ethereum, BSC, and Base using 10-minute windows. The metric: unique transaction hashes not total trade count, which varies depending on how each provider handles multi-leg swaps.
Transaction Analytics
Solana is the critical chain. The fragmentation is structural: traders route through aggregators like Jupiter
that bundle swaps across multiple DEXs simultaneously.
On EVM chains, most volume flows through Uniswap or PancakeSwap directly every provider indexes those reliably.
Beyond coverage, each provider has a structural limitation that matters in production:
Bitquery is fastest but truncates silently above 10,000 trades. Codex pagination at 10 results per page makes
it unusable at volume. Mobula has no artificial cap.
Full benchmark code (independently testable): github.com/Flotapponnier/token-trade-benchmark-
| Provider | Solana coverage | EVM coverage | Critical limitation |
|---|---|---|---|
| Mobula | Reference | Complete | None |
| Bitquery | -11 to -13% | Perfect | 10k trades hard cap, no pagination |
| Codex | -22 to -25% | Perfect | 10 trades/page (60s for 296 TX) |
| Moralis | -48 to -57% | Good | Not viable on Solana |
What sets Mobula Apart
RAVN's requirement is simple: every trade on a token, from minute one, across every DEX.
Mobula's /api/2/trades/filters endpoint is built for exactly this batch retrieval with cursor-based pagination,
no hard limits.
GET /api/2/trades/filters?blockchain=solana&tokenAddress=<TOKEN_ADDRESS>&from=<LAUNCH_TIMESTAMP>&to=<LAUNCH_TIMESTAMP + 3600000>&limit=5000
Trade Returns
| Field | Usage |
|---|---|
| swapSenderAddress | Early buyer wallet identification |
| type: "buy" / "sell" | Isolates buyers from sellers |
| operation: "regular" / "mev" | MEV detection from block one |
| labels: ["sniper", "bundler", "insider"] | Mobula's native wallet classification |
| platform: { name } | DEX-level routing visibility |
| baseTokenPriceUSD | Exact entry price at trade time |
| mevFeesUSD | Conviction buy vs extraction signal |
| pagination.nextCursor | Gapless pagination across large datasets |
Beyond the endpoint, Mobula's architecture is relevant: stream-based by default,
no cache on any tier, 50+ chains through a single unified API.
When edge cases surface in production, the team responds directly with a technical fix, not a support ticket.
Conclusion
A 57% coverage gap on Solana is not a data quality issue it's a labeling system that operates on half the market.
The missing wallets don't get recovered downstream. The filters built on incomplete early buyer lists don't self-correct.
The errors compound across every launch.
For RAVN, switching to Mobula resolved the blind spot at the source.
Every trade, every DEX, from the first block. That's the only level of completeness a system like this can be built on.
4157A1
4157A1
