v3.1.0

real-time attention intelligence for Base and Robinhood chain tokens. pay-per-call via x402.

payments: USDC on Base mainnet via x402
GET /v1/leaderboard $0.05

top Base tokens by attention share — all 102 tracked tokens, flexible window (1-168h)

query params
param values default
?limit= 1 – 50 10
?hours= 1 / 2 / 4 / 8 / 12 / 24 4
?sort_by= ATT_pct | MS_pct | INF_pct | velocity | ATT_delta ATT_pct
?min_mentions= integer 1
response fields
field description
symbol token symbol
ATT_pct composite attention share (%) — AIS-quality-filtered, mindshare + influence weighted
MS_pct mindshare (%) — engagement-weighted mention share
INF_pct influence (%) — account-weight-adjusted share
ATT_delta change in ATT_pct vs prior window (pp). + = gaining, - = losing
unique_authors distinct accounts posting about this token
signal_interpretation agent-readable signal block (see reference section)
example response
{
  "updated_at": "2026-04-10T13:03:01Z",
  "data_age_minutes": 8.2,
  "window_hours": 4,
  "tokens": [
    {
      "symbol": "gitlawb",
      "ATT_pct": 11.8,
      "MS_pct": 7.7,
      "INF_pct": 18.0,
      "ATT_delta": -0.3,
      "unique_authors": 12,
      "signal_interpretation": {
        "propagation_mode": "organic",
        "followthrough": "uncertain",
        "decay_risk": "low",
        "flow_type": "mixed",
        "price_alignment": "roughly_aligned",
        "summary": "building",
        "agent_action_hint": "monitor"
      }
    }
  ]
}
GET /v1/signal $0.15

opportunity radar — cross-universe ranked signals with timing. replaces /v1/spikes.

query params
param values default
?limit= 1 – 20 5
?min_ais= 0 – 1 0.05
?min_velocity= float 0
?spiking_only= true | false false
?divergence_only= true | false false
?require_history= true | false false
response fields
field description
symbol token symbol
score composite signal strength (AIS × velocity × cascade × organic × history)
rank position in ranked list (1 = best)
signal_type "spike" | "building" | "divergence"
ais Attention Intelligence Score (0-1) — Hawkes-derived quality metric
velocity momentum multiplier vs 48h baseline. 3.0+ = meaningful spike
att_pct current attention share (%)
ATT_delta_1h attention change in last hour (e.g. "+3.2pp" or "-1.4pp")
cascade_multiplier expected total wave size. 2.5 = current mentions will 2.5x before fading
half_life_hours hours until 50% of cascade plays out (null if unknown)
organic_fraction share of posts that are community-driven (0-1). >0.5 = self-reinforcing
divergence_detected true if attention up but price flat/down — the alpha pattern
spike_history { confirmed, total, hit_rate } — historical reliability. null if <5 spikes
key_factors string array of 1-3 factors driving the score
caution string array of flags (e.g. "half_life_under_1h", "thin_spike_history")
timing.window_open bool — is this still worth entering?
timing.entry_quality "strong" | "moderate" | "weak" | "closed"
timing.urgency "act_now" | "monitor" | "wait" | "passed"
timing.elapsed_pct estimated % of cascade already played out
timing.time_to_90pct_hours hours until 90% complete (practical exit signal)
timing.decay_rate "fast" (<2h) | "moderate" (2-8h) | "slow" (>8h) | "unknown"
signal_interpretation agent-readable signal block (see reference section)
universe_size total tokens scanned
signals_found how many passed filters (before limit applied)
example response
{
  "updated_at": "2026-04-10T13:03:01Z",
  "data_age_minutes": 8.2,
  "universe_size": 80,
  "signals_found": 34,
  "signals": [
    {
      "symbol": "MOLTEN",
      "score": 0.538,
      "rank": 1,
      "signal_type": "spike",
      "ais": 0.259,
      "velocity": 4.76,
      "att_pct": 5.65,
      "ATT_delta_1h": "-1.2pp",
      "cascade_multiplier": 2.62,
      "half_life_hours": null,
      "organic_fraction": 0.382,
      "divergence_detected": false,
      "spike_history": null,
      "key_factors": ["velocity 4.8×", "large cascade 2.6×"],
      "caution": ["high_competition_pressure", "thin_spike_history"],
      "timing": {
        "window_open": true,
        "entry_quality": "strong",
        "urgency": "act_now",
        "elapsed_pct": null,
        "time_to_90pct_hours": null,
        "decay_rate": "unknown"
      },
      "signal_interpretation": {
        "propagation_mode": "organic",
        "followthrough": "uncertain",
        "decay_risk": "low",
        "flow_type": "mixed",
        "price_alignment": "roughly_aligned",
        "summary": "building",
        "agent_action_hint": "monitor"
      }
    }
  ]
}
GET /v1/token/[symbol_or_ca] $0.75

full token profile — attention metrics, hawkes analysis, timing, creators, health score, top posts, cascade posts, divergence, spike history, and signal track record. accepts symbol or contract address. e.g. /v1/token/BNKR or /v1/token/0xa1f72459dfa10bad200ac160ecd78c6b77a747be

query params
paramvaluesdefault
?hours=1 – 16824
?include_creators=booltrue — top creators ranked by signal_score
?include_health=booltrue — 0–100 health score with grade and subscores
?limit_creators=1 – 2510
?include_narrative=boolfalse — lightweight 80-120 char narrative block
response fields
fielddescription
symboltoken symbol
attention_stagelifecycle position: early | building | established
is_bankr_ecosystemtrue if token is in the bankr ecosystem
data_sourcealways "x_posts DB (historical)"
window_hourslookback window used
top_author{ username, followers } — top posting account in window
metrics
metrics.ATT_pctcomposite attention share (%) — quality-filtered, mindshare + influence weighted
metrics.velocitymomentum multiplier vs 48h baseline. 3x+ = confirmed spike
metrics.posts_counttotal posts in window
metrics.unique_authorsdistinct accounts posting about this token
metrics.total_engagementlikes + replies + retweets across all posts
metrics.avg_likesaverage likes per post
metrics.engagement_qualityfraction of posts with ≥10 likes (0–1)
metrics.trendgrowing | active | quiet | dead
metrics.posts_per_hourcurrent post rate in the window
metrics.baseline_posts_per_hour48h baseline rate (what velocity is measured against)
metrics.data_age_hourshours since most recent post in window
top_posts[ ] — up to 8 posts by engagement
top_posts[].idpost ID in DB
top_posts[].author@handle
top_posts[].textpost text (truncated to 200 chars)
top_posts[].likeslike count
top_posts[].repliesreply count
top_posts[].retweetsretweet count
top_posts[].total_engagementlikes + replies + retweets
top_posts[].created_atISO timestamp
cascade_posts[ ] — posts that sparked discussion (≥3 replies)
cascade_posts[].author@handle
cascade_posts[].textpost text
cascade_posts[].likes / replies / retweetsraw engagement counts
cascade_posts[].created_atISO timestamp
creators (when include_creators=true)
creators.top[].username@handle
creators.top[].follower_countfollower count
creators.top[].tiermacro (>10k) | micro (1k–10k) | nano (<1k)
creators.top[].post_countposts about this token in window
creators.top[].avg_likesaverage likes per post
creators.top[].signal_scorecomposite rank: weighted_avg_likes × log10(followers) × quality_factor + cascade
creators.top[].mindshare_pctshare of total conversation (%)
creators.total_uniquetotal distinct authors in window
creators.concentrationHerfindahl index (0 = distributed, 1 = one whale)
health (when include_health=true)
health.score0–100 composite health score
health.gradeA | B | C | D | F
health.statusplain English status summary
health.subscores{ momentum, authenticity, quality, onchain } (each 0–25)
health.summariesplain English explanation per subscore component
health.opportunitiessignal opportunities detected
health.risksrisk flags detected
health.actionactionable insight summary
hawkes
hawkes.aisAttention Intelligence Score (0–1) from Hawkes process
hawkes.ais_confidenceHIGH | MEDIUM | LOW
hawkes.signalHawkes signal label
hawkes.regimeBUILDING | SUSTAINED | SPIKE_AND_FADE | NOISE
hawkes.viral_classBUILDING | LIKELY_VIRAL | SUSTAINED | LIKELY_FADING | UNCERTAIN
hawkes.branching_factorexpected replies per post. >0.8 = self-sustaining cascade
hawkes.branching_factor_weightedfollower-weighted branching. higher gap vs branching_factor = influential accounts amplifying
hawkes.cascade_multiplierexpected total wave size (entry sizing signal)
hawkes.viral_potentialSEISMIC score. >2.0 = high viral potential
hawkes.decay_alpharaw exponential decay rate. high = fades fast
hawkes.half_life_hourshours until 50% of cascade plays out
hawkes.accelerationrate of acceleration in posting activity
hawkes.organic_fractioncommunity-driven share (0–1). >0.5 = self-reinforcing
hawkes.influence_concentration0 = distributed, 1 = single whale. high = fragile signal
hawkes.market_sharetoken's share of total Hawkes market
hawkes.competition_pressurecompetitive pressure from other tokens (0–1)
hawkes.top_competitors[{ symbol, pressure }] — tokens competing for same creator attention
hawkes.analyzed_atwhen Hawkes model was last fitted
hawkes.hawkes_statuscomplete | partial | stale | insufficient_data
hawkes.hawkes_null_reasonsexplains which fields are null and why (when partial)
hawkes.signal_interpretation7-field agent block (see reference section)
timing
timing.window_openis this still worth entering?
timing.entry_qualitystrong | moderate | weak | closed
timing.urgencyact_now | monitor | wait | passed
timing.peak_attention_in_hoursestimated hours until attention peaks (null if passed)
timing.half_life_hourshours until 50% of cascade done
timing.time_to_90pct_hourshours until 90% complete — practical exit signal
timing.cascade_multiplierexpected total wave size
timing.expected_mentions_remainingmodel estimate of mentions before decay
timing.elapsed_pct% of cascade already played out
timing.decay_ratefast (<2h) | moderate (2–8h) | slow (>8h) | unknown
timing.decay_alpharaw exponential decay rate
timing.viral_classBUILDING | LIKELY_VIRAL | SUSTAINED | LIKELY_FADING | UNCERTAIN
timing.accelerationHawkes acceleration score
timing.organic_fractioncommunity-driven share (0–1)
timing.elapsed_hours_since_analysishours since Hawkes model was last fitted
timing.data_qualitycomplete | partial | stale | insufficient_data
timing.cautiontiming-specific flags (see caution flags reference)
divergence
divergence.detectedtrue when attention rising but price flat/down — the alpha pattern
divergence.att_directionup | down
divergence.price_directionup | down
divergence.notehuman-readable summary e.g. "attention +6.8pp while price -3.2% in 1h"
spike_history
spike_history.confirmedhistorical spikes with confirmed price follow-through
spike_history.totaltotal historical spikes detected
spike_history.hit_rateconfirmed / total. null if <5 total
signal_track_record
signal_track_record.signals_trackedtotal signals logged for this token (from signal_log DB)
signal_track_record.hit_rate_24hfraction of signals that resulted in 24h price movement
signal_track_record.median_outcome_24hmedian 24h price change across all signals e.g. "+12.4%"
signal_track_record.last_signal.detected_attimestamp of most recent signal
signal_track_record.last_signal.signal_typetype of most recent signal
signal_track_record.last_signal.price_at_signalprice when signal fired
signal_track_record.last_signal.price_24h_afterprice 24h after signal
signal_track_record.last_signal.chg_24h_pcte.g. "+18.2%"
signal_track_record.last_signal.hitbool — confirmed hit or miss
narrative (when include_narrative=true)
narrative.text80-120 char lightweight narrative
narrative.confidenceconfidence score (0–1)
narrative.methodtemplate | haiku_validate | heuristic

All blocks are best-effort — missing state returns null per block rather than an error.

GET /v1/rotation $0.10

where creators are moving — directed rotation graph with quality-filtered crossover evidence

query params
param values default
?window= 1h | 4h 4h
?limit= 1 – 25 10
?confirmed_only= true | false true
response fields
field description
edges[].from source token symbol
edges[].to destination token symbol
edges[].weight count of creators moving in this direction
edges[].top_creator.username most influential creator on this edge
edges[].top_creator.followers follower count of top creator
edges[].top_creator.max_likes max likes on posts driving this rotation
nodes[].symbol token symbol
nodes[].inflow count of creators entering this token
nodes[].outflow count of creators leaving this token
nodes[].net_flow inflow - outflow (positive = gaining creators)
nodes[].post_count total posts about this token in window
nodes[].ATT_growth attention % change in this window
nodes[].signal_interpretation agent-readable signal block (see reference section)
example response
{
  "window": "4h",
  "edges": [
    {
      "from": "INSTACLAW",
      "to": "ODAI",
      "weight": 1,
      "top_creator": {
          "username": "@thebasedfrogx",
          "followers": 2486,
          "max_likes": 11
      }
    }
  ],
  "nodes": [
    {
      "symbol": "ODAI",
      "inflow": 1,
      "outflow": 0,
      "post_count": 18,
      "net_flow": 1,
      "ATT_growth": 34.2,
      "signal_interpretation": {
        "propagation_mode": "organic",
        "followthrough": "strong",
        "decay_risk": "pending",
        "flow_type": "mixed",
        "price_alignment": "aligned",
        "summary": "early_momentum",
        "agent_action_hint": "monitor"
      }
    }
  ]
}
GET /v1/creators/[symbol] $0.15

who actually moves the feed for a specific token — ranked by signal_score, not post count. each post is weighted by relevance (dedicated post vs roundup vs secondary mention), cascade amplification (replies + quote tweets received), and follower reach.

query params
param values default
?hours= 1 – 720 24
?limit= 1 – 50 25
?min_followers= integer 50
?tier_filter= macro | micro | nano | all all
response fields
field description
creators[].username creator handle (e.g. @singularityhack)
creators[].follower_count live follower count from post data
creators[].tier macro (>10k) | micro (1k-10k) | nano (<1k)
creators[].is_verified blue check on X/Twitter
creators[].post_count posts about this token in window
creators[].avg_likes raw average likes per post
creators[].weighted_avg_likes relevance-discounted avg likes — dedicated post=1.0x, roundup=0.4x, secondary mention=0.25x, reply with token=0.7x
creators[].cascade intra-community replies received + quote_count on their posts — measures conversation-starting ability
creators[].quality_ratio fraction of posts with ≥10 weighted likes (0–1)
creators[].mindshare_pct share of total conversation by post volume (%)
creators[].signal_score composite rank: weighted_avg_likes × log10(followers) × quality_factor + cascade bonus
creators[].max_likes best single post in window
creators[].total_engagement total likes + replies + retweets (raw)
meta.ranking signal_score formula description
meta.time_window_hours lookback window used
meta.total_creators_found number of creators returned
example response
{
  "symbol": "GITLAWB",
  "creators": [
    {
      "username": "@singularityhack",
      "follower_count": 15560,
      "tier": "macro",
      "is_verified": true,
      "post_count": 3,
      "avg_likes": 83.3,
      "weighted_avg_likes": 83.3,
      "cascade": 2,
      "quality_ratio": 1.0,
      "mindshare_pct": 1.08,
      "signal_score": 349.19,
      "max_likes": 112,
      "total_engagement": 319
    }
  ],
  "meta": {
    "ranking": "signal_score (weighted_avg_likes * log10(followers) * quality_factor + cascade)",
    "time_window_hours": 24,
    "total_creators_found": 15
  }
}
GET /v1/creators/bankr $0.30

top creators across the full bankr ecosystem (39 tokens) — who's driving attention across BANKR-launched tokens. ranked by signal_score with relevance weighting and cascade amplification. use this to find ecosystem ambassadors: people posting high-quality content about multiple bankr tokens.

query params
param values default
?hours= 1 – 720 24
?limit= 1 – 50 25
?min_followers= integer 50
?tier_filter= macro | micro | nano | all all
response fields
field description
creators[].username creator handle
creators[].follower_count live follower count from post data
creators[].tier macro (>10k) | micro (1k-10k) | nano (<1k)
creators[].is_verified blue check on X/Twitter
creators[].bankr_post_count total posts across all bankr ecosystem tokens
creators[].bankr_tokens which bankr tokens they posted about
creators[].token_count number of distinct tokens covered
creators[].avg_likes raw average likes per post
creators[].weighted_avg_likes relevance-discounted avg likes
creators[].cascade replies + quote tweets received across ecosystem posts
creators[].quality_ratio fraction of posts with ≥10 weighted likes
creators[].mindshare_pct share of total ecosystem conversation (%)
creators[].signal_score composite rank across all ecosystem activity
creators[].focus_score Herfindahl index — 1.0 = pure specialist, lower = multi-token
creators[].focus_label Specialist (1-2 tokens) | Focused (3-4) | Broad (5+)
meta.ranking signal_score formula description
meta.total_tokens number of ecosystem tokens tracked
example response
{
  "ecosystem": "bankr",
  "creators": [
    {
      "username": "@singularityhack",
      "follower_count": 15560,
      "tier": "macro",
      "is_verified": true,
      "bankr_post_count": 3,
      "bankr_tokens": ["CLAWBANK"],
      "token_count": 1,
      "avg_likes": 83.3,
      "weighted_avg_likes": 83.3,
      "cascade": 4,
      "quality_ratio": 1.0,
      "mindshare_pct": 1.08,
      "signal_score": 349.19,
      "focus_score": 1.0,
      "focus_label": "Specialist (1-2 tokens)"
    }
  ],
  "meta": {
    "mode": "aggregate",
    "ranking": "signal_score (weighted_avg_likes * log10(followers) * quality_factor + cascade)",
    "total_tokens": 39,
    "time_window_hours": 24
  }
}
GET /v1/bankreco $0.50

bankr ecosystem overview — all 39 tokens ranked by attention metrics. attention share, velocity, engagement quality, health score, and rotation signal for every BANKR-launched token. use for ecosystem-wide monitoring, token health checks, and identifying where attention is moving.

query params
param values default
?sort_by= ATT_pct | velocity | unique_authors | engagement_quality | posts_count | avg_likes ATT_pct
?hours= 1 – 168 24
?limit= 1 – 39 10
?all= true | false false
?min_posts= integer 0
?exclude_zero_att= true | false false
?include_health= true | false true
response fields
field description
tokens[].symbol token symbol
tokens[].ATT_pct attention share as % of all bankr ecosystem posts
tokens[].velocity posts/hour vs baseline (3x+ = meaningful spike)
tokens[].unique_authors distinct creators posting about this token
tokens[].posts_count total posts in the window
tokens[].avg_likes average likes per post
tokens[].engagement_quality fraction of posts with ≥10 likes (0–1)
tokens[].trend growing | active | quiet | dead
tokens[].attention_stage lifecycle position: early | building | peak | fading | dormant
tokens[].rotation momentum direction signal
tokens[].top_author creator with most engagement on this token
tokens[].health.score overall health score (0–100)
tokens[].health.grade A | B | C | D | F
tokens[].health.status human-readable status label
tokens[].health.subscores momentum, authenticity, quality, onchain (each 0–25)
tokens[].health.opportunities signal opportunities detected
tokens[].health.risks risk flags detected
tokens[].health.action actionable insight summary
tokens[].address Base contract address
tokens[].handle official X/Twitter handle
meta.total_tokens total ecosystem tokens tracked (39)
meta.time_window_hours lookback window used
example response
{
  "ecosystem": "bankr",
  "tokens": [
    {
      "symbol": "GITLAWB",
      "ATT_pct": 12.4,
      "velocity": 4.2,
      "unique_authors": 18,
      "posts_count": 64,
      "avg_likes": 22.3,
      "engagement_quality": 0.72,
      "trend": "growing",
      "attention_stage": "building",
      "top_author": { "username": "@kevincodex", "followers": 10160 },
      "health": {
        "score": 74,
        "grade": "B",
        "status": "healthy momentum",
        "subscores": { "momentum": 20, "authenticity": 18, "quality": 19, "onchain": 17 },
        "opportunities": ["velocity spike — attention building"],
        "risks": [],
        "action": "strong organic build — watch for price follow-through"
      },
      "address": "0x...",
      "handle": "@gitlawb"
    }
  ],
  "meta": {
    "total_tokens": 39,
    "returned": 10,
    "time_window_hours": 24,
    "sort_by": "ATT_pct"
  }
}
GET /v1/rh/signal $0.15

cross-universe signal roll-up for Robinhood chain tokens — ranked opportunities with velocity, trend, and divergence. same shape as /v1/signal. reads from robinhood_momentum.json + robinhood.db.

query params
paramvaluesdefault
?limit=1 – 205
?min_velocity=float0.0
?spiking_only=boolfalse — shorthand for min_velocity=3.0
?divergence_only=boolfalse — only attention-up, price-flat/down tokens
?include_narrative=boolfalse — 80-120 char narrative per signal
response fields
fielddescription
signals[].symboltoken symbol
signals[].chainalways "robinhood"
signals[].ATT_pctattention share % within RH universe
signals[].MS_pctmindshare % (engagement-weighted)
signals[].INF_pctinfluence % (follower-weight-adjusted)
signals[].velocitymomentum multiplier vs 48h baseline
signals[].ATT_delta_pppp change vs prior heartbeat
signals[].mentions_1hraw mentions in last 2h
signals[].U_authors_deltachange in unique authors vs prior window
signals[].engagement_qualityfraction of posts with ≥10 likes (0–1)
signals[].top_account{ username, followers } — top posting account
signals[].ATT_trend_directionbuilding | stable | reversing
signals[].ATT_acceleratingtrue = rate of attention growth accelerating
signals[].att_price_divergencedivergence signal e.g. "att_up_price_down" (null if none)
signals[].signal_typespike (velocity ≥3.0) | building
signals[].unique_authorsdistinct posting accounts
signals[].posts_cleanspam-filtered post count
signals[].narrative80-120 char narrative (only when include_narrative=true)
signals[].narrative_confidenceconfidence 0–1 (only when include_narrative=true)
signals[].narrative_methodtemplate | haiku_validate | heuristic
totalsignals returned
chainalways "robinhood"
window_hoursrolling window used (2h)
last_heartbeatISO timestamp of last heartbeat update
fetch_method"xdb_rolling"
example response
{
  "chain": "robinhood",
  "signals": [
    {
      "symbol": "JUGGERNAUT",
      "chain": "robinhood",
      "ATT_pct": 13.61,
      "MS_pct": 8.2,
      "INF_pct": 18.4,
      "velocity": 3.7,
      "ATT_delta_pp": 2.1,
      "mentions_1h": 42,
      "U_authors_delta": 5,
      "engagement_quality": 0.48,
      "top_account": { "username": "cryptodev_eth", "followers": 12400 },
      "ATT_trend_direction": "building",
      "ATT_accelerating": true,
      "att_price_divergence": null,
      "signal_type": "spike",
      "unique_authors": 108,
      "posts_clean": 146
    }
  ],
  "total": 1,
  "window_hours": 2,
  "fetch_method": "xdb_rolling",
  "last_heartbeat": "2026-07-15T10:00:00Z"
}
GET /v1/rh/leaderboard $0.05

top robinhood chain tokens ranked by social attention share. same response shape as /v1/leaderboard with an added "chain": "robinhood" field. 25 tracked tokens including cashcat, juggernaut, hoodie, hoodrat, wallet, vex and more.

query params
paramvaluesdefault
?limit=1–10010
?sort_by=ATT_pct | MS_pct | INF_pct | ATT_delta | velocityATT_pct
?hours=1–16824
response fields
fieldtypedescription
chainstringalways "robinhood"
tokens[].symbolstringtoken symbol
tokens[].chainstringalways "robinhood"
tokens[].ATT_pctfloatattention share % among RH universe
tokens[].velocityfloatmomentum multiplier vs 48h baseline
tokens[].unique_authorsintdistinct posting accounts
tokens[].posts_cleanintspam-filtered post count
window_hoursintlookback window used
total_activeinttokens with posts in window
example response
{
  "chain": "robinhood",
  "tokens": [
    {
      "symbol": "JUGGERNAUT",
      "chain": "robinhood",
      "ATT_pct": 13.61,
      "velocity": 3.7,
      "unique_authors": 108,
      "posts_clean": 146
    }
  ],
  "window_hours": 24,
  "total_active": 22
}
GET /v1/rh/token/[symbol_or_ca] $0.75

full attention snapshot for a robinhood chain token. same response shape as /v1/token with "chain": "robinhood". accepts symbol (e.g. HOODIE, CASHCAT) or contract address. note: VIRTUAL on robinhood is a separate pool — use /v1/token/VIRTUAL for base, /v1/rh/token/VIRTUAL for robinhood.

query params
paramvaluesdefault
?hours=1–16824
?include_creators=booltrue
?include_health=booltrue
?limit_creators=1–2510
response fields
fieldtypedescription
symbolstringtoken symbol
chainstringalways "robinhood"
attention_stagestringearly / building / established
metrics.ATT_pctfloatattention share % among RH universe
metrics.velocityfloatmomentum multiplier vs 48h baseline
metrics.posts_countintposts in window
metrics.unique_authorsintdistinct posting accounts
metrics.avg_likesfloataverage likes per post
metrics.trendstringgrowing / active / quiet / dead
creators.top[]arraytop creators ranked by signal_score
top_posts[]arraytop posts by engagement in window
health.scoreint0–100 composite health score
health.gradestringA–F letter grade
example response
{
  "symbol": "HOODIE",
  "chain": "robinhood",
  "window_hours": 24,
  "attention_stage": "building",
  "metrics": {
    "ATT_pct": 3.76,
    "velocity": 1.95,
    "posts_count": 164,
    "unique_authors": 83,
    "avg_likes": 12.4,
    "trend": "active"
  }
}
GET /v1/rh/creators/[symbol] $0.15

top creators driving attention for a robinhood chain token. same response shape as /v1/creators/{symbol} with "chain": "robinhood". ranked by signal_score (avg_likes × log10(followers) × quality_ratio).

query params
paramvaluesdefault
?limit=1–5025
?hours=1–72024
?min_followers=integer0
?tier_filter=macro | micro | nano | allall
example response
{
  "symbol": "HOODRAT",
  "chain": "robinhood",
  "creators": [
    {
      "username": "@J777Crypto",
      "follower_count": 90158,
      "tier": "macro",
      "post_count": 3,
      "avg_likes": 34.7,
      "signal_score": 8.42
    }
  ],
  "meta": {
    "time_window_hours": 24,
    "data_source": "robinhood.db"
  }
}

Every endpoint response includes a signal_interpretation block. This 7-field agent-readable structure decodes the signal pattern in one glance.

signal_interpretation structure
field values & meaning
propagation_mode quiet: external triggers, low echo | organic: community self-amplification | viral: self-sustaining cascade
followthrough strong: momentum will compound | thin: won't compound much | uncertain: not enough data yet
decay_risk imminent: <1h | pending: 1-4h | low: 4h+ | unknown: insufficient data
flow_type organic: f_endo >0.5 (community-driven) | exogenous: f_endo <0.35 (external event) | mixed: in-between
price_alignment aligned: historically precedes price moves | misaligned: won't convert to price | roughly_aligned: sometimes follows | unknown: no history
summary one-word situation label: rotation_risk | early_momentum | fading_spike | sustained_build | exogenous_event | noise | building
agent_action_hint high_conviction: strong organic build, act | flag: notable but uncertain | monitor: watch closely | deprioritize: fading | rotate_out: attention leaving
from x402.http import x402_client
import httpx

client = x402_client(
    private_key="0xYOUR_KEY",
    httpx_client=httpx.Client()
)

# radar sweep — best opportunities right now ($0.15)
signal = client.get("https://api.checkr.social/v1/signal").json()

# deep dive on the top result ($0.75)
top = signal["signals"][0]["symbol"]
token = client.get(f"https://api.checkr.social/v1/token/{top}").json()
# x402-authenticated requests require HTTP signing
# use an x402-compatible client (Python SDK recommended)