Data sources
Everything Farbeam serves comes from public sources or from rows built from them. This page lists each source, what is read, how long it is cached, and the effect of a failure. Live results are on Status and the status page.
Outbound calls have a timeout, a shared cache and per-source health counters. Redirects are refused.
#Sources
| Source | Status name | What is read | Used by | Cache |
|---|---|---|---|---|
| Public EVM RPC, first choice | rpc:<chain>:primary | Blocks, gas, logs, balances, transactions | All six EVM pollers and lookups. Each chain page names its endpoint. | Pollers none. Wallet 30 s, activity 60 s. |
| Public EVM RPC, fallback | rpc:<chain>:fallback | Same as above | dRPC, Nodies, 1RPC, BlockRazor and PublicNode, tried in order | Same |
| Helius | rpc:solana:primary | Slots, blocks, balances, getAssetsByOwner | Solana lookups first, poller fallback, when configured | Wallet 30 s |
| PublicNode Solana RPC | rpc:solana:fallback | Same, except getAssetsByOwner | Solana poller first, the exchange watch list, lookup fallback | Wallet 30 s |
| CoinGecko | coingecko | USD price and 24 hour change for 8 assets | Valuation, wallets, gas, prices | 60 s |
| DexScreener | dexscreener | Pools for a token | Token report market data | 60 s |
| GoPlus | goplus | Contract security fields and holders | Token report checks | 5 min |
| RugCheck | rugcheck | Report summary score, Solana only | Token report check | 5 min |
| DefiLlama | defillama | Chain TVL, DEX volume | Market endpoints | 10 min, 15 min |
| DefiLlama stablecoins | defillama-stablecoins | Stablecoin supply | Market endpoint | 10 min |
| GeckoTerminal | geckoterminal | Trending pools | Market endpoint | 5 min |
Token metadata on EVM (symbol, name, decimals, supply) comes from the chain RPC and is cached for 24 hours.
#Timeouts
| Call | Timeout |
|---|---|
| Default HTTP or RPC call | 8 s |
| RPC batch | 10 s |
eth_getLogs in the poller | 12 s |
eth_getLogs in wallet activity, Solana getTransaction | 15 s, 12 s |
Solana getBlock in the poller | 20 s |
Helius getAssetsByOwner | 10 s |
| DefiLlama stablecoins, DEX volume | 12 s, 15 s |
#What happens on failure
| Failure | Effect |
|---|---|
| Primary RPC fails | The call moves to the fallback. |
| Both RPCs fail, in a poller | consecutive_failures grows and the next poll waits longer. See chain status. The log cursor catches up afterward, up to 2,000 blocks behind the head. Older blocks are skipped. |
| RPC error on one Solana slot | The poller tries up to three older slots. |
| One chain fails on an EVM wallet read | That chain has ok: false. partial is true. Status 200. |
| All chains fail on an EVM wallet read | 502 with source: "evm-rpc" |
| CoinGecko fails | The last good prices stay in use with no marker on the row. |
| DexScreener fails on a report | market is null, and liquidity reads unknown. |
| GoPlus fails on a report | All its checks read unknown. |
| RugCheck fails on a report | rugcheck reads unknown. |
| Solana RPC fails for mint info | mint_authority and freeze_authority read unknown. |
| All sources fail on a report, wallet, stablecoin or DEX call | The last saved copy with stale: true, if one exists. See freshness. Else 502. |
| A market source fails | 502 with that source name, once the cache has expired |
#A source can answer with nothing
An empty GoPlus result counts as a failed source. sources[] shows goplus with ok: false, the matching checks read unknown, and the result is not cached, so the next read tries again.
Partial answers also happen. GoPlus often returns some fields for a contract and omits others, as the USDC example shows.
#Reading source health
curl -s "https://farbeamlabs.com/api/v1/status" | jq '.data.sources[] | {name, ok, failures, error}'const res = await fetch("https://farbeamlabs.com/api/v1/status");
const { data } = await res.json();
console.table(data.sources.map(({ name, ok, calls, failures, error }) => ({ name, ok, calls, failures, error })));import requests
sources = requests.get("https://farbeamlabs.com/api/v1/status", timeout=30).json()["data"]["sources"]
for s in sources:
print(s["name"], s["ok"], s["calls"], s["failures"], s["error"])| Field | Meaning |
|---|---|
ok | Result of the last call to this source only |
calls, failures | Counts since the last restart |
latency_ms | Time of the last call |
last_ok, last_error_at | UTC times |
error | Short text: timeout, request failed or HTTP <code> |
A source shows here only after its first call. A failing fallback may not matter while its primary works.
#Limits and trust
- Public RPC providers throttle, and results can differ by a block or two between providers.
- Third-party fields can be wrong, late or absent. Farbeam reads and shows them with their field names, and it does not correct them.
- These providers are named so you can check their data yourself. Naming them does not mean they endorse this service.
- Prices and checks are for information only and are not financial advice.
To report a data problem, write to contact@farbeamlabs.com with the request_id, the address and the UTC time.