Resources
Tokens & scanner
Referencing tokens
Every endpoint that takes a token accepts $XYZ, XYZ, the stable id tk_…, <chain>:<address> or a bare address. Symbols can collide across chains; a symbol resolves to the most active token, so store the tk_ id once you have it. Dead tokens (no price or liquidity for ~24h) keep their id and stay in history with status: "dead".
The quant snapshot
Fields
| Name | Description |
|---|---|
scoresobject | Plain values per score key (null = insufficient data). |
score_detailsobject | Per score: value, display, drivers (key, label, points, raw, display, percentile, note), confidence (level, sample_size, basis), model_version, summary, stale; divergence adds state. |
signalssignal[] | Active signals on the token. |
divergence_stateenum | null | See below. |
marketobject | price_usd, price_change_1h/24h, market_cap_usd, liquidity_usd, volume_24h_usd, holder_count, top_holder_share, source, updated_at — null when the provider lacks the field. |
activityobject | theses_1h, theses_24h, unique_authors_1h, unique_authors_24h, last_thesis_at. |
featuresobject | null | The point-in-time feature vector the scores were computed from (velocity, breadth, concentration, author quality, narrative, cohort and market features). |
analogsobject | null | Count, median 24h return and worst 24h drawdown of the nearest historical setups. |
model_versionsobject | Versions of every model used for this snapshot. |
freshnessobject | updated_at, fomo_last_event_at, market_last_at, lag seconds, stale and stale_reasons. |
scoresobjectPlain values per score key (null = insufficient data).score_detailsobjectPer score: value, display, drivers (key, label, points, raw, display, percentile, note), confidence (level, sample_size, basis), model_version, summary, stale; divergence adds state.signalssignal[]Active signals on the token.divergence_stateenum | nullSee below.marketobjectprice_usd, price_change_1h/24h, market_cap_usd, liquidity_usd, volume_24h_usd, holder_count, top_holder_share, source, updated_at — null when the provider lacks the field.activityobjecttheses_1h, theses_24h, unique_authors_1h, unique_authors_24h, last_thesis_at.featuresobject | nullThe point-in-time feature vector the scores were computed from (velocity, breadth, concentration, author quality, narrative, cohort and market features).analogsobject | nullCount, median 24h return and worst 24h drawdown of the nearest historical setups.model_versionsobjectVersions of every model used for this snapshot.freshnessobjectupdated_at, fomo_last_event_at, market_last_at, lag seconds, stale and stale_reasons.
Divergence states
| State | Meaning |
|---|---|
EARLY_SOCIALEarly social | Social attention is unusually high (z > 1) while price is flat (|z| < 0.5). |
CONFIRMEDConfirmed | Social attention and price are both unusually high. |
LAGGING_SOCIALLagging social | Price is moving (z > 1) while thesis activity is not (z < 0.5). |
DIVERGINGDiverging | Price rising while attention decelerates, or attention high while price falls sharply. |
NEUTRALNeutral | Social and market activity are in line. |
NO_MARKET_DATANo market data | No usable market data in the last 48h — divergence is null, never guessed. |
Scanner rules
A rule is { field, op, value } with op one of >, >=, <, <=. Rules are AND-ed and a null value never passes. The same evaluator powers the scanner, saved scans, alerts and backtests. Free plans scan snapshots 15 minutes old; Pro and Team scan the latest tick. Custom rules in the app need Pro or Team; presets work everywhere.
| Field | Unit | Meaning |
|---|---|---|
momentum | 0–100 | Acceleration of Fomo attention (0–100). |
conviction | 0–100 | Sustained vs one-off attention (0–100). |
crowding | 0–100 | Concentration of attention among few accounts (0–100, high = concentrated). |
early_quality | 0–100 | Historical quality of accounts posting early (0–100). |
narrative_velocity | 0–100 | How fast the token's narrative is spreading (0–100). |
divergence | −100…+100 | Social vs market activity (−100…+100, positive = social leading). |
smart_cohort | 0–100 | Convergence of a historically strong cohort (0–100). |
theses_1h | count | Theses posted in the last hour. |
theses_24h | count | Theses posted in the last 24 hours. |
unique_authors_1h | count | Distinct authors in the last hour. |
unique_authors_24h | count | Distinct authors in the last 24 hours. |
thesis_velocity_1h | change ratio (2.0 = +200%) | Last-hour theses vs the 7-day hourly baseline (2.0 = +200%). |
unique_author_growth_1h | change ratio (2.0 = +200%) | Distinct authors this hour vs the previous hour (0.5 = +50%). |
attention_acceleration | change ratio (2.0 = +200%) | Theses this hour vs previous hour. |
repeat_author_ratio | fraction (0.05 = 5%) | Share of 24h authors who posted on the token more than once in 7 days. |
top1_share | fraction (0.05 = 5%) | Share of 24h theses from the single most active author. |
high_quality_author_count | count | Authors active in 24h with a research score ≥ 70 and at least MEDIUM confidence. |
price_change_1h | fraction (0.05 = 5%) | Price change over the last hour (0.05 = +5%). |
price_change_24h | fraction (0.05 = 5%) | Price change over 24 hours. |
volume_change_1h | fraction (0.05 = 5%) | Last-hour volume vs previous hour. |
liquidity_usd | USD | Pool liquidity in USD. |
market_cap_usd | USD | Market capitalisation in USD (FDV when circulating supply is unknown). |
volume_24h_usd | USD | Trading volume over 24 hours in USD. |
Presets
| Preset | Rules |
|---|---|
Early Attentionearly-attention | Momentum > 70 AND Crowding < 40 AND Unique authors 1h ≥ 5 Attention accelerating early, broad and not crowded. Sorted by momentum. |
Broad Momentumbroad-momentum | Momentum > 65 AND Unique authors 24h > 25 AND Crowding < 35 High momentum carried by many independent authors. Sorted by momentum. |
High Convictionhigh-conviction | Conviction > 70 AND Repeat author ratio > 30% Authors keep coming back across multiple windows. Sorted by conviction. |
Low Crowdinglow-crowding | Crowding < 25 AND Theses 24h ≥ 15 Active tokens where no small group dominates attention. Sorted by crowding. |
Smart Cohortsmart-cohort | Smart Cohort > 60 AND Early Quality > 60 Historically strong cohorts converging. Sorted by smart_cohort. |
Cooling Fastcooling-fast | Attention acceleration < -50% AND Theses 24h ≥ 10 Attention decelerating sharply versus the prior hour. Sorted by attention_acceleration. |
Narrative Breakoutnarrative-breakout | Narrative Velocity > 65 AND Momentum > 40 Narrative spreading faster than usual. Sorted by narrative_velocity. |
Try them in the scanner. Scores are explained in Scores.
Endpoints
Example responses use illustrative values ($XYZ, example_rhea, a placeholder address) — not real tokens or authors; every field name and shape is exactly what the API returns. Long sections are collapsed as { … }.
/v1/quant/token/{token}Latest point-in-time quant snapshot of a token.
Plain scores (null = insufficient data), score_details with drivers that sum to each score, confidence and model version, active signals, market, activity, divergence_state, the feature vector, analog summary, model_versions and freshness.
Parameters
| Name | Description |
|---|---|
tokenrequiredpath · string | Token reference: $XYZ, XYZ, tk_…, <chain>:<address> or <address>. Symbol collisions resolve to the most active token. |
tokenpath · stringrequiredToken reference:$XYZ,XYZ,tk_…,<chain>:<address>or<address>. Symbol collisions resolve to the most active token.
curl "https://fomoquant.app/v1/quant/token/XYZ" \
-H "Authorization: Bearer $FOMOQUANT_API_KEY"/v1/quant/token/{token}/analogsHistorical setups most similar to the token's current snapshot (analog-v1.0).
Feature-vector distance over momentum, crowding, early quality, narrative velocity, price momentum, volume acceleration and liquidity. Only candidates whose 24h outcome resolved before the snapshot are used, and the same token within ±24h is excluded.
Parameters
| Name | Description |
|---|---|
tokenrequiredpath · string | Token reference: $XYZ, XYZ, tk_…, <chain>:<address> or <address>. Symbol collisions resolve to the most active token. |
kquery · integer 1–100 | Maximum analogs returned, nearest first.Default 40 |
tokenpath · stringrequiredToken reference:$XYZ,XYZ,tk_…,<chain>:<address>or<address>. Symbol collisions resolve to the most active token.kquery · integer 1–100Maximum analogs returned, nearest first.Default40
curl "https://fomoquant.app/v1/quant/token/XYZ/analogs?k=20" \
-H "Authorization: Bearer $FOMOQUANT_API_KEY"/v1/quant/tokensTokens with their current scores, cursor-paginated.
Parameters
| Name | Description |
|---|---|
sortquery · rule field | Any rule field (score key or feature such as unique_authors_1h).Default momentum |
dirquery · asc | desc | Sort direction.Default desc |
limitquery · integer 1–100 | Page size.Default 25 |
cursorquery · string | Opaque cursor from the previous page's next_cursor. |
narrativequery · slug | Narrative slug, e.g. ai-agents. |
chainquery · enum | One of solana, robinhood, base, bnb, eth, arc. |
qquery · string ≤ 64 | Symbol / name search. |
sortquery · rule fieldAny rule field (score key or feature such as unique_authors_1h).Defaultmomentumdirquery · asc | descSort direction.Defaultdesclimitquery · integer 1–100Page size.Default25cursorquery · stringOpaque cursor from the previous page'snext_cursor.narrativequery · slugNarrative slug, e.g. ai-agents.chainquery · enumOne of solana, robinhood, base, bnb, eth, arc.qquery · string ≤ 64Symbol / name search.
curl "https://fomoquant.app/v1/quant/tokens?sort=momentum&limit=25" \
-H "Authorization: Bearer $FOMOQUANT_API_KEY"/v1/quant/scanRun a scanner rule set against the latest snapshot of every token.
All rules must pass (AND); a null value never passes. Free plans see a 15-minute delayed scanner (delayed_minutes). Send rules, a preset (early-attention, broad-momentum, high-conviction, low-crowding, smart-cohort, cooling-fast, narrative-breakout), or both.
Parameters
| Name | Description |
|---|---|
presetbody · string | Scanner preset id; combined with rules when both are sent. |
rulesbody · { field, op, value }[] ≤ 12 | Conditions. op is one of > >= < <=; pct fields are fractions (0.05 = 5%). |
sortbody · rule field | Sort field (defaults to the preset's). |
sort_dirbody · asc | desc | Sort direction. |
limitbody · integer 1–200 | Rows returned. |
chainsbody · chain[] | Restrict to chains. |
narrativebody · slug | Restrict to one narrative. |
presetbody · stringScanner preset id; combined with rules when both are sent.rulesbody · { field, op, value }[] ≤ 12Conditions.opis one of>>=<<=; pct fields are fractions (0.05 = 5%).sortbody · rule fieldSort field (defaults to the preset's).sort_dirbody · asc | descSort direction.limitbody · integer 1–200Rows returned.chainsbody · chain[]Restrict to chains.narrativebody · slugRestrict to one narrative.
curl -X POST "https://fomoquant.app/v1/quant/scan" \
-H "Authorization: Bearer $FOMOQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"rules":[{"field":"momentum","op":">","value":75},{"field":"crowding","op":"<","value":30}],"limit":20}'FomoQuant provides analytics and historical/statistical context, not financial advice or guaranteed predictions.