Base Flow Edges
base_flow_edgesMONEYFLOW GRAPH EDGES out of a Base (base, L2, Coinbase L2) address: one row per
counterparty — Source → Target, total Amount, Currency.
NOT choosing which counterparty to follow next → use base_trace_next_hop.
Building block for a MoneyFlow
DIAGRAM. HOW TO DRAW: call this per address/hop, collect the edges, and emit a Mermaid
graph LR (one node per address; each edge labeled with Amount+Currency). Pass the
Target addresses to labels_for_addresses to flag CEX / mixer / bridge nodes and STOP
expanding those branches. Pass a currency to avoid spam-token noise; call WITHOUT a
currency filter to spot a token → USDT off-ramp at the edge. For raw per-transfer rows
use base_transfers_out. Each edge carries the token Contract — pin one exact token
with the contract param. 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 to make it far faster.
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.
Symbol_NonAscii = 1 flags a symbol that is not plain ASCII: normal for CJK /
emoji names, but also how a scam token impersonates a major one with Cyrillic or
Greek look-alike letters - never treat such a token as the asset it resembles.
In the top arrays it is the symbol_nonascii field of each entry.
Bound one period with after_time / before_time. First_Seen / Last_Seen give each
edge's first and last transfer.
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.
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": "base_flow_edges"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max edges (largest amount 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 | Source 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 (e.g. "ETH", "USDT") — recommended. Empty = all. A symbol is NOT unique — look-alike clones share it, so confirm the token via the returned Contract or pin one with contract. No backslashes. | |
| after_time | No | Only transfers at/after this UTC time (e.g. "2026-06-01"). Empty = no lower bound. | |
| max_amount | No | Maximum total amount for an edge 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 edges off the ranking - cap it here, or pin one token with contract. | |
| min_amount | No | Minimum total amount for an edge to be returned. 0 = all. | |
| before_time | No | Only transfers strictly before this UTC time. 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. |