Skip to main content
Glama

Comparing wallet connections

address_counterparties_batch
Read-only

Get the top counterparties of up to 10 wallet addresses in one call.

Every wallet gets its own counterparty list. The lists are NOT added together: the answer has one table for each wallet.

Use this tool to compare wallets — counterparties that two wallets share, a group of wallets that sends to the same CEX deposit address, or one fund with many wallets. For one wallet, or for an entity name, use address_counterparties.

Limits:

  • Maximum 10 distinct wallet addresses for each call. Repeated addresses are removed.

  • Maximum 90 days for the date range. A wider range is rejected — make more than one call.

  • One chain family for each call: every address must be EVM, or every address must be Solana, and so on. Do not mix families.

Name a chain (for example ethereum) to read that chain only. Leave chain out to read every chain of the addresses' family at one time — then a counterparty met on more than one chain gets one row for each chain, so do not add those rows together.

Sorting Options (all fields support "ASC"/"DESC"): Available for sorting: total_volume_usd, volume_in_usd, volume_out_usd, interaction_count. The sort is applied inside each wallet's block.

Example (every key below is the name the request accepts, and the addresses are real — copy this shape as it stands): { "walletAddresses": [ "0x28c6c06298d514db089934071355e5743bf21d60", "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" ], "chain": "ethereum", "timeRange": {"from": "30D_AGO", "to": "NOW"}, "sourceInput": "Combined", "orderBy": "total_volume_usd", "orderByDirection": "DESC", "perPage": 100 }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYesComplete request for batch address counterparties (flattened). Wallet addresses only. Use AddressCounterpartiesRequest for one wallet or for an entity name.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable behavioral context beyond that: each wallet gets its own list (not summed), duplicate addresses are removed, sorting applies inside each wallet's block, and with 'all' chains, a counterparty appears per chain so rows should not be added together. It also warns that a wider date range is rejected, preparing the agent for error handling. No contradiction with annotations.

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

Conciseness4/5

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

The description is long but well-structured: it front-loads the purpose, then breaks down usage, limits, chain behavior, sorting, and ends with a complete example. Each sentence earns its place; there is no filler. It could be slightly tightened (e.g., repeating the 'not added together' point), but the organization is clear and aids comprehension.

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?

Given the tool's complexity (nested filters, multiple limits, sorting options, pagination), the description covers all critical aspects: the exact call shape via example, limits with error behavior, chain family rules, sorting semantics, and the distinction from the single-wallet sibling. An output schema exists, so return-value details are not required. Nothing an agent needs to invoke it correctly 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 description coverage is 100% (the input schema contains extensive descriptions for every parameter). However, the description adds meaning beyond the schema: it provides a concrete example JSON, clarifies that walletAddresses are deduplicated, explains the perPage must cover all wallets (rows stay together), and emphasizes the chain family restriction. These extras go beyond what the schema states, so it earns a 4 rather than the baseline 3.

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 states a specific verb ('Get') and resource ('top counterparties of up to 10 wallet addresses'), and immediately distinguishes it from the sibling tool address_counterparties by clarifying that this is for comparing multiple wallets, not single wallets or entity names. This makes the tool's purpose unmistakable.

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

Usage Guidelines5/5

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

It explicitly tells the agent when to use this tool (comparing wallets, shared counterparties, CEX deposit addresses, fund with many wallets) and when not to (single wallet or entity name → use address_counterparties). It also provides concrete limits (max 10 addresses, 90-day range, single chain family) and explains consequences of exceeding them, leaving no ambiguity about invocation conditions.

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.

Resources