v3.0.0

real-time attention intelligence for Base tokens. 5 endpoints, 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, price, hawkes analysis, timing, narrative, spike history, top creators, project health score. accepts symbol or contract address. e.g. /v1/token/BNKR or /v1/token/0xa1f72459dfa10bad200ac160ecd78c6b77a747be

query params
param values default
?hours= 1 – 168 4
response fields (selected)
field description
symbol token symbol
updated_at timestamp of analysis
attention.ATT_pct current composite attention share (%)
attention.MS_pct mindshare (%)
attention.INF_pct influence (%)
attention.velocity momentum multiplier vs baseline
attention.ATT_delta_1h attention change in last hour
attention.ATT_delta_4h attention change in last 4 hours
price.price_usd live price from GeckoTerminal
price.change_1h_pct price change (1h)
price.change_24h_pct price change (24h)
price.market_cap market cap (USD)
price.volume_24h 24h trading volume (USD)
divergence.detected true when attention up but price flat/down
spike_history.confirmed count of confirmed spikes with price follow-through
spike_history.total total count of detected spikes
spike_history.hit_rate % of spikes that resulted in price movement
timing.window_open is the current signal still actionable?
timing.entry_quality "strong" | "moderate" | "weak" | "closed"
timing.peak_attention_in_hours estimated hours to peak attention (null if passed)
timing.cascade_multiplier expected total mentions this event will generate
timing.decay_rate "fast" | "moderate" | "slow" | "unknown"
hawkes.ais Attention Intelligence Score from Hawkes process
hawkes.branching_factor expected replies per post. >0.8 = self-sustaining
hawkes.branching_factor_weighted follower-weighted branching. higher = influential accounts amplifying
hawkes.viral_potential SEISMIC score. >2.0 = high viral potential
hawkes.organic_fraction community-driven share (0-1)
hawkes.influence_concentration 0 = distributed, 1 = single whale. high = fragile signal
hawkes.top_competitors competing tokens with pressure scores
narrative.summary brief narrative of what's being discussed
narrative.signal_type "spike" | "building" | "divergence" | "noise"
recent_posts[] top posts ≥10 likes with text, author, engagement, created_at
signal_interpretation agent-readable signal block (see reference section)

Full response includes complete attention, price, hawkes, timing, narrative, and historical data. Example omitted for brevity.

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"
  }
}

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)