MCP Server

Basis Protocol

io.github.basis-protocol/basis

What this MCP does

Provides attested risk scores and analytics for stablecoins, DeFi protocols, wallets, exchanges, liquidity, yields, governance, incidents, and cross-chain capital flows.

basis_answer
Ask the Basis Agent a question about attested risk state. Answers come ONLY from attested substrate state, cited to attestation hashes; queries the substrate cannot ground are refused (identical envelope, refusals, and receipts as the REST transport — the agent never recommends positions, never forecasts, never executes). Every call is logged as an attributed protocol read. Identity: pass your hub API key on the /mcp HTTP request (``x-api-key`` header or ``?apikey=`` query param) so reads are attributed to your service; keyless calls are attributed by IP. Multi-turn: the returned envelope carries ``session_id`` — pass it back as the ``session_id`` argument on your next call to hold a session (follow-ups like "and its liquidity?" then inherit the session's entity). An ``X-Basis-Session`` header on the /mcp request works too; the explicit argument wins. Omit both and each call is a fresh single-turn session. Parameters: query: The question (max 4000 chars). session_id: Session UUID from a previous basis_answer envelope (optional — enables multi-turn follow-ups).
Input schema
{'type': 'object', 'title': 'basis_answerArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'session_id': {'type': 'string', 'title': 'Session Id', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_answerOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_bridge_flows
Directional bridge volume per chain pair. Shows where capital is flowing: "$50M Ethereum → Arbitrum, $12M back." Use to assess cross-chain liquidity routing and chain health. Parameters: bridge_id: Specific bridge ID (optional). Omit for aggregate flows.
Input schema
{'type': 'object', 'title': 'basis_bridge_flowsArguments', 'properties': {'bridge_id': {'type': 'string', 'title': 'Bridge Id', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_bridge_flowsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_correlation
Cross-entity correlation matrix. Shows which assets move together. When USDC depegs, which protocols lose TVL in sync? Use for portfolio construction and systemic risk assessment. Parameters: matrix_type: "sii_30d", "sii_90d", or "cross_90d"
Input schema
{'type': 'object', 'title': 'basis_correlationArguments', 'properties': {'matrix_type': {'type': 'string', 'title': 'Matrix Type', 'default': 'sii_30d'}}}
Output schema
{'type': 'object', 'title': 'basis_correlationOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_data_catalog
Every data type available in the universal data layer. Returns per data type: description, freshness, history depth, update frequency, provenance status, row count. Use to discover what data is available for building custom risk indices.
Input schema
{'type': 'object', 'title': 'basis_data_catalogArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'basis_data_catalogOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_exchange_health
Exchange trust score, volume, and reserve status. Returns CoinGecko trust scores, 24h volume, year established, and stablecoin-specific trading pair data for top exchanges. Parameters: exchange_id: CoinGecko exchange ID (e.g. "binance", "coinbase-exchange"). Omit for all.
Input schema
{'type': 'object', 'title': 'basis_exchange_healthArguments', 'properties': {'exchange_id': {'type': 'string', 'title': 'Exchange Id', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_exchange_healthOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_governance_activity
Governance proposal counts, voter participation, and pass rates. Returns full proposal history with vote counts, quorum status, and voter concentration data. Use to assess DAO health and governance quality. Parameters: protocol: Protocol name (e.g. "aavedao", "comp-vote", "lido-snapshot") days: Lookback period in days (default 90)
Input schema
{'type': 'object', 'title': 'basis_governance_activityArguments', 'required': ['protocol'], 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 90}, 'protocol': {'type': 'string', 'title': 'Protocol'}}}
Output schema
{'type': 'object', 'title': 'basis_governance_activityOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_incidents
Structured event history: exploits, depegs, oracle failures. Returns timeline of incidents with severity, affected entities, and resolution status. Use for due diligence and insurance risk assessment. Parameters: entity_id: Entity ID to filter by (optional). Omit for all recent incidents.
Input schema
{'type': 'object', 'title': 'basis_incidentsArguments', 'properties': {'entity_id': {'type': 'string', 'title': 'Entity Id', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_incidentsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_liquidity_depth
Per-asset, per-venue liquidity profile for any stablecoin. Returns DEX pool depth (Uniswap, Curve, etc.) and CEX ticker data (Binance, Coinbase, etc.) with bid/ask depth, spread, volume, and trade counts. Use before any large stablecoin transaction to check venue liquidity. Parameters: asset_id: Stablecoin ID (e.g. "usdc", "usdt", "dai")
Input schema
{'type': 'object', 'title': 'basis_liquidity_depthArguments', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'title': 'Asset Id'}}}
Output schema
{'type': 'object', 'title': 'basis_liquidity_depthOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_peg_monitor
5-minute peg resolution data for micro-depeg detection. Returns 5-minute price snapshots and deviation from $1.00. Catches micro-depegs that are invisible at hourly resolution. Early warning signal for peg instability. Parameters: stablecoin_id: Stablecoin ID (e.g. "usdc", "usdt") hours: Lookback period in hours (default 24)
Input schema
{'type': 'object', 'title': 'basis_peg_monitorArguments', 'required': ['stablecoin_id'], 'properties': {'hours': {'type': 'integer', 'title': 'Hours', 'default': 24}, 'stablecoin_id': {'type': 'string', 'title': 'Stablecoin Id'}}}
Output schema
{'type': 'object', 'title': 'basis_peg_monitorOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_venue_shift
Venue-shift findings: an operator's proposed venue markets overlapped against the markets its vaults currently allocate to. Each finding cites the proposal capture hash and the allocation-snapshot attestation it was computed from. Omit operator_slug to list all findings, sorted by share of venue supply.
Input schema
{'type': 'object', 'title': 'basis_venue_shiftArguments', 'properties': {'operator_slug': {'type': 'string', 'title': 'Operator Slug', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_venue_shiftOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_volatility
Realized volatility, drawdown, and recovery time for any asset. Returns 1d/7d/30d/90d realized vol, max drawdown, and correlation with BTC/ETH. Use for risk-adjusted position sizing. Parameters: asset_id: Asset ID (e.g. "usdc", "usdt")
Input schema
{'type': 'object', 'title': 'basis_volatilityArguments', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'title': 'Asset Id'}}}
Output schema
{'type': 'object', 'title': 'basis_volatilityOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
basis_yield_data
Pool-level yield, TVL, and utilization for any DeFi protocol. Returns APY, base APY, reward APY, TVL, and pool metadata for all tracked lending/vault pools. Use to evaluate yield sustainability and protocol health. Parameters: protocol: Protocol slug (e.g. "aave-v3", "compound-v3"). Omit for all protocols.
Input schema
{'type': 'object', 'title': 'basis_yield_dataArguments', 'properties': {'protocol': {'type': 'string', 'title': 'Protocol', 'default': None}}}
Output schema
{'type': 'object', 'title': 'basis_yield_dataOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
check_transaction_risk
Composite risk assessment for a stablecoin transaction — evaluates asset, sender, and receiver.
Input schema
{'type': 'object', 'title': 'check_transaction_riskArguments', 'required': ['from_address', 'to_address', 'asset_symbol'], 'properties': {'to_address': {'type': 'string', 'title': 'To Address'}, 'asset_symbol': {'type': 'string', 'title': 'Asset Symbol'}, 'from_address': {'type': 'string', 'title': 'From Address'}}}
Output schema
{'type': 'object', 'title': 'check_transaction_riskOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_divergence_signals
Check for divergence signals before executing transactions. Detects capital-flow / quality mismatches: - Asset quality: stablecoin score declining while capital flows in - Wallet concentration: HHI rising while wallet value grows - Quality-flow: score declining with net inflows from wallet graph Call this BEFORE executing any stablecoin swap, deposit, or rebalance to check if capital is flowing toward deteriorating assets.
Input schema
{'type': 'object', 'title': 'get_divergence_signalsArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_divergence_signalsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_methodology
Returns the current SII formula, category weights, score scale, and version information.
Input schema
{'type': 'object', 'title': 'get_methodologyArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_methodologyOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_riskiest_wallets
Wallets with the most capital at risk — lowest risk scores weighted by total value.
Input schema
{'type': 'object', 'title': 'get_riskiest_walletsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}}}
Output schema
{'type': 'object', 'title': 'get_riskiest_walletsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_scoring_backlog
Unscored stablecoin assets ranked by total capital exposure across all indexed wallets.
Input schema
{'type': 'object', 'title': 'get_scoring_backlogArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}}}
Output schema
{'type': 'object', 'title': 'get_scoring_backlogOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_stablecoin_detail
Full score breakdown for a specific stablecoin including category scores and methodology version.
Input schema
{'type': 'object', 'title': 'get_stablecoin_detailArguments', 'required': ['coin'], 'properties': {'coin': {'type': 'string', 'title': 'Coin'}}}
Output schema
{'type': 'object', 'title': 'get_stablecoin_detailOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_stablecoin_scores
Get current SII scores for all scored stablecoins. Use before any decision involving stablecoins.
Input schema
{'type': 'object', 'title': 'get_stablecoin_scoresArguments', 'properties': {'sort_by': {'type': 'string', 'title': 'Sort By', 'default': 'score_desc'}}}
Output schema
{'type': 'object', 'title': 'get_stablecoin_scoresOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_treasury_events
Get recent behavioral events from labeled treasury wallets. Detects: TWAP conversions, protocol rebalancing, concentration drift, quality shifts, and large transfers (>$1M) from known treasury wallets. Parameters: wallet_address: Filter to a specific wallet (optional) event_type: Filter by type: twap_conversion, rebalance, concentration_drift, quality_shift, large_transfer days: Lookback period in days (default 30)
Input schema
{'type': 'object', 'title': 'get_treasury_eventsArguments', 'properties': {'days': {'type': 'integer', 'title': 'Days', 'default': 30}, 'event_type': {'type': 'string', 'title': 'Event Type', 'default': None}, 'wallet_address': {'type': 'string', 'title': 'Wallet Address', 'default': None}}}
Output schema
{'type': 'object', 'title': 'get_treasury_eventsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_wallet_holdings
Detailed holdings breakdown for an Ethereum wallet with per-asset SII scores.
Input schema
{'type': 'object', 'title': 'get_wallet_holdingsArguments', 'required': ['address'], 'properties': {'address': {'type': 'string', 'title': 'Address'}}}
Output schema
{'type': 'object', 'title': 'get_wallet_holdingsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_wallet_risk
Get risk profile for a specific Ethereum wallet — composite risk score, concentration, coverage quality.
Input schema
{'type': 'object', 'title': 'get_wallet_riskArguments', 'required': ['address'], 'properties': {'address': {'type': 'string', 'title': 'Address'}}}
Output schema
{'type': 'object', 'title': 'get_wallet_riskOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
query_template
Run a pre-built query template against the Basis risk database. Available templates: - high_risk_whales: Wallets with high value AND poor risk scores - contagion_hotspots: Wallets with the most counterparty connections - stablecoin_concentration: Per-stablecoin holder concentration - score_movers: Assets whose SII score changed most over N days - disclosure_gaps: Issuers with the oldest attestation documents - cross_chain_exposure: Wallets active on multiple chains Call GET /api/query/templates for full parameter documentation.
Input schema
{'type': 'object', 'title': 'query_templateArguments', 'required': ['template_name'], 'properties': {'params': {'type': 'object', 'title': 'Params', 'default': None, 'additionalProperties': True}, 'template_name': {'type': 'string', 'title': 'Template Name'}}}
Output schema
{'type': 'object', 'title': 'query_templateOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Added
basis_venue_shift
Oct. 2, 2026, 2:40 a.m.
Added
basis_answer
Sept. 30, 2026, 2:40 a.m.
Added
basis_data_catalog
Sept. 30, 2026, 2:40 a.m.
Added
basis_peg_monitor
Sept. 30, 2026, 2:40 a.m.
Added
basis_incidents
Sept. 30, 2026, 2:40 a.m.
Added
basis_volatility
Sept. 30, 2026, 2:40 a.m.
Added
basis_correlation
Sept. 30, 2026, 2:40 a.m.
Added
basis_exchange_health
Sept. 30, 2026, 2:40 a.m.
Added
basis_bridge_flows
Sept. 30, 2026, 2:40 a.m.
Added
basis_governance_activity
Sept. 30, 2026, 2:40 a.m.
Added
basis_yield_data
Sept. 30, 2026, 2:40 a.m.
Added
basis_liquidity_depth
Sept. 30, 2026, 2:40 a.m.
Added
get_treasury_events
Sept. 30, 2026, 2:40 a.m.
Added
query_template
Sept. 30, 2026, 2:40 a.m.
Added
get_divergence_signals
Sept. 30, 2026, 2:40 a.m.
Added
get_methodology
Sept. 30, 2026, 2:40 a.m.
Added
check_transaction_risk
Sept. 30, 2026, 2:40 a.m.
Added
get_scoring_backlog
Sept. 30, 2026, 2:40 a.m.
Added
get_riskiest_wallets
Sept. 30, 2026, 2:40 a.m.
Added
get_wallet_holdings
Sept. 30, 2026, 2:40 a.m.
Added
get_wallet_risk
Sept. 30, 2026, 2:40 a.m.
Added
get_stablecoin_detail
Sept. 30, 2026, 2:40 a.m.
Added
get_stablecoin_scores
Sept. 30, 2026, 2:40 a.m.