resolve_token
Resolve a (chain, symbol) pair to its canonical contract address + decimals from the curated registry. Supports EVM chains (ethereum, arbitrum, polygon, base, optimism), Solana, and TRON. Surfaces native-vs-bridged ambiguity verbatim — e.g. asking for USDC on Arbitrum returns the native Circle US...
This record as markdown: /tools/io-github-szhygulin-vaultpilot-mcp/resolve-token.md
What resolve_token does on VaultPilot MCP
AI agents call resolve_token to retrieve information from VaultPilot MCP without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
chain | string | Yes | Chain the symbol is on. Restricted to the chains with curated token tables. BTC + LTC have no token concept and aren't accepted. |
symbol | string | Yes | Token symbol to resolve (case-insensitive, but the canonical-registry key casing wins on output). Examples: "USDC", "USDC.e", "USDbC", "WETH", "BONK". The resol |
Parameters from the server's own tool schema.
Why resolve_token is rated Low
This tool only looks up token metadata (contract address and decimals) from a registry. It performs a read-only query with no side effects, no data modification, and no financial transactions. The registry lookup and ambiguity surfacing are purely informational.
From the tool's definition Resolve a `(chain, symbol)` pair to its canonical contract address + decimals from the curated registry
Attacks that exploit this kind of access
The rule that runs resolve_token safely
PolicyLayer is an MCP gateway: it sits between your AI agents and VaultPilot MCP, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For resolve_token, this is the rule to start with:
resolve_token is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect VaultPilot MCP, apply this rule, and every resolve_token call is checked against it from then on.
Questions about resolve_token
Resolve a (chain, symbol) pair to its canonical contract address + decimals from the curated registry. Supports EVM chains (ethereum, arbitrum, polygon, base, optimism), Solana, and TRON. Surfaces native-vs-bridged ambiguity verbatim — e.g. asking for USDC on Arbitrum returns the native Circle USDC contract AND a hasBridgedVariant warning with the USDC.e legacy-bridged contract in alternatives[], so the agent can offer the user the actual choice instead of silently picking one. Asking for USDC.e directly returns the bridged contract with an isBridgedVariant warning + the native USDC alternative. Same shape on Polygon/Optimism (USDC.e) and Base (USDbC is the bridged form there). By design, this tool is canonical-registry-only — it does NOT probe on-chain to resolve unknown symbols, since an attacker can deploy a contract that returns "USDC" from symbol() and is wholly unrelated to the real Circle stablecoin. Unknown symbols throw with a list of registry hits on that chain so the agent can suggest the right one. USE THIS BEFORE prepare_token_send when the user names a token by symbol — surface any warnings to the user before passing the resolved contract through to prepare_token_send. If the desired token isn't in the registry, look up the contract on a block explorer and call prepare_token_send directly with the explicit address. It is categorised as a Read tool in the VaultPilot MCP MCP Server, which means it retrieves data without modifying state.
resolve_token accepts 2 parameters: chain, symbol. Required: chain, symbol. The full parameter table on this page comes from the server's own tool schema.
Register the VaultPilot MCP server in PolicyLayer and add a rule for resolve_token: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches VaultPilot MCP. Nothing to install.
resolve_token is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the resolve_token rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for resolve_token. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
resolve_token is provided by the VaultPilot MCP server (vaultpilot-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on VaultPilot, and thousands of servers like it.
This server
Across the catalogue