Farbeam

Token due diligence

A team that needs a first pass on a token contract can use the report to collect public fields into one structured record, then decide which ones need a closer look. The report does not say whether a token is good or bad. It gives no score and no view on price.

#Workflow

  1. Confirm the contract address from the project's own channels. A symbol is not an identifier, and the same symbol can exist on many contracts.
  2. Run the token report, or call GET /tokens/{chain}/{address}. It costs 3 units.
  3. Check sources[] first. A source with ok: false explains a group of unknown checks.
  4. Read fail and warn rows, then every unknown row. An unknown row is a question you still have to answer elsewhere.
  5. Read holders. Decide which large holders are pools, exchanges or lockers, because the top-holder share includes them.
  6. Open the contract on an explorer for the fields the report does not cover.
  7. If you need to watch a curated token afterwards, add a Beamline rule. Rules work on curated tokens only.
curl -s "https://farbeamlabs.com/api/v1/tokens/base/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
const res = await fetch("https://farbeamlabs.com/api/v1/tokens/base/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913");
const { data } = await res.json();
for (const c of data.checks.filter((c) => c.status !== "pass")) {
  console.log(c.status, c.id, c.detail, `(${c.source}: ${c.field})`);
}
import requests

data = requests.get(
    "https://farbeamlabs.com/api/v1/tokens/base/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    timeout=30,
).json()["data"]
for c in data["checks"]:
    if c["status"] != "pass":
        print(c["status"], c["id"], c["detail"], f"({c['source']}: {c['field']})")

#Real sample

USDC on Base, read at 2026-11-04T19:45:26Z. counts was 7 pass, 1 warn, 0 fail and 6 unknown. All three sources answered: DexScreener in 137 ms, chain RPC in 342 ms and GoPlus in 170 ms.

CheckStatusDetail
liquiditypass$8,862,271 across 30 pools
pool_agepass1156 days
open_sourcepassSource code is verified
honeypotpassSimulation did not flag a sell block
proxywarnLogic can change through a proxy
mintable, balance_change, hidden_owner, pausable, blacklistunknownField is absent from the source
lp_lockedunknownLP holder data is absent

This sample shows why unknown matters. USDC has an issuer with admin powers, yet GoPlus returned none of those fields for this proxy contract. A reader who counted unknown as pass would conclude the wrong thing.

#Thresholds

CheckWarnFail
liquidityBelow $100,000Below $10,000
pool_ageBelow 7 daysBelow 1 day
buy_tax, sell_taxAbove 1%10% or more
top10 on EVMAbove 40%Above 70%
top10 on SolanaAbove 70%None
lp_lockedBelow 50%None

The full list, including contract flags and Solana authorities, is on token checks.

#Rule for afterwards

Tested with POST /rules/validate at 2026-11-04T19:21:20Z. It matched 1 of the newest 1,948 stored rows.

Beamline
token_address == "0xdac17f958d2ee523a2206206994597c13d831ec7" and usd >= 10m

#What this will not do