Avalanche AVAX MCP
Search and retrieve Avalanche blockchain documentation for building on AVAX.
Should I use this
Quality & Safety
Findings (8)
- HIGH
- MEDIUMin onchain_query
- LOWin cli_lookup_command
- LOWin rpc_lookup_method
- LOWin blockchain_lookup_subnet
- LOWin blockchain_get_contract_info
- LOWin platform_get_current_validators
- LOWin platform_get_pending_validators
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": {
"avalanche-docs": {
"url": "https://build.avax.network/api/mcp"
}
}
}Remote endpoints
https://build.avax.network/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (48)
π’docs_search(query, source, limit)
Search body-level chunks across Avalanche documentation, academy courses, integrations, and blog posts. Returns source citations and matching excerpts.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query"
},
"source": {
"type": "string",
"enum": [
"docs",
"academy",
"integrations",
"blog"
],
"description": "Filter by documentation source (optional)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"description": "Maximum number of chunk results (default: 10)"
}
},
"required": [
"query"
]
}π’docs_fetch(url)
Fetch a specific documentation page as markdown
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The page URL path (e.g., /docs/primary-network/overview)"
}
},
"required": [
"url"
]
}π’docs_list_sections
List available documentation sections and their page counts
Input Schema
{
"type": "object",
"properties": {},
"required": []
}βͺcli_lookup_command(query, cli, limit)
Look up Avalanche CLI, Platform CLI, and tmpnet command guidance in the docs. Returns cited command references and task docs.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Command, flag, or task to look up"
},
"cli": {
"type": "string",
"enum": [
"platform-cli",
"tmpnet",
"all"
],
"description": "CLI surface to search. Defaults to all."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Maximum number of results (default: 8)"
}
},
"required": [
"query"
]
}βͺrpc_lookup_method(query, chain, limit)
Look up Avalanche RPC methods and API guides across C-Chain, P-Chain, X-Chain, Subnet-EVM, and node RPC docs.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "RPC method, namespace, or task to look up"
},
"chain": {
"type": "string",
"enum": [
"p-chain",
"c-chain",
"x-chain",
"subnet-evm",
"other",
"all"
],
"description": "RPC area to search. Defaults to all."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Maximum number of results (default: 8)"
}
},
"required": [
"query"
]
}βͺacp_lookup(query, number, limit)
Look up Avalanche Community Proposals (ACPs) by number, title, or topic. When a number is provided the structured ACP record is returned (title, status, track, authors, cross-references).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "ACP title, topic, or keyword"
},
"number": {
"type": "number",
"description": "ACP number, if known"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 20,
"description": "Maximum number of results (default: 8)"
}
},
"required": []
}π’acp_list(status, track, limit)
List Avalanche Community Proposals with structured fields, optionally filtered by status (Activated, Implementable, Proposed, Stale, Withdrawn) or track (Standards, Best Practices, Meta, Subnet).
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"Proposed",
"Implementable",
"Activated",
"Stale",
"Withdrawn",
"Unknown"
],
"description": "Filter by ACP status (case-insensitive)"
},
"track": {
"type": "string",
"enum": [
"Standards",
"Best Practices",
"Meta",
"Subnet"
],
"description": "Filter by ACP track. Matches Standards, Best Practices, Meta, or Subnet."
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 100,
"description": "Maximum number of ACPs to return (default: 50)"
}
},
"required": []
}π’avalanche_docs_search(query, source, limit)
Compatibility alias for docs_search. Prefer docs_search for new clients.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query"
},
"source": {
"type": "string",
"enum": [
"docs",
"academy",
"integrations",
"blog"
],
"description": "Filter by documentation source (optional)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"description": "Maximum number of chunk results (default: 10)"
}
},
"required": [
"query"
]
}π’avalanche_docs_fetch(url)
Compatibility alias for docs_fetch. Prefer docs_fetch for new clients.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The page URL path (e.g., /docs/primary-network/overview)"
}
},
"required": [
"url"
]
}π’avalanche_docs_list_sections
Compatibility alias for docs_list_sections. Prefer docs_list_sections for new clients.
Input Schema
{
"type": "object",
"properties": {},
"required": []
}βͺblockchain_lookup_transaction(txHash, network)
Look up a transaction by hash on Avalanche (C-Chain, P-Chain, or X-Chain). Supports 0x format (C-Chain) and CB58 format (P/X-Chain).
Input Schema
{
"type": "object",
"properties": {
"txHash": {
"type": "string",
"description": "Transaction hash (0x... for C-Chain, CB58 for P/X-Chain)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"default": "mainnet",
"description": "Network to search"
}
},
"required": [
"txHash"
]
}βͺblockchain_lookup_subnet(subnetId, network)
Look up a Subnet / L1 by its ID β validators, chains, and configuration.
Input Schema
{
"type": "object",
"properties": {
"subnetId": {
"type": "string",
"description": "The Subnet ID"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"default": "mainnet"
}
},
"required": [
"subnetId"
]
}βͺblockchain_lookup_chain(chainId, network)
Look up a blockchain by its ID β name, VM type, and Subnet/L1.
Input Schema
{
"type": "object",
"properties": {
"chainId": {
"type": "string",
"description": "The blockchain ID"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"default": "mainnet"
}
},
"required": [
"chainId"
]
}βͺblockchain_lookup_validator(nodeId, subnetId, network)
Look up a validator by node ID β stake, uptime, delegation info.
Input Schema
{
"type": "object",
"properties": {
"nodeId": {
"type": "string",
"description": "Node ID (e.g. NodeID-...)"
},
"subnetId": {
"type": "string",
"default": "11111111111111111111111111111111LpoYY",
"description": "Subnet ID (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"default": "mainnet"
}
},
"required": [
"nodeId"
]
}π’platform_get_height(network)
Get the current P-Chain block height
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
}
}π’platform_get_block(blockID, encoding, network)
Get a P-Chain block by its block ID
Input Schema
{
"type": "object",
"properties": {
"blockID": {
"type": "string",
"description": "The CB58-encoded block ID"
},
"encoding": {
"type": "string",
"enum": [
"json",
"hex"
],
"description": "Encoding format for the block (default: json)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"blockID"
]
}π’platform_get_block_by_height(height, encoding, network)
Get a P-Chain block by its height
Input Schema
{
"type": "object",
"properties": {
"height": {
"type": "string",
"description": "The block height as a string"
},
"encoding": {
"type": "string",
"enum": [
"json",
"hex"
],
"description": "Encoding format for the block (default: json)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"height"
]
}π’platform_get_blockchains(network, limit, offset)
Get all blockchains that exist on the P-Chain (paginated; use limit/offset)
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"description": "Max items to return (default: 50). Use with \"offset\" to page."
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of items to skip from the start (default: 0)."
}
}
}π’platform_get_subnets(ids, network, limit, offset)
Get information about Subnets/L1s on the P-Chain
Input Schema
{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of Subnet IDs to filter by"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"description": "Max items to return (default: 50). Use with \"offset\" to page."
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of items to skip from the start (default: 0)."
}
}
}π’platform_get_current_validators(subnetID, nodeIDs, network, limit, offset)
Get the current validators of a Subnet/L1 (paginated; use limit/offset)
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query validators for (default: Primary Network)"
},
"nodeIDs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of node IDs to filter by"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"description": "Max items to return (default: 50). Use with \"offset\" to page."
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of items to skip from the start (default: 0)."
}
}
}π’platform_get_pending_validators(subnetID, nodeIDs, network, limit, offset)
Get the pending validators of a Subnet/L1 (paginated; use limit/offset)
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query pending validators for (default: Primary Network)"
},
"nodeIDs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of node IDs to filter by"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 200,
"description": "Max items to return (default: 50). Use with \"offset\" to page."
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of items to skip from the start (default: 0)."
}
}
}π’platform_get_staking_asset_id(subnetID, network)
Get the asset ID of the token used for staking on a Subnet/L1
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query the staking asset for (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
}
}π’platform_get_min_stake(subnetID, network)
Get the minimum staking amounts for validators and delegators on a Subnet/L1
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query minimum stake for (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
}
}π’platform_get_total_stake(subnetID, network)
Get the total amount staked on a Subnet/L1
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query total stake for (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
}
}π’platform_get_balance(addresses, network)
Get the AVAX balance of one or more P-Chain addresses
Input Schema
{
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of P-Chain addresses to query (e.g. P-avax1...)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"addresses"
]
}π‘platform_get_utxos(addresses, limit, sourceChain, network)
Get UTXOs that reference a given set of P-Chain addresses
Input Schema
{
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of P-Chain addresses to get UTXOs for"
},
"limit": {
"type": "number",
"description": "Maximum number of UTXOs to return"
},
"sourceChain": {
"type": "string",
"description": "If fetching atomic UTXOs, the chain they were exported from"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"addresses"
]
}π’platform_get_tx(txID, encoding, network)
Get a P-Chain transaction by its transaction ID
Input Schema
{
"type": "object",
"properties": {
"txID": {
"type": "string",
"description": "The CB58-encoded transaction ID"
},
"encoding": {
"type": "string",
"enum": [
"json",
"hex"
],
"description": "Encoding format for the transaction (default: json)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"txID"
]
}π’platform_get_tx_status(txID, network)
Get the status of a P-Chain transaction
Input Schema
{
"type": "object",
"properties": {
"txID": {
"type": "string",
"description": "The CB58-encoded transaction ID"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"txID"
]
}π’platform_get_current_supply(subnetID, network)
Get the current total supply of AVAX on a Subnet/L1
Input Schema
{
"type": "object",
"properties": {
"subnetID": {
"type": "string",
"description": "The Subnet ID to query current supply for (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
}
}π’platform_get_validators_at(height, subnetID, network)
Get the validators and their weights of a Subnet/L1 at a given P-Chain height
Input Schema
{
"type": "object",
"properties": {
"height": {
"oneOf": [
{
"type": "number",
"description": "A specific P-Chain block height"
},
{
"type": "string",
"enum": [
"proposed"
],
"description": "Use \"proposed\" for the proposed height"
}
],
"description": "The P-Chain height to query validators at, or \"proposed\""
},
"subnetID": {
"type": "string",
"description": "The Subnet ID to query validators for (default: Primary Network)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Avalanche network to query (default: mainnet)"
}
},
"required": [
"height"
]
}π’info_get_node_version(network)
Get the version of the node, including the database version, git commit, and API compatibility info.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’info_get_network_id(network)
Get the numeric ID of the Avalanche network this node is participating in.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’info_get_network_name(network)
Get the human-readable name of the Avalanche network this node is participating in.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’info_get_blockchain_id(alias, network)
Get the CB58-encoded blockchain ID for a given blockchain alias (e.g., "X", "P", "C").
Input Schema
{
"type": "object",
"properties": {
"alias": {
"type": "string",
"description": "The blockchain alias (e.g., \"X\", \"P\", \"C\", or a full blockchain name)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": [
"alias"
]
}π’info_is_bootstrapped(chain, network)
Check whether a given chain has finished bootstrapping on the node.
Input Schema
{
"type": "object",
"properties": {
"chain": {
"type": "string",
"description": "The chain ID or alias to check (e.g., \"X\", \"P\", \"C\")"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": [
"chain"
]
}π’info_get_tx_fee(network)
Get the current transaction fees for the network, returned in both nAVAX and AVAX.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’info_peers(nodeIDs, network)
Get a list of peers this node is connected to. Optionally filter by specific NodeIDs.
Input Schema
{
"type": "object",
"properties": {
"nodeIDs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of NodeIDs to filter peers by (e.g., [\"NodeID-AbC...\"]). If omitted, all peers are returned."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’info_acps(network)
Get information about Avalanche Community Proposals (ACPs), including their status and vote counts.
Input Schema
{
"type": "object",
"properties": {
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "The Avalanche network to query (default: mainnet)"
}
},
"required": []
}π’blockchain_get_native_balance(address, chainId)
Compatibility alias for onchain_lookup address balances. Prefer onchain_lookup for new clients.
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address (0x...)"
},
"chainId": {
"type": "string",
"default": "43114",
"description": "43114 for C-Chain mainnet, 43113 for Fuji"
}
},
"required": [
"address"
]
}π’blockchain_get_contract_info(address, chainId)
Compatibility alias for onchain_lookup contract metadata. Prefer onchain_lookup for new clients.
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Contract address (0x...)"
},
"chainId": {
"type": "string",
"default": "43114",
"description": "43114 for C-Chain mainnet, 43113 for Fuji"
}
},
"required": [
"address"
]
}βͺblockchain_lookup_address(address, chainId)
Compatibility alias for onchain_lookup address details. Prefer onchain_lookup for new clients.
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "EVM address (0x...)"
},
"chainId": {
"type": "string",
"default": "43114",
"description": "43114 for C-Chain mainnet, 43113 for Fuji"
}
},
"required": [
"address"
]
}βͺonchain_lookup(value, kind, network, chainId, tokenId, ...)
PRIMARY lookup tool β use this (not raw RPC) to resolve/describe any on-chain identifier in one call: an EVM address (native + token balances, recent txs, contract metadata + isContract), a contract/token (metadata + deployment + recent transfers), an NFT (collection + tokenId), a tx hash, a subnet ID, a NodeID validator, a P-/X-Chain account (P-β¦/X-β¦ β P-Chain balance), or a chain name/id. Use this for any address balance / contract-info / token / identity question. `kind` auto-detects; network is inferred from P-/X-Chain prefixes. Backed by Glacier + P-Chain RPC.
Input Schema
{
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "The identifier: 0x address / 0x tx hash / NodeID-β¦ / subnetId / chain name or id"
},
"kind": {
"type": "string",
"enum": [
"auto",
"address",
"contract",
"token",
"nft",
"transaction",
"subnet",
"validator",
"chain",
"pchain"
],
"description": "Entity kind (default: auto-detect from value)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Network (default: mainnet)"
},
"chainId": {
"type": "string",
"description": "EVM chain ID for EVM kinds (default: C-Chain for the network)"
},
"tokenId": {
"type": "string",
"description": "NFT token ID (kind=nft)"
},
"include": {
"type": "array",
"items": {
"type": "string",
"enum": [
"balances",
"nfts"
]
},
"description": "Extra data for an address (e.g. [\"nfts\"])"
}
},
"required": [
"value"
]
}π’onchain_activity(scope, value, feed, network, chainId, ...)
Time-windowed on-chain activity. scope=chain/address returns the transaction COUNT over the last `hours` (max 720h = 30 days; for longer windows use chain_stats series or onchain_query day-based ops) plus a recent sample. For a token/contract use scope=token (transfers). scope=primary covers P/X-chain and DEFAULTS to P-Chain when no blockchainId is given (so "last N P-chain transactions" just works). A value with no scope defaults to address.
Input Schema
{
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"address",
"chain",
"token",
"contract",
"primary"
],
"description": "address | chain | token | contract | primary"
},
"value": {
"type": "string",
"description": "Address/contract/token (omit for scope=chain)"
},
"feed": {
"type": "string",
"enum": [
"transactions",
"transfers",
"erc20Transfers",
"nftTransfers"
],
"description": "transactions (default) | transfers | erc20Transfers | nftTransfers"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Network (default: mainnet)"
},
"chainId": {
"type": "string",
"description": "EVM chain ID (default: C-Chain for the network)"
},
"blockchainId": {
"type": "string",
"description": "Blockchain ID for scope=primary (default: P-Chain)"
},
"hours": {
"type": "number",
"description": "Look-back window in hours for EVM transaction feeds (default: 2 for chain, max 720)"
},
"fromTimestamp": {
"type": "number",
"description": "Unix start time (scope=primary)"
},
"toTimestamp": {
"type": "number",
"description": "Unix end time (scope=primary)"
},
"pageSize": {
"type": "number",
"minimum": 1,
"maximum": 100,
"description": "Max rows (default: 25)"
}
},
"required": [
"scope"
]
}π’chain_stats(target, window, chainId, value, timeInterval, ...)
On-chain statistics via the query gateway, which picks the most accurate live source PER FIELD and stamps it (sources/warnings in the response). target=chain: tx count/gas/fees/active senders/avg gas price over a recent window (window=recent, `hours`, max 720h = 30 days) OR a time-series (window=series, `days`, max 365). target=contract: per-contract tx/sender/gas totals (`days`, max 365 β use this for contract activity beyond 30 days). target=network: current P-chain validator snapshot. IMPORTANT: relay any `warnings` notes to the user verbatim-in-substance (e.g. gas coverage windows or accuracy caveats) β never present a flagged value as exact. Note: C-Chain gasUsed is gas-target-regulated, so daily gas is ~stable even as tx count varies β expected, not an error.
Input Schema
{
"type": "object",
"properties": {
"target": {
"type": "string",
"enum": [
"chain",
"contract",
"network"
],
"description": "chain (default) | contract | network"
},
"window": {
"type": "string",
"enum": [
"series",
"recent"
],
"description": "chain: recent aggregate (default) or series"
},
"chainId": {
"type": "string",
"description": "EVM chain ID (default: C-Chain for the network)"
},
"value": {
"type": "string",
"description": "Contract address (target=contract)"
},
"timeInterval": {
"type": "string",
"enum": [
"hour",
"day",
"week",
"month"
],
"description": "Bucket size for window=series (default: day)"
},
"hours": {
"type": "number",
"description": "Look-back hours for window=recent (default: 24, max 720)"
},
"days": {
"type": "number",
"description": "Look-back days for series / contract (default: 30, max 365)"
},
"network": {
"type": "string",
"enum": [
"mainnet",
"fuji"
],
"description": "Network (default: mainnet)"
}
},
"required": []
}π‘onchain_query(op, params)
PRIMARY tool for indexed on-chain stats/activity/totals β prefer this over raw RPC for chain data. Each `op` is a backend-agnostic intent: the query gateway selects the most accurate live source per field (indexed DB / pre-aggregated metrics / Data API), stamps every field (`sources`), and flags any caveat (`warnings`) β relay warnings to the user, never present a flagged value as exact. Pick an `op` and pass its `params`; `chainId` is an allowlisted EVM chain (43114 C-Chain, 43113 Fuji, + L1s). Lookback: hour-based ops (chainStatsRecent/chainActivity/addressActivity) max 720h (30 days); day-based ops (chainStatsSeries/contractStats/chainGasTotal/protocolRanking/contractGasFlow/topUnknownContracts) max 365 days β use a day-based op for windows over 30 days. Ops: chainStatsRecent {chainId, hoursβ€720} β tx count/gas/fees/active senders/avg gas price over the last N hours; chainStatsSeries {chainId, daysβ€365, bucket: hour|day|week|month} β bucketed time-series of the same; addressActivity {chainId, address, hoursβ€720, limitβ€100} β tx count + recent sample for an address in a window; chainActivity {chainId, hoursβ€720, limitβ€100} β tx count + recent sample chain-wide in a window; contractStats {chainId, contract, daysβ€365} β tx/unique-sender/gas totals for a contract; protocolRanking {chainId, contracts[β€25], daysβ€365, orderBy: txCount|gasUsed|uniqueSenders|feesPaidAvax, dir: asc|desc, limitβ€100} β rank a set of contracts; contractGasFlow {chainId, contract, daysβ€365, limitβ€100} β gas received/given per counterparty; topUnknownContracts {chainId, exclude[β€25], daysβ€365, limitβ€100} β top contracts by gas excluding a set; chainGasTotal {chainId, daysβ€365} OR {chainId, fromDate, toDate} β total tx/gas/fees over N days or a YYYY-MM-DD range (β€365d). Note: C-Chain gasUsed is gas-target-regulated β ~stable day-to-day even as txCount varies (expected, not a bug).
Input Schema
{
"type": "object",
"properties": {
"op": {
"type": "string",
"enum": [
"chainStatsRecent",
"chainStatsSeries",
"addressActivity",
"chainActivity",
"contractStats",
"protocolRanking",
"contractGasFlow",
"topUnknownContracts",
"chainGasTotal"
],
"description": "The query operation"
},
"params": {
"type": "object",
"description": "Op-specific parameters (see description); validated server-side."
}
},
"required": [
"op",
"params"
]
}π‘build_plan(operation, network, name, vm, validatorManager, ...)
Generate a step-by-step, copy-pasteable runbook for an Avalanche operation β Builder Console (no-code) path plus the equivalent platform-cli / SDK / interchain-kit commands. Read-only: never signs. operation: create-l1 (launch an L1); use ictt or interchain-kit for any CROSS-CHAIN / interoperability work β bridging tokens, sending cross-chain (ICM / Teleporter / Warp) messages, or connecting your L1 to C-Chain or other L1s (interchain-kit also lets you iterate locally first); validator-manager; staking; transfer.
Input Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"create-l1",
"ictt",
"validator-manager",
"staking",
"transfer",
"interchain-kit"
],
"description": "Which runbook to generate"
},
"network": {
"type": "string",
"enum": [
"fuji",
"mainnet"
],
"description": "Target network (default: fuji)"
},
"name": {
"type": "string",
"description": "create-l1: L1 name (default: myL1)"
},
"vm": {
"type": "string",
"enum": [
"subnet-evm",
"custom"
],
"description": "create-l1: VM type (default: subnet-evm)"
},
"validatorManager": {
"type": "string",
"enum": [
"poa",
"pos-native",
"pos-erc20"
],
"description": "create-l1 / validator-manager: model (default: poa)"
},
"chainId": {
"type": "string",
"description": "create-l1: EVM chain ID"
},
"tokenSymbol": {
"type": "string",
"description": "create-l1: native token symbol"
},
"type": {
"type": "string",
"enum": [
"poa",
"pos-native",
"pos-erc20"
],
"description": "validator-manager: manager type (alias of validatorManager)"
},
"token": {
"type": "string",
"description": "ictt: token contract address (or \"native\")"
},
"tokenType": {
"type": "string",
"enum": [
"erc20",
"native"
],
"description": "ictt: token type (default: erc20)"
},
"homeChain": {
"type": "string",
"description": "ictt: home chain (where the token originates)"
},
"remoteChain": {
"type": "string",
"description": "ictt: destination chain (required for operation=ictt)"
},
"stake": {
"type": "string",
"description": "staking: stake amount"
},
"duration": {
"type": "string",
"description": "staking: staking period (e.g. 336h)"
},
"nodeId": {
"type": "string",
"description": "staking: NodeID-β¦"
},
"transferKind": {
"type": "string",
"enum": [
"send",
"p-to-c",
"c-to-p"
],
"description": "transfer: kind (default: send)"
},
"amount": {
"type": "string",
"description": "transfer: amount"
},
"to": {
"type": "string",
"description": "transfer: destination address (transferKind=send)"
},
"example": {
"type": "string",
"enum": [
"send-message",
"transfer-token",
"validator-manager-setup",
"add-validator"
],
"description": "interchain-kit: which example to run"
}
},
"required": [
"operation"
]
}βͺconsole_link(flow, network, validatorManager)
Return a deep-link into a specific Builder Console flow (create-l1, convert-to-l1, validator-manager, ictt, faucet, multisig, staking, transfers, interchain-kit-local). For faucet on mainnet, returns a note that there is no mainnet faucet.
Input Schema
{
"type": "object",
"properties": {
"flow": {
"type": "string",
"enum": [
"create-l1",
"convert-to-l1",
"validator-manager",
"ictt",
"faucet",
"multisig",
"staking",
"transfers",
"interchain-kit-local"
],
"description": "The console flow to link to"
},
"network": {
"type": "string",
"enum": [
"fuji",
"mainnet"
],
"description": "Network (only affects faucet; default: fuji)"
},
"validatorManager": {
"type": "string",
"enum": [
"poa",
"pos-native",
"pos-erc20"
],
"description": "Validator-manager variant (default: poa)"
}
},
"required": [
"flow"
]
}π‘console_flow(flow)
Builder Console flow knowledge. Call with NO `flow` to list every flow (summaries + deep-links); call with a `flow` key to explain it (ordered steps, equivalent CLI, whether it signs transactions, deep-link). Flows: create-l1, convert-to-l1, validator-manager, ictt, faucet, multisig, staking, transfers, interchain-kit-local.
Input Schema
{
"type": "object",
"properties": {
"flow": {
"type": "string",
"enum": [
"create-l1",
"convert-to-l1",
"validator-manager",
"ictt",
"faucet",
"multisig",
"staking",
"transfers",
"interchain-kit-local"
],
"description": "Flow key to explain. Omit to list all flows."
}
},
"required": []
}Community
Evidence