cryptoapis-address-latest
OfficialQuery latest address data on Binance Smart Chain (BSC), including balance, transactions, token transfers (ERC-20, ERC-721, ERC-1155), internal transactions, and next nonce.
Query latest Bitcoin address data, including balance, transactions, and unconfirmed mempool transactions.
Query latest Bitcoin Cash address data, including balance, transactions, and unconfirmed mempool transactions.
Query latest Dash address data, including balance, transactions, and unconfirmed mempool transactions.
Query latest Dogecoin address data, including balance, transactions, and unconfirmed mempool transactions.
Query latest Ethereum address data, including balance, transactions, token transfers (ERC-20, ERC-721, ERC-1155), internal transactions, and next nonce.
Query latest Litecoin address data, including balance, transactions, and unconfirmed mempool transactions.
Query latest Optimism address data, including balance, transactions, token transfers, and internal transactions.
Query latest Polygon address data, including balance, transactions, token transfers, and internal transactions.
Query latest Ripple (XRP) address data, including balance, transactions, and next sequence number.
Query latest Solana address data, including SOL balance, transactions, and SPL tokens held by the address.
Query latest XRP (Ripple) address data, including balance, transactions, and next sequence number.
Query latest Zcash address data, including balance, transactions, and unconfirmed mempool transactions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cryptoapis-address-latestwhat's the balance of Bitcoin address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@cryptoapis-io/mcp-address-latest
MCP server for Crypto APIs Address Latest product. Query recent blockchain address data (last 14 days) without requiring address sync.
API Version: Compatible with Crypto APIs version 2024-12-12
Features
Query EVM addresses (Ethereum, Ethereum Classic, BSC, Polygon, Avalanche (C-Chain), Arbitrum, Base, Optimism, Tron)
Query UTXO addresses (Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Dash, Zcash)
Query Solana addresses (SOL balance, transactions, SPL tokens)
Query XRP/Ripple addresses (balance, transactions, sequence)
Query Kaspa addresses (balance, transactions)
Cursor-based pagination for large result sets
No address sync required (unlike Address History)
Related MCP server: onchain-forensics
Prerequisites
To use this MCP server, you need:
Generate an API key from your dashboard
Installation
npm install @cryptoapis-io/mcp-address-latestOr install all Crypto APIs MCP servers: npm install @cryptoapis-io/mcp
Usage
# Run with API key
npx @cryptoapis-io/mcp-address-latest --api-key YOUR_API_KEY
# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-address-latestClaude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"cryptoapis-address-latest": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-address-latest"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"cryptoapis-address-latest": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-address-latest"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-address-latest --api-key YOUR_API_KEYn8n
Start the server in HTTP mode:
npx @cryptoapis-io/mcp-address-latest --transport http --port 3000 --api-key YOUR_API_KEYIn your n8n workflow, add an AI Agent node
Under Tools, add an MCP Client Tool and set the URL to
http://localhost:3000/mcp
n8n in Docker:
localhostinside the container is not your machine. Start the server with--host 0.0.0.0andMCP_AUTH_TOKENset (see Exposing the server beyond localhost), usehttp://host.docker.internal:3000/mcpas the URL, and add anAuthorization: Bearer <token>header to the MCP Client Tool credential.
All servers default to port 3000. Use
--portto assign different ports when running multiple servers.
Available Tools
evm_address_latest
Query latest EVM address data.
Actions:
Action | Description |
| Get address balance |
| Get next available nonce. Supported: Ethereum (mainnet, sepolia), Ethereum Classic (mainnet, mordor), BSC (mainnet, testnet) |
| List address transactions |
| List token transfers (ERC-20, ERC-721, ERC-1155) |
| List internal transactions |
Supported Blockchains: ethereum, ethereum-classic, binance-smart-chain, polygon, avalanche (C-Chain), arbitrum, base, optimism, tron
utxo_address_latest
Query latest UTXO address data.
Actions:
Action | Description |
| Get address balance |
| List address transactions |
| List unconfirmed transactions (mempool); uses offset pagination |
Supported Blockchains: bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash
solana_address_latest
Query latest Solana address data.
Actions:
Action | Description |
| Get address SOL balance |
| List address transactions |
| List SPL tokens held by address |
Supported Networks: mainnet, devnet
xrp_address_latest
Query latest XRP (Ripple) address data.
Actions:
Action | Description |
| Get address XRP balance |
| List address transactions |
| Get next available sequence number |
Supported Networks: mainnet, testnet
kaspa_address_latest
Query latest Kaspa address data.
Actions:
Action | Description |
| Get address KAS balance |
| List address transactions |
Supported Networks: mainnet
Pagination
Most list endpoints use cursor-based pagination:
// Response
{
"items": [...],
"limit": 10,
"hasMore": true,
"nextStartingAfter": "abc123"
}Use nextStartingAfter value as startingAfter parameter in the next request.
Exception: list-unconfirmed-transactions (UTXO) uses offset pagination with limit, offset, and total fields.
Configuration
For stdio transport, provide the API key at startup via CLI argument or environment variable. For HTTP transport, it can also be provided per-request via x-api-key header (see HTTP API Key Modes).
Command-line argument (recommended):
npx @cryptoapis-io/mcp-address-latest --api-key {your_api_key}Environment variable:
export CRYPTOAPIS_API_KEY={your_api_key}
CLI Arguments
Argument | Description |
| Crypto APIs API key |
| Transport type: |
| HTTP host (default: |
| Bearer token callers must send ( |
| Comma-separated |
| HTTP port (default: |
| HTTP path (default: |
| Enable stateless mode for HTTP |
HTTP API Key Modes
When using HTTP transport, the server supports two API key modes:
With
--api-key: The key is used for all requests.x-api-keyrequest headers are ignored.Without
--api-key: Each request must include anx-api-keyheader with a valid Crypto APIs key. This enables hosting a public server where each user provides their own key.
# Per-request key mode (multi-tenant)
npx @cryptoapis-io/mcp-address-latest --transport http --port 3000
# Clients send x-api-key header with each requestExposing the server beyond localhost
HTTP mode listens on 127.0.0.1 by default, so only processes on the same machine can reach it.
To accept connections from other machines or containers, bind explicitly and protect the port:
# Startup-key mode: callers must present the token (the server refuses to start without one)
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)
npx @cryptoapis-io/mcp-address-latest --transport http --host 0.0.0.0 --port 3000 --api-key YOUR_API_KEY \
--allowed-hosts mcp.internal.example
# Clients send: Authorization: Bearer $MCP_AUTH_TOKEN
# Per-request key mode: no startup key, every request must carry the caller's own x-api-key
npx @cryptoapis-io/mcp-address-latest --transport http --host 0.0.0.0 --port 3000--allowed-hosts restricts the Host header (DNS rebinding protection) when not bound to loopback. Prefer MCP_AUTH_TOKEN over --auth-token: command-line arguments are visible in the process list.
Stdio transport always requires an API key at startup.
Important: API Key Required
Warning: Making requests without a valid API key — or with an incorrect one — may result in your IP being banned from the Crypto APIs ecosystem. Always ensure a valid API key is configured before starting any server.
Remote MCP Server
Crypto APIs provides an official remote MCP server with all tools available via HTTP Streamable transport at https://ai.cryptoapis.io/mcp. Pass your API key via the x-api-key header — no installation required.
License
MIT
Available Tools
6 toolsevm_address_latestA
Query latest EVM address data (last 14 days). Cursor pagination: use 'nextStartingAfter' from response as 'startingAfter'.
Actions & supported blockchains: • get-balance: ethereum, ethereum-classic, binance-smart-chain, tron, polygon, avalanche (C-Chain), arbitrum, base, optimism • get-next-nonce: ethereum, ethereum-classic, binance-smart-chain (mainnet, mordor, testnet, sepolia) • list-transactions: ethereum, ethereum-classic, binance-smart-chain, arbitrum, polygon, avalanche (C-Chain), base, optimism, tron • list-token-transfers: ethereum, ethereum-classic, binance-smart-chain, tron, polygon, avalanche (C-Chain), arbitrum, base, optimism • list-internal-transactions: ethereum, ethereum-classic, binance-smart-chain, polygon, avalanche (C-Chain), arbitrum, base, optimism, tron
Blockchain → Networks: • ethereum: mainnet, sepolia • ethereum-classic: mainnet, mordor • binance-smart-chain: mainnet, testnet • polygon: mainnet, amoy • tron: mainnet, nile • avalanche (C-Chain): mainnet, fuji • arbitrum: mainnet, sepolia • base: mainnet, sepolia • optimism: mainnet, sepolia
Credits by action (source: OpenAPI): • get-balance: arbitrum 48, avalanche 54, base 36, binance-smart-chain 75, ethereum 30, ethereum-classic 39, optimism 42, polygon 60, tron 45 • get-next-nonce: arbitrum 32, avalanche 36, base 24, binance-smart-chain 50, ethereum 20, ethereum-classic 26, optimism 28, polygon 40, tron 30 • list-internal-transactions: arbitrum 512, avalanche 576, base 384, binance-smart-chain 800, ethereum 320, ethereum-classic 416, optimism 448, polygon 640, tron 480 • list-token-transfers: arbitrum 352, avalanche 396, base 264, binance-smart-chain 550, ethereum 220, ethereum-classic 286, optimism 308, polygon 440, tron 330 • list-transactions: arbitrum 192, avalanche 216, base 144, binance-smart-chain 300, ethereum 120, ethereum-classic 156, optimism 168, polygon 240, tron 180
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform | |
| address | Yes | Address to query | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| blockchain | Yes | Blockchain protocol | |
| sortingOrder | No | Sort order: ascending (oldest first) or descending (newest first) | |
| startingAfter | No | Pagination cursor - use nextStartingAfter from previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the 14-day data window, the cursor pagination contract (nextStartingAfter -> startingAfter), per-action credit costs, and the fact that actual credits appear in response headers. It omits auth/permission requirements and failure behavior, but the cost and pagination disclosures are genuinely valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and pagination contract are front-loaded in the first two sentences, and the bulky detail is compressed into readable bullet tables. The credit table is long and explicitly flagged as indicative and volatile, but it is decision-relevant cost data rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter composite read tool with no annotations and no output schema, the description covers the essentials: valid combinations per action, pagination, and cost. It does not describe return shapes per action, but for read-only query actions with a response-header cost signal, an agent has enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value the schema cannot: the valid action-to-blockchain and blockchain-to-network combinations, which the flat enums do not express. It also restates the pagination cursor usage, reinforcing the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Query) and resource (latest EVM address data) with an explicit scope of last 14 days, then enumerates the five concrete actions. The 'EVM' qualifier cleanly separates it from the sibling utxo/solana/xrp/kaspa address tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action/blockchain/network matrices implicitly constrain valid usage, which is helpful routing information. However, there is no explicit when-to-use or when-not-to-use guidance, and no direct differentiation from the sibling *_address_latest tools beyond the blockchain family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kaspa_address_latestA
Query latest Kaspa address data. Cursor pagination: use 'nextStartingAfter' from response as 'startingAfter'.
Actions: • get-balance: Get address KAS balance • list-transactions: Get address transactions
Networks: mainnet (only)
Credits by action (source: OpenAPI): • get-balance: kaspa 918 • list-transactions: kaspa 918
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform: get-balance, list-transactions | |
| address | Yes | Kaspa address to query | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name: mainnet (only mainnet available) | |
| sortingOrder | No | Sort order: ascending (oldest first) or descending (newest first) | |
| startingAfter | No | Pagination cursor - use nextStartingAfter from previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it discloses cursor-pagination mechanics (pass nextStartingAfter as startingAfter), the mainnet-only restriction, and cost behavior including per-action credit estimates and the caveat that real spend is returned in response headers. It omits auth requirements and any note on which action pagination applies to, but the disclosed operational traits go well beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the one non-obvious usage rule (pagination), then cleanly sectioned bullets for actions, networks, and credits. The credits block is somewhat boilerplate-heavy with two identical 918 figures plus a disclaimer, which is the only place the text stops earning its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, two-action tool with full schema coverage but no annotations and no output schema, the description supplies the essential missing context: valid actions, valid network, pagination handoff, and cost profile. The one gap is that it never says which action returns the nextStartingAfter cursor, leaving the agent to infer it applies to list-transactions rather than get-balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents address, network, action, limit, sortingOrder, startingAfter, and context. The description's pagination sentence essentially restates the startingAfter schema text and the action bullets restate the action enum, so it adds little beyond the structured fields — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Query latest Kaspa address data") and enumerates the two concrete actions, get-balance and list-transactions, so an agent knows exactly what it can do. The chain name in the tool name plus description distinguishes it from evm_address_latest, solana_address_latest, xrp_address_latest, and utxo_address_latest, though the text itself never explicitly contrasts with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the action list and the "mainnet (only)" note tell the agent the valid modes, and the per-chain tool name implies this is the Kaspa-specific entry point. There is no explicit when-to-use/when-not guidance or reference to an alternative (e.g., a generic address tool) that would push this above minimum viability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solana_address_latestA
Query latest Solana address data (last 14 days). Cursor pagination: use 'nextStartingAfter' from response as 'startingAfter'.
Actions: • get-balance: Get address SOL balance • list-transactions: Get address transactions • list-tokens: Get SPL tokens held by address
Networks: mainnet, devnet
Credits by action (source: OpenAPI): • get-balance: solana 75 • list-tokens: solana 120 • list-transactions: solana 90
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform: get-balance, list-transactions, list-tokens | |
| address | Yes | Solana address to query | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name: mainnet or devnet | |
| sortingOrder | No | Sort order: ascending (oldest first) or descending (newest first) | |
| startingAfter | No | Pagination cursor - use nextStartingAfter from previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses the 14-day data window, the cursor-pagination contract (feed nextStartingAfter back as startingAfter), supported networks, and per-action credit costs with a caveat that actual spend is in response headers. It does not address auth/permission requirements or rate limits, but the read-only query nature is clear from context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded (scope + pagination mechanics first, then actions, networks, credits) and the bullet structure is scannable. The credit table is slightly verbose but is clearly delineated and relevant to cost-aware invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, multi-action tool with no annotations and no output schema, the description covers the important ground: action semantics, networks, pagination, and cost. Minor gaps remain around limit/sort interactions and response shape, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the enum labels by explaining what each action returns (SOL balance, transactions, SPL tokens held) and by specifying the exact pagination round-trip for startingAfter. It leaves limit, sortingOrder, and context unexplained, but those are fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Query latest Solana address data') scoped to a 14-day window and enumerates the three actions, so an agent knows exactly what class of data it returns. It names the chain (Solana), which implicitly separates it from the evm/utxo/xrp/kaspa siblings, but it never explicitly says 'use this for Solana addresses instead of evm_address_latest'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list and the 14-day window imply when each mode applies, and the pagination note tells the agent how to iterate, but there is no explicit when-to-use/when-not guidance or routing to sibling tools. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_infoA
CryptoAPIs reference documentation — no API call, no credits consumed.
Actions: • blockchains — Supported blockchains, networks, products per chain, denominations, fiat currencies • errors — Complete error code table (HTTP status, error code, message) • credits — Credit charging structure, cost multipliers per blockchain, monitoring & operations taxes (xPub, synced addresses, blockchain events), pay-as-you-go • callbacks — Webhook mechanics: URL requirements, retry strategy (5 retries, exponential backoff), HMAC security, idempotency • limits — Throughput soft/hard limits per plan, 2.1x penalty multiplier, rate limiting behavior
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Reference topic to retrieve | |
| context | No | Optional context for the request - echoed back in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and explicitly notes 'no API call, no credits consumed,' which is key behavioral information. It also discloses detailed content such as retry strategy, HMAC security, and rate-limit penalty multipliers, going well beyond a generic 'returns info' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the critical 'no API call, no credits consumed' caveat and uses a compact bullet list. Each bullet covers a distinct action without wasted prose, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reference-documentation tool with no output schema and no annotations, this description is complete enough: it defines all five actions and gives sufficient detail about their content. It also clarifies side effects (none) and cost implications (none), covering the main contextual risks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant meaning by explaining each allowed action enum value in detail (e.g., callbacks covers URL requirements, 5 retries, HMAC). This transforms enum names into actionable context and compensates fully beyond the schema's short parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states this is CryptoAPIs reference documentation with no API call or credits consumed, and enumerates five specific topics (blockchains, errors, credits, callbacks, limits). This clearly identifies it as an informational tool distinct from domain siblings like aml.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bulleted actions give clear contexts for when to use the tool, such as looking up error codes, credit structures, callback mechanics, or rate limits. It does not explicitly name alternatives or exclusion conditions, so it stops short of a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
utxo_address_latestA
Query latest UTXO address data (last 14 days). • get-balance: no pagination • list-transactions: cursor pagination - use 'nextStartingAfter' from response as 'startingAfter' • list-unconfirmed-transactions: offset pagination - use 'limit' and 'offset' (lists unconfirmed/mempool transactions)
Actions & supported blockchains: • get-balance: bitcoin, bitcoin-cash, litecoin, dash, dogecoin, zcash • list-transactions: bitcoin, bitcoin-cash, dash, dogecoin, litecoin, zcash • list-unconfirmed-transactions: bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash
Blockchain → Networks: • bitcoin: mainnet, testnet • bitcoin-cash: mainnet, testnet • litecoin: mainnet, testnet • dogecoin: mainnet, testnet • dash: mainnet, testnet • zcash: mainnet, testnet
Credits by action (source: OpenAPI): • get-balance: bitcoin 510, bitcoin-cash 612, dash 561, dogecoin 561, litecoin 561, zcash 663 • list-transactions: bitcoin 110, bitcoin-cash 132, dash 121, dogecoin 121, litecoin 121, zcash 143 • list-unconfirmed-transactions: bitcoin 110, bitcoin-cash 132, dash 121, dogecoin 121, litecoin 121, zcash 143
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform: get-balance, list-transactions, list-unconfirmed-transactions | |
| offset | No | Pagination offset | |
| address | Yes | Address to query | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name | |
| blockchain | Yes | Blockchain protocol | |
| sortingOrder | No | Sort order: ascending (oldest first) or descending (newest first) | |
| startingAfter | No | Pagination cursor - use nextStartingAfter from previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the 14-day data window, per-action pagination mechanics (cursor via 'nextStartingAfter' vs. limit/offset), and per-action credit costs. It stops short of describing return payloads, auth, or rate-limit behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and well-bulleted, but the three near-identical blockchain lists and the full per-blockchain credit table are repetitive and inflate the description substantially. Structure is good; economy is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, no-annotation, no-output-schema tool, the description covers actions, supported chains, networks, pagination, and cost. The remaining gap is that it never characterizes what each action returns (balance value vs. transaction list fields), which a reader must infer from the action names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds conditional semantics the schema cannot: 'startingAfter' only applies to list-transactions (fed from 'nextStartingAfter'), while 'limit'/'offset' apply to list-unconfirmed-transactions. This conditional binding is genuine added meaning beyond the flat schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Query latest UTXO address data (last 14 days)', then enumerates the three concrete actions. The UTXO framing implicitly separates it from evm/solana/xrp/kaspa siblings, but the description never names them explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear per-action routing (which pagination scheme applies to each action, and which blockchains each action supports), which is real when-to-use guidance. It lacks any explicit when-NOT-to-use or sibling alternative selection rules, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xrp_address_latestA
Query latest XRP (Ripple) address data. Cursor pagination: use 'nextStartingAfter' from response as 'startingAfter'.
Actions: • get-balance: Get address XRP balance • list-transactions: Get address transactions • get-next-sequence: Get next available sequence number for transactions
Networks: mainnet, testnet
Credits by action (source: OpenAPI): • get-balance: xrp 20 • get-next-sequence: xrp 20 • list-transactions: xrp 110
Credits are indicative only and may change at any time. The actual credits spent for each API request are returned in the response headers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (max 50) | |
| action | Yes | Action to perform: get-balance, list-transactions, get-next-sequence | |
| address | Yes | XRP address to query | |
| context | No | Optional context for the request - echoed back in response | |
| network | Yes | Network name: mainnet or testnet | |
| sortingOrder | No | Sort order: ascending (oldest first) or descending (newest first) | |
| startingAfter | No | Pagination cursor - use nextStartingAfter from previous response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses pagination behavior, supported networks, and per-action credit costs, including the caveat that credits are indicative and actual spend appears in response headers. It does not state auth requirements, rate limits, or explicitly confirm read-only behavior, so significant gaps remain for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by pagination guidance, action descriptions, networks, and credits in a readable bulleted structure. Most sentences earn their place, though the credit cost block and disclaimer add length that could be seen as supplementary rather than essential to invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a multi-action query tool with no output schema and no annotations, the description supplies the action meanings, networks, pagination cursor mechanics, and credit model. That is enough for correct invocation, though it stops short of describing authentication, error behavior, or return shapes beyond the implied action outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining what each action enum value does (balance, transactions, next sequence) and by giving concrete pagination guidance. Credits per action add further semantic context. It does not elaborate on limit, sortingOrder, or context beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Query latest XRP (Ripple) address data.' It then enumerates the three actions, immediately telling the agent what operations are available. The XRP/Ripple naming clearly differentiates it from sibling chain-specific tools like evm_address_latest and solana_address_latest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list gives clear context for which operation to choose, with one-line explanations for get-balance, list-transactions, and get-next-sequence. Networks are also named. However, there are no explicit when-not-to-use or alternative-selection rules beyond the implied chain distinction from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.4.0- First observed
evm_address_latest - First observed
kaspa_address_latest - First observed
solana_address_latest - First observed
system_info - First observed
utxo_address_latest - First observed
xrp_address_latest
TDQS
Scored across 6 tools
Each tool maps cleanly to a distinct blockchain family (EVM, UTXO, Solana, XRP, Kaspa) plus a reference tool, and the descriptions explicitly enumerate supported chains so overlaps are avoided. The only friction is that an agent must know which family a given chain belongs to before picking a tool (e.g. tron lives under the EVM tool), which is a mild mapping burden rather than true ambiguity.
Five tools follow an identical <family>_address_latest pattern, which is highly predictable and readable. system_info is the sole deviation, though it is a genuinely different kind of tool (static reference) so the break is defensible.
Six tools is well-scoped for an 'address latest data' server, with one tool per chain family plus a docs tool. Each tool earns its place, and consolidating the per-action operations (get-balance, list-transactions, etc.) into action parameters keeps the surface compact rather than exploding into dozens of near-duplicate tools.
Coverage is solid and reasonably symmetric: every family offers balance plus transaction listing, with family-specific extras (next-nonce, internal transactions, token transfers, unconfirmed txs, next-sequence). Gaps are minor — Kaspa is thin (balance + transactions only), there is no address validation/metadata tool, and webhook/callback management is described in system_info but has no corresponding tool.
Maintenance
Related MCP Connectors
Paid read-only reports for 1–5 EVM addresses across four networks; 0.02 supported stablecoin direct.
Blockchain data across 100+ chains: token prices, NFTs, transfers, simulation, traces, Solana DAS
Multi-chain wallet intelligence: balances, transactions, ENS, OFAC screening across 7 chains.
Query real-time blockchain token data across EVM and Solana networks. Access token balances, transfers, prices, holders, NFT ownership, DEX swaps, and liquidity pools. Supports Ethereum, Base, Arbitrum, BSC, Polygon, Solana, and more.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceProvides tools for querying onchain data across 12+ blockchain networks, including token balances, transaction analysis, and smart contract security auditing. It enables users to interact with multiple EVM-compatible chains and perform deep contract evaluations through natural language interfaces.1-
- AlicenseNot gradedqualityDmaintenanceEnables blockchain forensics across multiple chains (Base, Ethereum, Arbitrum, Optimism, Polygon) with tools to trace transactions, cluster addresses, detect anomalies, and identify mixer usage.MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying on-chain data (balances, transactions, token transfers, blocks) across 20+ EVM chains through natural language.150 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables querying blockchain wallet token balances, net worth, token holders, and decoded transaction history across EVM chains via the Moralis Web3 Data API.259 npmMIT