Avalanche AVAX MCP

Search and retrieve Avalanche blockchain documentation for building on AVAX.

Should I use this

Quality & Safety

A
Description quality
89%
Schema completeness
92%
Naming quality
86%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (8)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin onchain_query
  • LOWTool 'cli_lookup_command' description lacks action verbin cli_lookup_command
  • LOWTool 'rpc_lookup_method' description lacks action verbin rpc_lookup_method
  • LOWTool 'blockchain_lookup_subnet' description lacks action verbin blockchain_lookup_subnet
  • LOWTool 'blockchain_get_contract_info' description lacks action verbin blockchain_get_contract_info
  • LOWTool 'platform_get_current_validators' name length outside 3-30 rangein platform_get_current_validators
  • LOWTool 'platform_get_pending_validators' name length outside 3-30 rangein platform_get_pending_validators

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,109Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (5.55% of 128k context)

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-http

What it can do

Tool inventory

Tools (48)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded48 tools
verifiedversion not recorded48 tools