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...
AI agents use resolve_token to create or update resources in VaultPilot MCP — usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your VaultPilot MCP environment.
| 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.
An AI agent can call resolve_token faster than any human can review — one bad instruction and it creates or modifies resources in VaultPilot MCP by the hundred, each call as confident as the last.
Attacks that exploit this kind of access
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 Write tool in the VaultPilot MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
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 Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
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.