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

ProviderPlanMangrove route prefixCoverage
NansenPro/on-chain/* + /crypto-assets/{token-holders,flow-intelligence,smart-money/*}Smart-money, Token God Mode (incl. hourly tgm/flows series), + /v1beta1 backtesting family
WhaleAlertDeveloper/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
DeFiLlamaAPI tier/defi/*TVL/chain/stablecoins (any plan) + Pro: token unlocks, perp funding, treasuries, ETF flows, lending rates (Pro/Startup/Enterprise, capped 1k/mo)
CoinAPIStartup/crypto-assets/{ohlcv,market-data,symbols,exchanges}partial — OHLCV + market data
CoinGeckoAnalyst/crypto-assets/{trending,global-market,market-data}partial — discovery + macro
KrakenPublic REST/crypto-assets/ohlcv?provider=krakenOHLCV fallback
Coinbase CDP / x402Standard/api/v402/*x402 payment-gated micro-payments (stablecoin)
For an architectural deep-dive on per-route provider mappings, see the billable endpoints reference and the on-chain endpoint catalog below.

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 through client.on_chain and client.crypto_assets.
CapabilityMangrove routeSDK method
Smart-money sentiment (single token)GET /on-chain/smart-money/sentimentclient.on_chain.get_smart_money_sentiment(symbol)
Smart-money token screenerGET /on-chain/smart-money/screenclient.on_chain.screen_smart_money(chains, timeframe)
Smart-money historical holdingsPOST /on-chain/smart-money/historical-holdingsclient.on_chain.get_smart_money_historical_holdings(...)
Smart-money DEX tradesPOST /on-chain/smart-money/dex-tradesclient.on_chain.get_smart_money_dex_trades(...)
Smart-money perp trades (Hyperliquid)POST /on-chain/smart-money/perp-tradesclient.on_chain.get_smart_money_perp_trades(...)
Token holders + concentrationGET /on-chain/token-holders/{symbol}client.on_chain.get_token_holders(symbol)
Token DEX trades (all participants)POST /on-chain/token/{symbol}/dex-tradesclient.on_chain.get_token_dex_trades(symbol, ...)
Token flows (per-wallet-category)POST /on-chain/token/{symbol}/flowsclient.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)
Full passthrough of provider capability: all five POST endpoints above accept the same 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.
result = client.on_chain.get_smart_money_dex_trades(
    chains=["ethereum"],
    filters={"include_smart_money_labels": ["Fund"]},
    order_by=[{"field": "block_timestamp", "direction": "DESC"}],
    per_page=10,
)
On-chain time series. 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):
ColumnSourceDerivation
SmartMoneyNetflowtgm/flows label=smart_moneyΔ token_amount × price_usd (USD net flow)
SmartMoneyHoldingstgm/flows label=smart_moneyvalue_usd level
ExchangeNetflowtgm/flows label=exchangeΔ token_amount × price_usd (+ = into exchanges)
WhaleNetInflowtgm/flows label=whaleΔ token_amount × price_usd (+ = accumulation)
HolderConcentrationhistorical-top-holderssum of top-N ownership_percentage (0.0-1.0)
A total token-holder-count series is not available upstream (Nansen exposes per-category holder counts only), so holder-count signals are intentionally not shipped.

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 for ExchangeNetflow / WhaleNetInflow when the Nansen series is unavailable; Nansen tgm/flows is the primary (uncapped) source.
CapabilityMangrove routeSDK method
Whale transactions ($X+ threshold)GET /on-chain/whale-transactionsclient.on_chain.get_whale_transactions(...)
Exchange inflows/outflowsGET /on-chain/exchange-flowsclient.on_chain.get_exchange_flows(...)
Whale activity summaryGET /on-chain/whale-activity/{symbol}client.on_chain.get_whale_activity(symbol, ...)
WebSocket streaming for real-time alerts is on the upstream roadmap; we currently use REST polling and may move to streaming when customer demand warrants.

X (Twitter) — partial

Backed by X API v2 (Pro tier). We currently expose three derived surfaces.
CapabilityMangrove routeSDK method
Topic sentimentGET /social/sentiment/{topic}client.social.get_sentiment(topic, ...)
Topic mentionsGET /social/mentions/{topic}client.social.get_mentions(topic, ...)
User influence scoreGET /social/influence/{username}client.social.get_influence_score(username)
Full-archive search (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 gets 403 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.
CapabilityPlanMangrove routeSDK method
Protocol TVLanyGET /defi/protocol/{protocol}/tvlclient.defi.get_protocol_tvl(protocol)
Chain TVLanyGET /defi/chain/{chain}/tvlclient.defi.get_chain_tvl(chain)
Stablecoin metricsanyGET /defi/stablecoins/metricsclient.defi.get_stablecoin_metrics()
Token unlocksProGET /defi/token-unlocksclient.defi.get_token_unlocks()
Perp fundingProGET /defi/perp-fundingclient.defi.get_perp_funding()
TreasuriesProGET /defi/treasuriesclient.defi.get_treasuries()
ETF flowsProGET /defi/etf-flowsclient.defi.get_etf_flows()
Lending ratesProGET /defi/lending-ratesclient.defi.get_lending_borrow_rates()
Remaining Pro families (yields, options, hacks, raises, liquidity-depth, active-users) are on the roadmap.

CoinAPI + CoinGecko — price + market data

Two providers cover crypto-asset price and market data through client.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 see 429 Too Many Requests, it’s our limit — contact us if you need a higher ceiling.

Suggesting a new provider or endpoint

Open an issue on the MangroveAI-SDK repo describing the data you want to access. We track aggregate demand to prioritize the next provider integration.