Skip to main content
One x402 endpoint for narrative-versus-flow divergence. Social feeds tell you what is being talked about. Subgraphs tell you what is being traded. Neither can tell you where those two disagree — that is the JOIN Graph Advocate assembles.

What you get

Per-call payment in USDC on Base via x402. No subscription, no API key, no free tier.

The two readings

Overhyped — high social rank, low flow rank. The talk is running ahead of the money. Under the radar — real on-chain flow with little social attention. This is the direction a purely social feed structurally cannot produce, because the signal is the absence of tweets.

Why acceleration, not volume

The on-chain half is deliberately not absolute volume. Ranking tokens by USD volume ranks them by size: LINK beats a small token every day of the week, and that says nothing about whether anything is happening. Instead each token’s last 2 days of volume is compared against its own prior 8-day baseline. That parallels how social momentum is itself a velocity, and it means a 50ktokenaccelerating4×outranksa50k token accelerating 4× outranks a 500M token drifting sideways — which is the entire point.

Sample request

Response (abridged):

What it refuses to guess

Social feeds emit ticker symbols, not contract addresses, and tickers are actively squatted. Uniswap V3 on Ethereum carries five tokens called “Morpho Token” and roughly fifteen claiming LINK. Worse, some impostors are genuinely liquid: DOGE resolves on-chain to “Department Of Government Efficiency” with over 100,000 transactions, so no liquidity threshold can separate it from the real thing. Resolution therefore goes through CoinGecko’s market-cap-ranked registry, which answers both questions authoritatively: which address is canonical, and whether an EVM contract exists at all. Dogecoin’s Ethereum entry is correctly absent, so the memecoin is never substituted for it. Anything that cannot be resolved is returned in unresolved with a reason — never dropped: A caller comparing counts will always be able to reconcile them. A confident wrong answer is worse than a stated gap.

Freshness

social_source and sentiment_shift_source each report live, cache or stale. The social half is fetched on a timer and shared across callers; the on-chain half is queried live on every request, so flow is never stale even when sentiment is.

Parameters

Ranks are relative to the fetched cohort, not the whole market.

Sources

Social momentum and sentiment shift from Cambrian deep42. On-chain flow from Uniswap V3 subgraphs via The Graph. Symbol resolution via CoinGecko.