Data Providers
A Mangrove subscription gives you unified access to data from multiple paid third-party providers behind a single API key, one SDK, one rate-limit ceiling, and one bill. This page lists the providers we resell, the surface we expose today, and what each provider contributes. We surface coverage honestly. Where we expose 100% of a provider’s plan, we say so. Where coverage is still partial, the page lists what is and isn’t available — so you can decide whether to use Mangrove for that surface or subscribe to the upstream provider directly.Coverage at a glance
| Provider | Plan | Mangrove route prefix | Coverage |
|---|---|---|---|
| Nansen | Pro | /on-chain/* + /crypto-assets/{token-holders,flow-intelligence,smart-money/*} | Smart-money, Token God Mode (incl. hourly tgm/flows series), + /v1beta1 backtesting family |
| WhaleAlert | Developer | /on-chain/{whale-transactions,exchange-flows,whale-activity} | Full Developer surface; 30-day history cap, ~10 req/min |
| X (Twitter) | Pro v2 | /social/* | partial — sentiment, mentions, influence |
| DeFiLlama | API tier | /defi/* | TVL/chain/stablecoins (any plan) + Pro: token unlocks, perp funding, treasuries, ETF flows, lending rates (Pro/Startup/Enterprise, capped 1k/mo) |
| CoinAPI | Startup | /crypto-assets/{ohlcv,market-data,symbols,exchanges} | partial — OHLCV + market data |
| CoinGecko | Analyst | /crypto-assets/{trending,global-market,market-data} | partial — discovery + macro |
| Kraken | Public REST | /crypto-assets/ohlcv?provider=kraken | OHLCV fallback |
| Coinbase CDP / x402 | Standard | /api/v402/* | x402 payment-gated micro-payments (stablecoin) |
Nansen — 100% Pro plan coverage
Nansen is the institutional standard for smart-money tracking, wallet labelling, and token-level on-chain flow intelligence. Our coverage on the Pro plan is complete: every endpoint family Mangrove pays for is exposed throughclient.on_chain and client.crypto_assets.
| Capability | Mangrove route | SDK method |
|---|---|---|
| Smart-money sentiment (single token) | GET /on-chain/smart-money/sentiment | client.on_chain.get_smart_money_sentiment(symbol) |
| Smart-money token screener | GET /on-chain/smart-money/screen | client.on_chain.screen_smart_money(chains, timeframe) |
| Smart-money historical holdings | POST /on-chain/smart-money/historical-holdings | client.on_chain.get_smart_money_historical_holdings(...) |
| Smart-money DEX trades | POST /on-chain/smart-money/dex-trades | client.on_chain.get_smart_money_dex_trades(...) |
| Smart-money perp trades (Hyperliquid) | POST /on-chain/smart-money/perp-trades | client.on_chain.get_smart_money_perp_trades(...) |
| Token holders + concentration | GET /on-chain/token-holders/{symbol} | client.on_chain.get_token_holders(symbol) |
| Token DEX trades (all participants) | POST /on-chain/token/{symbol}/dex-trades | client.on_chain.get_token_dex_trades(symbol, ...) |
| Token flows (per-wallet-category) | POST /on-chain/token/{symbol}/flows | client.on_chain.get_token_flows(symbol, ...) |
| Flow intelligence (single token) | GET /crypto-assets/flow-intelligence/{symbol} | (via crypto_assets) |
| Smart-money netflows (cross-token) | GET /crypto-assets/smart-money/netflows | (via crypto_assets) |
| Smart-money holdings (cross-token) | GET /crypto-assets/smart-money/holdings | (via crypto_assets) |
filters and order_by shapes Nansen’s own API accepts. You can restrict smart-money DEX trades to Fund-labelled wallets, bound value_usd min/max, sort by any supported field, etc.
tgm/flows returns an hourly per-wallet-category series for a token
over any date range, scoped by a top-level label (smart_money, exchange, whale,
public_figure, top_100_holders). The same call serves a live trailing window (e.g. the last
10 days, ending now) or a long historical range — it is just a different start. For
point-in-time historical state there is also a /v1beta1 backtesting family
(historical-top-holders, historical-token-flow-summary, historical-token-balances, …).
Not in our Pro plan (return 404 if called directly against the upstream): Wallet Profiler,
Chain Analytics, NFT collection analytics, Hot Contracts. Contact us if any of these are critical.
On-chain signal columns
The KB On-Chain signals consume per-bar columns the caller supplies on the DataFrame, time-aligned to OHLCV bars (the MangroveAI data layer derives them from the series above):| Column | Source | Derivation |
|---|---|---|
SmartMoneyNetflow | tgm/flows label=smart_money | Δ token_amount × price_usd (USD net flow) |
SmartMoneyHoldings | tgm/flows label=smart_money | value_usd level |
ExchangeNetflow | tgm/flows label=exchange | Δ token_amount × price_usd (+ = into exchanges) |
WhaleNetInflow | tgm/flows label=whale | Δ token_amount × price_usd (+ = accumulation) |
HolderConcentration | historical-top-holders | sum of top-N ownership_percentage (0.0-1.0) |
WhaleAlert — Developer tier (fallback source)
WhaleAlert’s REST surface is small by design: transactions and status. We are on the Developer tier (not Enterprise), which caps transaction history at 30 days and ~10 req/min. It is used as a fallback / cross-check forExchangeNetflow / WhaleNetInflow when the Nansen series is
unavailable; Nansen tgm/flows is the primary (uncapped) source.
| Capability | Mangrove route | SDK method |
|---|---|---|
| Whale transactions ($X+ threshold) | GET /on-chain/whale-transactions | client.on_chain.get_whale_transactions(...) |
| Exchange inflows/outflows | GET /on-chain/exchange-flows | client.on_chain.get_exchange_flows(...) |
| Whale activity summary | GET /on-chain/whale-activity/{symbol} | client.on_chain.get_whale_activity(symbol, ...) |
X (Twitter) — partial
Backed by X API v2 (Pro tier). We currently expose three derived surfaces.| Capability | Mangrove route | SDK method |
|---|---|---|
| Topic sentiment | GET /social/sentiment/{topic} | client.social.get_sentiment(topic, ...) |
| Topic mentions | GET /social/mentions/{topic} | client.social.get_mentions(topic, ...) |
| User influence score | GET /social/influence/{username} | client.social.get_influence_score(username) |
tweets/search/all) is available at our tier but not yet exposed as a dedicated route. Open an issue or contact us if it would unblock a use case.
DeFiLlama
Eight endpoints from the DeFiLlama API tier. The three TVL/stablecoin routes are available on any plan. The five Pro routes (token unlocks, perp funding, treasuries, ETF flows, lending rates) require a Pro, Startup, or Enterprise plan — an unentitled plan gets403 TIER_UPGRADE_REQUIRED — and share a
1,000 calls/account/month budget (429 quota_exceeded past the cap). Agents
paying per call via x402 are not subscription-gated.
| Capability | Plan | Mangrove route | SDK method |
|---|---|---|---|
| Protocol TVL | any | GET /defi/protocol/{protocol}/tvl | client.defi.get_protocol_tvl(protocol) |
| Chain TVL | any | GET /defi/chain/{chain}/tvl | client.defi.get_chain_tvl(chain) |
| Stablecoin metrics | any | GET /defi/stablecoins/metrics | client.defi.get_stablecoin_metrics() |
| Token unlocks | Pro | GET /defi/token-unlocks | client.defi.get_token_unlocks() |
| Perp funding | Pro | GET /defi/perp-funding | client.defi.get_perp_funding() |
| Treasuries | Pro | GET /defi/treasuries | client.defi.get_treasuries() |
| ETF flows | Pro | GET /defi/etf-flows | client.defi.get_etf_flows() |
| Lending rates | Pro | GET /defi/lending-rates | client.defi.get_lending_borrow_rates() |
CoinAPI + CoinGecko — price + market data
Two providers cover crypto-asset price and market data throughclient.crypto_assets. The provider for OHLCV is configurable per request via ?provider= (default: CoinAPI; fallback: Kraken public).
See the crypto-assets API reference for the full list.
Provider rate limits
Mangrove enforces per-customer rate limits at our edge; upstream limits are absorbed transparently. If you see429 Too Many Requests, it’s our limit — contact us if you need a higher ceiling.