Farbeam
Docs / Data

Wallet data

Two endpoints read an address directly from the chain, and one reads a transaction. They do not depend on the transfer index, and they work for addresses that have no label and no stored rows. You can use them from the wallet explorer or the transaction lookup too.

EndpointCostCacheReads
Wallet overview3 units30 sBalances on each chain of the family
Wallet activity3 units60 s on EVM, none on SolanaRecent transfers on one chain
Transaction lookup2 unitsNoneOne transaction

#Wallet overview on EVM

An EVM address is read on all six EVM chains at once, in one batch per chain:

  • eth_getBalance gives the native balance.
  • eth_getTransactionCount gives tx_sent, the account nonce.
  • eth_getCode gives is_contract.
  • balanceOf is called for each curated token. Only non-zero balances are returned.

This excerpt is from GET /wallets/0x28C6c06298d514Db089934071355E5743bf21d60 on 2026-11-04 UTC.

JSON
{
  "address": "0x28C6c06298d514Db089934071355E5743bf21d60",
  "family": "evm",
  "label": { "name": "Binance 14", "type": "exchange", "address": "0x28C6c06298d514Db089934071355E5743bf21d60", "chains": ["ethereum"] },
  "chains": [
    {
      "chain": "ethereum",
      "ok": true,
      "native": { "symbol": "ETH", "amount": 0.8033193330768161, "usd": 1946.85 },
      "tx_sent": 18915339,
      "is_contract": false,
      "tokens": [
        { "symbol": "USDT", "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "amount": 1352017.937959, "usd": 1351209.43 }
      ],
      "tracked_usd": 1409953.33
    }
  ],
  "indexed_transfers": [],
  "partial": false
}

If a chain fails, that entry reads {"chain":"base","ok":false,"error":"upstream_unavailable"}, and partial is true. If all six fail, the response is 502.

#Wallet overview on Solana

A Solana address returns one chain entry and recent signatures.

FieldMeaning
nativeSOL balance from getBalance
tokens[]Top 60 by USD value, sorted
token_countAll fungible tokens found, before the cut to 60
token_sourcehelius-das or getTokenAccountsByOwner
tracked_usdValue of tokens with a known price, plus SOL
recent_signatures[]Last 15, with signature, slot, ts and success

With Helius, tokens come from getAssetsByOwner, up to 100 assets, with Helius price data where it exists. On fallback they come from getTokenAccountsByOwner, which covers the classic SPL Token program only, and only curated tokens get a USD value. Check token_source, because the two can differ for the same wallet. usd can be null, and symbol can be null for tokens with no metadata.

Anyone can send a token to any wallet. Unrecognized tokens in a balance list may be spam. A token with usd: null is common, and the list does not vouch for any token.

#Stored rows on the overview

indexed_transfers holds up to 25 stored rows that touch the address, newest first, across all chains. It is empty if nothing qualified in the last 7 days. An empty list does not mean the wallet was idle. See indexing. ts in this list is integer milliseconds, not an ISO string.

#Wallet activity on EVM

GET /wallets/{address}/activity?chain=base reads eth_getLogs for curated tokens where the address is the sender or the recipient.

FieldMeaning
blocks_scannedSize of the range that was read
from_block, to_blockThe range
scopeTransfers of the curated token list only.
items[]Up to 40 rows, newest first
items[].directionin or out
items[].amountToken amount, or null when decimals are unknown

The range starts at 5,000 blocks. Public RPCs cap log ranges, so on an error the service tries 1,000, then 200, then 40 blocks. **Read blocks_scanned.** On 2026-11-04 UTC, a request for a Binance address on Ethereum returned blocks_scanned: 1000, or about 3.5 hours, and items: []. An empty list covers only that range.

Chain5,000 blocks is roughly
Ethereum17 hours
Base, OP Mainnet, Polygon2 to 3 hours
BNB Chain40 minutes
Arbitrum One25 minutes

These are estimates from the block rates measured on 2026-11-04 UTC. Activity has no size threshold. It returns small transfers too, unlike the index.

#Wallet activity on Solana

The same path returns the last 25 signatures with signature, slot, ts and success. It does not decode amounts. Pass a signature to Transaction lookup to read one.

#Transaction lookup

On EVM, the service reads the transaction and receipt, then decodes up to 60 ERC-20 Transfer logs.

FieldMeaning
statussuccess, failed or pending
methodName for known selectors, else the 4-byte selector
valueNative value, with USD at the current price
feeGas used times effective gas price, in the native asset
token_transfers[]Decoded logs with labels
log_countAll logs in the receipt
explorerPublic explorer link

Known method names: transfer, transferFrom, approve, swapExactTokensForTokens, swapExactETHForTokens, swapExactTokensForETH, execute (Universal Router), exactInputSingle, exactInput, multicall, deposit, withdraw, supply, withdraw (Aave), swap (1inch), aggregate3, and native transfer for empty input.

On Solana, the response holds signer, programs[], sol_changes[] (up to 20), token_changes[] (up to 30), fee and compute_units. Solana has token names only for curated mints. Other tokens show mint with token: null.

#Address format

FamilyAccepted form
EVM0x plus 40 hex characters, any case
SolanaBase58, 32 to 44 characters
EVM hash0x plus 64 hex characters
Solana signatureBase58, 64 to 90 characters

Addresses are public data, and looking one up does not mean anything about its owner. Do not use this data to identify or target private individuals. See acceptable use.

For a monitor built from these endpoints, see the wallet watch recipe.