Skip to main content
Glama

Agent Wallet Snapshot

agent_wallet_snapshot
Read-only

One-call wallet overview for autonomous agents: native balance, ERC-20 balances (default stablecoins + WETH, or any contracts you pass), current gas price, tx count, contract check and USD values incl. total – bundles what would otherwise be 5+ RPC calls. Base, Ethereum, BSC, Polygon, Arbitrum, Optimism. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNobase (default), ethereum, bsc, polygon, arbitrum, optimism.
walletNoYour EVM wallet address (0x...). Unlocks the free tier (3 free calls per wallet).
api_keyNoOptional AMR enterprise API key.
x_paymentNoOptional signed x402 payment payload (base64 JSON) for USDC/USDT on Base.
wallet_addressYesEVM wallet address.
token_contractsNoERC-20 contracts to include (max 20); default: USDC, USDT, DAI, WETH.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainYes
tokenNoToken actually used for payment (USDC, USDT or FREE).USDC
routingYesHow the request was routed (provider, fallback, cache, latency).
chain_idYes
tx_countYes
cost_usdcYesPrice charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier.
fetched_atNoUTC timestamp when the data was fetched.
is_contractYes
block_numberYes
native_tokenYes
calls_bundledYes
gas_price_weiYes
gas_price_gweiYes
native_balanceYes
token_balancesYes
wallet_addressYes
total_usd_valueYes
native_price_usdNo
freshness_secondsYesAge of the underlying data in seconds (0 = fetched live).
x_payment_responseNoBase64-encoded x402 settlement receipt (mirrors the X-PAYMENT-RESPONSE header). Only present when the call was paid with `x_payment`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Response for ``POST /agent-wallet-snapshot``.",
      +  "properties": {
      +    "block_number": {
      +      "title": "Block Number",
      +      "type": "integer"
      +    },
      +    "calls_bundled": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Calls Bundled",
      +      "type": "array"
      +    },
      +    "chain": {
      +      "title": "Chain",
      +      "type": "string"
      +    },
      +    "chain_id": {
      +      "title": "Chain Id",
      +      "type": "integer"
      +    },
      +    "cost_usdc": {
      +      "description": "Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier.",
      +      "title": "Cost Usdc",
      +      "type": "number"
      +    },
      +    "fetched_at": {
      +      "description": "UTC timestamp when the data was fetched.",
      +      "format": "date-time",
      +      "title": "Fetched At",
      +      "type": "string"
      +    },
      +    "freshness_seconds": {
      +      "description": "Age of the underlying data in seconds (0 = fetched live).",
      +      "title": "Freshness Seconds",
      +      "type": "integer"
      +    },
      +    "gas_price_gwei": {
      +      "title": "Gas Price Gwei",
      +      "type": "number"
      +    },
      +    "gas_price_wei": {
      +      "title": "Gas Price Wei",
      +      "type": "string"
      +    },
      +    "is_contract": {
      +      "title": "Is Contract",
      +      "type": "boolean"
      +    },
      +    "native_balance": {
      +      "additionalProperties": true,
      +      "title": "Native Balance",
      +      "type": "object"
      +    },
      +    "native_price_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Native Price Usd"
      +    },
      +    "native_token": {
      +      "title": "Native Token",
      +      "type": "string"
      +    },
      +    "routing": {
      +      "description": "How the request was routed (provider, fallback, cache, latency).",
      +      "properties": {
      +        "cache_hit": {
      +          "default": false,
      +          "description": "True if the result was served from cache.",
      +          "title": "Cache Hit",
      +          "type": "boolean"
      +        },
      +        "fallback_used": {
      +          "default": false,
      +          "description": "True if the primary provider failed and a fallback served the result.",
      +          "title": "Fallback Used",
      +          "type": "boolean"
      +        },
      +        "latency_ms": {
      +          "default": 0,
      +          "description": "End-to-end routing latency in milliseconds.",
      +          "title": "Latency Ms",
      +          "type": "integer"
      +        },
      +        "provider": {
      +          "description": "Name of the upstream provider that served the result.",
      +          "title": "Provider",
      +          "type": "string"
      +        },
      +        "providers_tried": {
      +          "description": "Providers attempted, in order.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "title": "Providers Tried",
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "provider"
      +      ],
      +      "title": "RoutingMeta",
      +      "type": "object"
      +    },
      +    "token": {
      +      "default": "USDC",
      +      "description": "Token actually used for payment (USDC, USDT or FREE).",
      +      "title": "Token",
      +      "type": "string"
      +    },
      +    "token_balances": {
      +      "items": {
      +        "properties": {
      +          "balance": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Balance"
      +          },
      +          "contract": {
      +            "title": "Contract",
      +            "type": "string"
      +          },
      +          "decimals": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Decimals"
      +          },
      +          "error": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Error"
      +          },
      +          "price_usd": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Price Usd"
      +          },
      +          "raw": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Raw"
      +          },
      +          "symbol": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Symbol"
      +          },
      +          "usd": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "title": "Usd"
      +          }
      +        },
      +        "required": [
      +          "contract"
      +        ],
      +        "title": "SnapshotTokenBalance",
      +        "type": "object"
      +      },
      +      "title": "Token Balances",
      +      "type": "array"
      +    },
      +    "total_usd_value": {
      +      "title": "Total Usd Value",
      +      "type": "number"
      +    },
      +    "tx_count": {
      +      "title": "Tx Count",
      +      "type": "integer"
      +    },
      +    "wallet_address": {
      +      "title": "Wallet Address",
      +      "type": "string"
      +    },
      +    "x_payment_response": {
      +      "description": "Base64-encoded x402 settlement receipt (mirrors the X-PAYMENT-RESPONSE header). Only present when the call was paid with `x_payment`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "freshness_seconds",
      +    "cost_usdc",
      +    "routing",
      +    "wallet_address",
      +    "chain",
      +    "chain_id",
      +    "block_number",
      +    "native_token",
      +    "native_balance",
      +    "token_balances",
      +    "gas_price_gwei",
      +    "gas_price_wei",
      +    "total_usd_value",
      +    "tx_count",
      +    "is_contract",
      +    "calls_bundled"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / wallet / description
      Previous value: -"Your EVM wallet address (0x...). Unlocks the free tier (3 calls per wallet)."New value: +"Your EVM wallet address (0x...). Unlocks the free tier (3 free calls per wallet)."
  3. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though readOnlyHint=true is already present, the description adds valuable behavioral context: the default ERC-20 set is stablecoins + WETH and can be overridden, the default chain is Base, and there is a payment/quota model (x402 USDC/USDT on Base, 3 free calls per wallet). These are exactly the kind of non-obvious behaviors an agent needs to invoke the tool correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense: it front-loads the core purpose, then lists supported data, then chains, then payment terms. Every clause contributes a capability or constraint; there is no filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, multiple chains, an output schema, and a payment model, the description covers the conceptual return scope, chain coverage, default token behavior, and access/payment rules. The output schema handles detailed return shape, so nothing an agent needs for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description adds meaningful nuance beyond the schema: token_contracts defaults to USDC/USDT/DAI/WETH, chain defaults to Base, and passing a wallet address unlocks the free tier. This helps agents make smarter parameter choices without opening the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific resource (wallet snapshot) and a full inventory of what it bundles, so an agent can tell it apart from more focused alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that this tool replaces 5+ RPC calls, which clearly indicates when an agent should prefer it over fetching individual balances, gas, and token prices. It also tells the agent which chains are supported and how payment/free-call access works. It does not explicitly name sibling exclusions or say 'when not to use this', but the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.