get_wallet_graph_walk
Bounded walk over the indexed settlement graph of one stablecoin from one wallet on one chain: payer<->recipient hops with value-weighted scores, entity-aware node keys, a stop at known services and sanctioned-node markers. Use it to explain who an address settles with and through which hops. Not for a verdict: get_address_risk. Not for the taint class or haircut: get_address_exposure. Not for a flat list of transfers with tx hashes: get_recent_transactions. token is required and must be a stablecoin enabled on that chain (a refusal names them); hops=0 with stop_on_sanctioned=true is the cheapest check of the subject itself; subjects over the degree gate (~50k edge-rows) return hop 1 only with frontier_truncated=true. Heavy read: under load it answers busy or timeout — retry with backoff, a narrower window or a lower frontier_cap. No auth; 1200 requests/min shared by all tools. An explainability primitive, not a detector verdict, identity/control assertion, AML decision or legal advice. window_from present means the answer was built from that date, the edge-grain horizon, not from the start of the requested window; the default window all, 90d and 1y included (/v1/methodology edge_grain_horizon). When window_from is present, read the graph as covering that span only — do not treat the absence of a counterparty, a path or a sanctioned node as evidence about anything before that date. volume on nodes is the token's raw minor units (divide by 10^decimals); volume_usd6 is the same amount in USD with 6 decimals at peg 1. On Solana (chain -1) the answer carries coverage_status for the subject address only, never for its counterparties: pending — its history is still being filled, so an empty or small answer is not final; partial — filled to a documented bound. The walk shows a finished fill after the next Solana rollup pass (about 10 minutes), and never shows history older than window_from. This read never starts a fill, so pending can also mean none was asked for yet: one compliance read of the address asks for it. A Solana answer without coverage_status could not read it in time — treat it as pending. On Solana (chain -1) the edge grain of 2026-07-20..2026-09-14 is incomplete: those days hold part of their transfers or none, because their raw rows were offloaded before a fix reached production on 2026-09-17; they are not restored, and answers do not mark them (decision of 2026-09-17). Solana's grain is never trimmed, so there the horizon that window_from reports is not where retained data ends: once window_from is later than 2026-09-14 the answer holds none of those days. An answer that reaches them — window_from on or before 2026-09-14, or no window_from over a window that includes them — counts them as floors: at least this much, never the whole, and a counterparty, path or sanctioned node missing from those days is not evidence that there was none.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hops | No | Max graph hops, 0..4 (default 2) | |
| chain | No | Chain, in any of four spellings: the id (8453 Base — default for 0x addresses; a T… address defaults to Tron and a base58 one to Solana, 1 Ethereum, 10 Optimism, 42161 Arbitrum, 56 BNB Chain, 728126428 Tron, -1 Solana), the same id as a string, the network slug (base, ethereum, optimism, arbitrum, bnb-chain, tron, solana) or its CAIP-2 id (eip155:1, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). Surrounding whitespace, a leading + and leading zeros are ignored, a JSON number counts by its value (1.0 is 1), slugs and CAIP-2 ids match in any letter case, and an empty, blank or null chain is no chain at all. Anything else (hex, a decimal fraction, a zero-padded CAIP-2 reference) is refused, and so is a network this scanner knows but does not index — by name, never with an empty clean verdict. The answer is about ONE chain: chain_id says which, chain_source says how it was chosen (explicit|default|address_form) and chains_with_data lists where else this address has data — read it before concluding, then ask again with chain set | |
| token | Yes | Token symbol — REQUIRED, the server does not guess it (e.g. USDT). The asset hub page for a stablecoin names its own token. | |
| window | No | Time window: 1h|24h|7d|30d|90d|1y|all (default all) | |
| address | Yes | Wallet address. The address in its network's own spelling: 0x… for EVM chains, T… for Tron, base58 for Solana. The answer writes it in the spelling of chain_id (address) and echoes what you sent (requested_address); address_respelled true means your spelling belongs to another kind of chain than chain_id (a T… address asked about an EVM chain, a 0x… address asked about Tron) — answered about the same bytes there, not refused, and the same owner only for a plain key account. | |
| frontier_cap | No | Per-hop frontier cap, 1..500 (default 500) | |
| stop_at_attributed | No | Stop expanding known services/facilitators (default true) | |
| stop_on_sanctioned | No | Stop once a sanctioned node is reached (default false) |