Basis Protocol
Attested risk scores for stablecoins, DeFi protocols and wallets, with receipts.
Should I use this
Quality & Safety
Findings (2)
- LOWin get_riskiest_wallets
- LOWin basis_exchange_health
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"basis": {
"url": "https://basisprotocol.xyz/mcp"
}
}
}Remote endpoints
https://basisprotocol.xyz/mcpstreamable-httpWhat it can do
Tool inventory
Tools (22)
🟢get_stablecoin_scores(sort_by)
Get current SII scores for all scored stablecoins. Use before any decision involving stablecoins.
Input Schema
{
"type": "object",
"properties": {
"sort_by": {
"default": "score_desc",
"title": "Sort By",
"type": "string"
}
},
"title": "get_stablecoin_scoresArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_stablecoin_scoresOutput"
}🟢get_stablecoin_detail(coin)
Full score breakdown for a specific stablecoin including category scores and methodology version.
Input Schema
{
"type": "object",
"properties": {
"coin": {
"title": "Coin",
"type": "string"
}
},
"required": [
"coin"
],
"title": "get_stablecoin_detailArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_stablecoin_detailOutput"
}🟢get_wallet_risk(address)
Get risk profile for a specific Ethereum wallet — composite risk score, concentration, coverage quality.
Input Schema
{
"type": "object",
"properties": {
"address": {
"title": "Address",
"type": "string"
}
},
"required": [
"address"
],
"title": "get_wallet_riskArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_wallet_riskOutput"
}🟢get_wallet_holdings(address)
Detailed holdings breakdown for an Ethereum wallet with per-asset SII scores.
Input Schema
{
"type": "object",
"properties": {
"address": {
"title": "Address",
"type": "string"
}
},
"required": [
"address"
],
"title": "get_wallet_holdingsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_wallet_holdingsOutput"
}🟢get_riskiest_wallets(limit)
Wallets with the most capital at risk — lowest risk scores weighted by total value.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "get_riskiest_walletsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_riskiest_walletsOutput"
}🟢get_scoring_backlog(limit)
Unscored stablecoin assets ranked by total capital exposure across all indexed wallets.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "get_scoring_backlogArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_scoring_backlogOutput"
}🟢check_transaction_risk(from_address, to_address, asset_symbol)
Composite risk assessment for a stablecoin transaction — evaluates asset, sender, and receiver.
Input Schema
{
"type": "object",
"properties": {
"from_address": {
"title": "From Address",
"type": "string"
},
"to_address": {
"title": "To Address",
"type": "string"
},
"asset_symbol": {
"title": "Asset Symbol",
"type": "string"
}
},
"required": [
"from_address",
"to_address",
"asset_symbol"
],
"title": "check_transaction_riskArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "check_transaction_riskOutput"
}🟢get_methodology
Returns the current SII formula, category weights, score scale, and version information.
Input Schema
{
"type": "object",
"properties": {},
"title": "get_methodologyArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_methodologyOutput"
}🟢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",
"properties": {},
"title": "get_divergence_signalsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_divergence_signalsOutput"
}🟢query_template(template_name, params)
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",
"properties": {
"template_name": {
"title": "Template Name",
"type": "string"
},
"params": {
"additionalProperties": true,
"default": null,
"title": "Params",
"type": "object"
}
},
"required": [
"template_name"
],
"title": "query_templateArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "query_templateOutput"
}🟢get_treasury_events(wallet_address, event_type, days)
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",
"properties": {
"wallet_address": {
"default": null,
"title": "Wallet Address",
"type": "string"
},
"event_type": {
"default": null,
"title": "Event Type",
"type": "string"
},
"days": {
"default": 30,
"title": "Days",
"type": "integer"
}
},
"title": "get_treasury_eventsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_treasury_eventsOutput"
}🟢basis_liquidity_depth(asset_id)
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",
"properties": {
"asset_id": {
"title": "Asset Id",
"type": "string"
}
},
"required": [
"asset_id"
],
"title": "basis_liquidity_depthArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_liquidity_depthOutput"
}⚪basis_yield_data(protocol)
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",
"properties": {
"protocol": {
"default": null,
"title": "Protocol",
"type": "string"
}
},
"title": "basis_yield_dataArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_yield_dataOutput"
}⚪basis_governance_activity(protocol, days)
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",
"properties": {
"protocol": {
"title": "Protocol",
"type": "string"
},
"days": {
"default": 90,
"title": "Days",
"type": "integer"
}
},
"required": [
"protocol"
],
"title": "basis_governance_activityArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_governance_activityOutput"
}⚪basis_bridge_flows(bridge_id)
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",
"properties": {
"bridge_id": {
"default": null,
"title": "Bridge Id",
"type": "string"
}
},
"title": "basis_bridge_flowsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_bridge_flowsOutput"
}⚪basis_exchange_health(exchange_id)
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",
"properties": {
"exchange_id": {
"default": null,
"title": "Exchange Id",
"type": "string"
}
},
"title": "basis_exchange_healthArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_exchange_healthOutput"
}⚪basis_correlation(matrix_type)
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",
"properties": {
"matrix_type": {
"default": "sii_30d",
"title": "Matrix Type",
"type": "string"
}
},
"title": "basis_correlationArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_correlationOutput"
}⚪basis_volatility(asset_id)
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",
"properties": {
"asset_id": {
"title": "Asset Id",
"type": "string"
}
},
"required": [
"asset_id"
],
"title": "basis_volatilityArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_volatilityOutput"
}⚪basis_incidents(entity_id)
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",
"properties": {
"entity_id": {
"default": null,
"title": "Entity Id",
"type": "string"
}
},
"title": "basis_incidentsArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_incidentsOutput"
}⚪basis_peg_monitor(stablecoin_id, hours)
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",
"properties": {
"stablecoin_id": {
"title": "Stablecoin Id",
"type": "string"
},
"hours": {
"default": 24,
"title": "Hours",
"type": "integer"
}
},
"required": [
"stablecoin_id"
],
"title": "basis_peg_monitorArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_peg_monitorOutput"
}🟡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",
"properties": {},
"title": "basis_data_catalogArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_data_catalogOutput"
}🟢basis_answer(query, session_id)
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",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"session_id": {
"default": null,
"title": "Session Id",
"type": "string"
}
},
"required": [
"query"
],
"title": "basis_answerArguments"
}Output Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "basis_answerOutput"
}Community
Evidence