Arbitrum Trace Next Hop
arbitrum_trace_next_hopCONVERGENCE primitive for Arbitrum (arb, ARB, Arbitrum One, L2) tracing: aggregate an
address's OUTGOING flow by counterparty (Σ amount, count, first/last seen), largest
first. Answers "where did the bulk of the funds go" in one shot. Narrow with currency
(recommended), after_time (= when funds reached this hop), min_amount. Pass the top
counterparties to labels_for_addresses to spot a CEX / mixer / bridge (= the
destination, stop there). One row per (counterparty, TOKEN); identify a token by
Contract, not Currency. On a very high-traffic address (an exchange or bridge hub)
this aggregates a lot of history and can take tens of seconds — narrow it with
contract or currency to one token, and with after_time to one period, which is far
faster than one wide call.
NOT edges for a diagram → use arbitrum_flow_edges.
NOT an automatic walk along the largest edge → use arbitrum_trace_dominant_path.
Amounts here are TOKEN UNITS, never USD - no USD value is available in this
data, so there is no usd filter and totals for different tokens must not be
compared or added together. For a ranking you can reason about, pin ONE token
with contract, or bound the range with min_amount / max_amount.
A transaction's own transfer is TOP-LEVEL, not internal, and is always counted.
ETH moved by contract code deeper inside a transaction (an internal
transfer) is left out unless you pass include_internal=1.
Returns up to top_n rows (default 10, at most 10000), largest Total_Amount first; no rows = nothing matched.
Symbol_NonAscii = 1 flags a symbol that is not plain ASCII: normal for CJK / emoji names, also how a look-alike imitates a major token.
For the full labelled list in USD, totals by label type, or a set of addresses → counterparties.
Each row: Counterparty, Currency, Symbol_NonAscii, Contract, Total_Amount, Transfers, First_Seen, Last_Seen.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"address": "<address>"
},
"name": "arbitrum_trace_next_hop"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | Max counterparties (largest first). At most 10000. | |
| format | No | Shape of the returned data. "rows" (the default) returns one item per row. "columnar" returns a single item, {"columns":[...],"rows":[[value,...],...]}, naming the columns once and listing each row's values in that order; it is more compact for large results and carries the same values. | rows |
| address | Yes | Wallet/contract address, 0x-hex (case-insensitive). | |
| contract | No | Restrict to ONE exact token by its contract address (0x-hex, case-insensitive) — the reliable way to pin a token, since a currency symbol also matches clone tokens. Empty = no token filter. | |
| currency | No | Restrict to one currency symbol (recommended to keep the trace clean). Empty = all. A symbol is NOT unique — clone/scam tokens reuse "USDC"/"USDT" and their broken decimals can make a fake token outrank the real one, so check the returned contract before trusting the ranking. No backslashes. | |
| after_time | No | Only flow at/after this UTC time. Empty = no lower bound. Format: YYYY-MM-DD, YYYY-MM-DD HH:MM[:SS], ISO-8601 like 2026-09-20T00:00:00Z (fraction or +02:00 offset allowed) or 10-digit unix seconds. | |
| max_amount | No | Maximum total amount for a counterparty to be returned. 0 (default) = no upper bound. Amounts are in each token's own units and are NOT comparable across tokens, so a token with inflated or wrong decimals can total billions of units and push the real counterparties off the ranking - cap it here, or pin one token with contract. | |
| min_amount | No | Minimum total amount for a counterparty to be returned. 0 = all. | |
| before_time | No | Only flow strictly before this UTC time; with after_time it bounds one period. Empty = up to now. Format: YYYY-MM-DD, YYYY-MM-DD HH:MM[:SS], ISO-8601 like 2026-09-20T00:00:00Z (fraction or +02:00 offset allowed) or 10-digit unix seconds. | |
| include_internal | No | 0 (default) = top-level transfers only - the transfer a transaction makes itself, plus token transfers. 1 = also count ETH moved by contract code deeper inside a transaction (an internal transfer, for example through a batch sender or a withdrawal contract). Only 0 or 1. |