Farbeam
Docs / Data

Solana

This page lists what Farbeam reads on Solana. Live values are on the Solana data page. The API returns the same facts from Get a chain.

PropertyValue
API chain idsolana
Chain idNone (not an EVM chain)
Familysvm
Native assetSOL
Poll wait30 s after each finished poll, 60 s after a failure
large_transfer_indextrue
native_transferstrue
sampledtrue
Explorer used in linkssolscan.io

#What is indexed

Two reads feed the Solana rows. Both look for balance changes of the tokens below and native SOL, at $100,000 or more. All rows carry sampled: true. This is not a complete index.

ReadWhat it does
Block sampleOne finalized block per poll
Exchange watch listEvery 120 s, recent transactions of 7 public exchange wallets. The list is in watch_list from Status.

#Curated tokens

SymbolAddressDecimals
USDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v6
USDTEs9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB6
wSOLSo111111111111111111111111111111111111111129
JUPJUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN6
BONKDezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB2635
WIFEKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm6
JTOjtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL9
PYTHHZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt36
RAY4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R6
JitoSOLJ1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn9
mSOLmSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So9

The curated tokens page explains the list and its prices.

#Sources

PurposeSource
LookupsHelius first, when configured, then https://solana-rpc.publicnode.com
Pollerhttps://solana-rpc.publicnode.com first, then Helius when configured
Exchange watch listhttps://solana-rpc.publicnode.com only
DEX market dataDexScreener, id solana
Contract checksGoPlus, Solana token security endpoint
Extra checksRugCheck
Trending poolsGeckoTerminal, id solana
TVL and stablecoin matchingDefiLlama, name Solana

#Measured values

These figures are a snapshot from the API at 2026-11-04T19:33:40.040Z UTC. They are examples, and they change on every poll. They are not targets.

FieldValue
statusok
head465420519
lag_seconds2.3
rpc_latency_ms379
tx_count of the last block read621
tps2228
priority_fee_microlamports0
Seconds between reads, from the recent blocks list31.8
Slots between reads148.0

#Quirks

  • Sampled. About 1 slot in 148 was read in the measurement above. Read sampling first. A wallet alert on Solana will miss nearly everything, except partial coverage of the 7 watched exchange wallets.
  • No chain id. chain_id is null, and family is svm. In Wallet overview, family reads solana. Handle both spellings.
  • Balance changes, not logs. The poller compares pre and post balances. from is the owner with the largest decrease, and to is the owner with the largest increase. amount is the smaller of the two, so a transaction with many parties reduces to one pair.
  • SOL and wSOL can double up. One transaction can produce both rows. Group by tx before you sum.
  • Different fee fields. base_fee_gwei, gas_price_gwei and gas_used_ratio are null. priority_fee_microlamports is the 75th percentile of getRecentPrioritizationFees, and tps comes from getRecentPerformanceSamples.
  • Addresses are case sensitive. They are stored as base58, and they are not lowercased. Beamline string comparison still ignores case.
  • **Holder checks can read unknown.** getTokenLargestAccounts fails on some large tokens at the RPC, so the top10 check reads unknown. This happened for USDC and wSOL on 2026-11-04 UTC.
  • Daily budget for the keyed RPC. The service limits its own Helius use per UTC day, and background work may use half. keyed_rpc_daily_limit_reached in Status reads true when the budget is spent. Lookups then use the public endpoint.
  • Helius and fallback. With Helius, wallet token lists use getAssetsByOwner (token_source: helius-das). On fallback they use getTokenAccountsByOwner, which reads the classic SPL Token program only.

#Try it

curl -s "https://farbeamlabs.com/api/v1/chains/solana"
const res = await fetch("https://farbeamlabs.com/api/v1/chains/solana");
const { data } = await res.json();
console.log(data.status.status, data.status.head, data.tokens.length);
import requests

data = requests.get("https://farbeamlabs.com/api/v1/chains/solana", timeout=30).json()["data"]
print(data["status"]["status"], data["status"]["head"], len(data["tokens"]))

A rule for this chain, from the Beamline examples style: chain == "solana" and token == "USDC" and usd >= 500k.