Farbeam
Docs / Core concepts

Data model

This page defines the objects that appear across the API, the live stream and webhooks. Field names are the same on all three surfaces. Only the ts type differs, as noted below.

#Transfer

A transfer row is one large movement of a curated token or a native asset, stored when its value at index time is at least $100,000. This row was captured from GET /transfers on 2026-11-04 UTC.

JSON
{
  "id": 1254,
  "uid": "solana:CthHnYm1pCm1…espRaCx:native",
  "ts": "2026-11-04T19:13:38.000Z",
  "chain": "solana",
  "block": 465415019,
  "tx": "CthHnYm1pCm1…espRaCx",
  "kind": "native",
  "token": "SOL",
  "token_address": null,
  "amount": 7132.277101252,
  "usd": 679206.748352228,
  "from": "5pVN5XZB8cYBjNLFrsBCPWkCQBan5K5Mq2dWGzwPgGJV",
  "to": "CTyFguG69kwYrzk24P3UuBvY1rR5atu9kf2S6XEwAU8X",
  "sampled": true,
  "from_label": null,
  "from_type": null,
  "to_label": null,
  "to_type": null
}
FieldTypeMeaning
idintegerRow id in this database. Used as the pagination cursor. Follows insert order.
uidstringStable unique id. Use it to remove duplicates. See the formats below.
tsstring or integerBlock time in UTC. ISO 8601 on REST, integer milliseconds on the stream and webhooks.
chainstringOne of ethereum, base, bnb, arbitrum, solana. OP Mainnet and Polygon have no rows.
blockintegerBlock number, or the slot on Solana
txstringTransaction hash, or signature on Solana
kindstringtoken for an ERC-20 log or SPL balance change. native for ETH on Ethereum or SOL on Solana.
tokenstringSymbol from the curated list, or ETH or SOL
token_addressstring or nullContract or mint address. null when kind is native.
amountnumberToken units after decimals, as a double. It can lose precision at the last digits.
usdnumberamount times the price held at index time. It is not updated later. See USD valuation.
fromstringSender. EVM addresses are lowercase. Solana addresses keep their case.
tostringRecipient, in the same format
sampledbooleantrue on all Solana rows. See sampling.
from_label, to_labelstring or nullName from the label set
from_type, to_typestring or nullLabel type, such as exchange

#The uid formats

CaseFormat
EVM token log<chain>:<tx hash>:<log index>
Ethereum nativeethereum:<tx hash>:native
Solana tokensolana:<signature>:<mint>
Solana nativesolana:<signature>:native

#Details that change results

  • On EVM log rows, ts is an estimate when the log is older than the head block read in that poll: head time minus block distance times a fixed block time. The real block time can differ by seconds. Use block for order on one chain.
  • On Solana, from and to are the accounts with the largest balance decrease and largest increase in that transaction for that asset. They are not always a direct sender and recipient.
  • amount on Solana is the smaller of those two changes.
  • token=ETH matches two different things: native ETH on Ethereum and the bridged ETH token on BNB Chain. Filter on kind or chain too.

#Chain

Returned by List chains and Get a chain.

FieldTypeMeaning
idstringId used in all other paths
namestringDisplay name
familystringevm or svm
chain_idinteger or nullEIP-155 chain id. null on Solana.
nativestringNative asset symbol
large_transfer_indexbooleanTrue when large transfers are stored
native_transfersbooleanTrue when native asset transfers are stored
sampledbooleanTrue when only sampled blocks are read
poll_secondsintegerWait between polls
tokens[]arrayCurated tokens: symbol, address, decimals
statusobjectLive poller state, below

#Chain status

FieldTypeMeaning
statusstringok, degraded, down or starting. See chain status.
headintegerLatest block or slot read
head_timestringBlock time of head
head_age_secondsintegerAge of head at response time
lag_secondsnumberAge of head at the moment it was read
tx_countintegerTransactions in that block
gas_used_rationumber or nullEVM only, from 0 to 1
base_fee_gwei, gas_price_gweinumber or nullEVM only
priority_fee_microlamports, tpsnumber or nullSolana only
rpc_latency_msintegerTime of the last head read
last_okstringTime of the last complete poll
consecutive_failuresintegerFailed polls since the last good one
scan_lag_blocksintegerBlocks between the head and the log cursor, on indexed EVM chains only
last_errorstring or nullupstream failed or poll failed
indexed_since_startintegerRows stored since the last restart
sampled_slotintegerSolana only. The slot of the last sampled block.

#Block

Returned by Recent blocks and sent as block events on the stream. The list holds at most 25 entries and is kept in memory, so a restart empties it.

FieldTypeFamilyMeaning
numberintegerBothBlock number or slot
tsstring or integerBothBlock time
txsintegerBothTransaction count
gas_used, gas_limitintegerEVMGas figures
base_fee_gweinumber or nullEVMBase fee
hashstringSolanaBlock hash

#Token

tokens[] on a chain holds symbol, address and decimals. The token object in a token report is richer.

FieldTypeMeaning
symbol, namestring or nullFrom the chain on EVM, from pool data on Solana
decimalsinteger or nullToken decimals
total_supplynumber or nullTotal supply after decimals
holder_countinteger or nullFrom GoPlus, when present
owner, creatorstring or nullEVM only, from GoPlus

#Label

JSON
{
  "name": "Binance 14",
  "type": "exchange",
  "address": "0x28C6c06298d514Db089934071355E5743bf21d60",
  "chains": ["ethereum"]
}
FieldTypeMeaning
namestringDisplay name
typestringexchange, dex, bridge, lending, staking, token, issuer, launchpad or infrastructure
addressstringAddress in checksummed or base58 form
chainsarrayChains where the entry was curated
source_urlstringExplorer page of the address on the first listed chain

Read labels for how lookups treat chains.

#Response envelope

Each successful /api/v1 response has data and meta. meta.request_id matches the x-request-id header, and meta.as_of is the time of the response. Some endpoints add more to meta, such as next_cursor or source.