Skip to main content
GET

Overview

Returns flow statistics for the wallet over three trailing windows, summed across every chain it has used. It is the on-chain counterpart of a bank-statement cash-flow analysis: how much arrived and left, from how many counterparties, how regularly, and how fast the balance turns over. Pair it with Balance History, which gives the stock at four instants; this endpoint gives the movement between them. Cost: 8 Cred Units per request.

How transfers are counted

Every native, internal and ERC-20 transfer touching the wallet is valued in USD at that day’s price and sorted into one of three kinds:
Lending receipt and debt tokens (aTokens, variable-debt tokens, Comet balances) are positions, not funds, and are ignored. Transfers of tokens without a market price are ignored and counted in unpriced_transfers. This is also what keeps airdrop spam out of the totals.

Path Parameters

string
required
Ethereum address or ENS name (e.g., vitalik.eth or 0x742d35Cc6634C0532925a3b844Bc454e4438f44e)

Response

string
The resolved Ethereum address (checksummed)
string
ISO 8601 timestamp when the statistics were computed; every window ends here
string
complete when every chain’s transfers were read, otherwise partial
integer[]
Present only when coverage is partial: chains whose transfers could not be read
integer
Transfers ignored because their token has no market price
object
Per chain read: transfers, the number of transfer legs found in the longest window, and complete, false when the chain had more rows than one read returns and the window predates the oldest row
array
One object per window, 30, 90 and 365 days
integer / string / string
The window length and its date range
number
External funds in, out, and the difference
integer
External transfers in and out
number
Borrows and withdrawals received from lending protocols; supplies and repayments sent to them
number / integer
Value sold in conversions (the outgoing side) and the number of converting transactions
integer
Days with at least one priced transfer of any kind
number
External inflow in stablecoins
integer
How many of the window’s 30-day periods saw any stablecoin inflow, and how many periods the window has
number | null
Coefficient of variation of stablecoin inflow across the periods. 0 is perfectly steady; above 1 is lumpy. null for the 30-day window or when there was none
integer
Distinct external senders and recipients
number | null
Share of external inflow from the single largest sender. null when there was no inflow
number
The largest single external transfer in each direction
integer | null
Days since the most recent external inflow inside the window; null when there was none
number | null
Mean of the balance-history points (assets held plus lending deposits) that fall inside the window. The 365-day window uses the same points as the 90-day one
number | null
(inflow_usd + outflow_usd) / average_balance_usd. Below 1 per quarter reads as a treasury; tens read as active trading
boolean
false when some chain’s history could not be read back far enough to cover this window

Reading the numbers

  • Income regularity: stablecoin_inflow_periods equal to periods with a low stablecoin_inflow_cv is salary-like; a single large period is a one-off.
  • Dependence: top_counterparty_inflow_share near 1 with counterparties_in of 1 means one source funds the wallet.
  • Drain: negative net_flow_usd with a large largest_outflow_usd relative to average_balance_usd, especially in the 30-day window against a positive 365-day one.
  • Debt service: lending_outflow_usd against inflow_usd shows whether repayments are funded by income.

Known limits

  • Transfers between a user’s own wallets read as external flows.
  • Gas is not counted as an outflow.
  • Celo transfers are read, but only its native coin and CoinGecko-listed tokens are priced. Robinhood Chain tokens other than ETH are unpriced.
  • A chain with more than 10,000 rows of one kind in the window is read from the newest row backwards; windows the read did not reach are marked complete: false.

Performance

  • Response Time: 5–20 seconds on a cold wallet (three transfer feeds per active chain, plus one price series per token); well under a second afterwards
  • Caching: transfers per chain for an hour, price series for a day, the response for 5 minutes
  • Not billed: a 503 (no provider could answer) consumes no Cred Units