Data API
Markets
Where proven wallets agree with each other, and where they disagree with the book.
Both endpoints answer the same underlying question from opposite directions. Consensus asks what are the good wallets buying. Divergence asks where is the crowd priced differently from the wallets that tend to be right. The second is the interesting one; it is also the noisier one.
Consensus
GET
/v1/markets/consensusMarkets where proven wallets are leaning the same way.
Query parameters
| Name | Type | Description |
|---|---|---|
limit | int | Markets to return. |
Try it/v1/markets/consensus?limit=5
Kept in this browser only, and reused on every page. Never sent anywhere but the API.
Response
{
"consensus": [
{
"condition_id": "0x1f2c...",
"title": "Will X happen by December?",
"slug": "will-x-happen-by-december",
"category": "politics",
"net_cents": 6.2,
"direction": "Yes",
"proven_wallets": 23,
"conviction": 0.71,
"smart_volume_shares": 412000.0
}
],
"meta": { "limit": 1 }
}Response fields
| Name | Type | Description |
|---|---|---|
net_cents | float | Net lean in cents. Positive means proven wallets are buying the stated direction. |
direction | string | Which outcome the flow favours. |
proven_wallets | int | How many distinct proven wallets are in this figure. Two wallets agreeing is not consensus. |
conviction | float | How strongly they lean, 0–1 — size and agreement combined. |
smart_volume_shares | float | Volume behind the signal, in shares. Sizes the flow rather than counting it. |
Divergence
GET
/v1/markets/divergenceMarkets where the book and the smart money disagree.
Query parameters
| Name | Type | Description |
|---|---|---|
limit | int | Markets to return. |
Try it/v1/markets/divergence?limit=5
Kept in this browser only, and reused on every page. Never sent anywhere but the API.
Response
{
"divergence": [
{
"condition_id": "0x1f2c...",
"title": "Will X happen by December?",
"slug": "will-x-happen-by-december",
"book_cents": 41.0,
"smart_cents": 53.5,
"divergence_cents": 12.5,
"direction": "Yes",
"proven_wallets": 18,
"net_flow": 214000.0,
"conviction": 0.66,
"smart_volume_shares": 380000.0
}
],
"meta": { "limit": 1 }
}Response fields
| Name | Type | Description |
|---|---|---|
book_cents | float | What the order book says the outcome is worth. |
smart_cents | float | What proven wallets are paying, on average. |
divergence_cents | float | The gap. This is the whole point of the endpoint. |
net_flow | float | Net USDC flow from proven wallets into the stated direction. |
conviction | float | Confidence in the lean, 0–1. |
A wide gap is not a trade. Divergence is largest in thin markets, where it is often just one wallet and a bad book. Read
proven_wallets and smart_volume_shares alongside it — a 20-cent gap on three wallets is noise; a 4-cent gap on thirty is worth a look.Finding real disagreement
JavaScript
const res = await fetch(
`${BASE}/v1/markets/divergence?limit=100`,
{ headers: { 'X-API-Key': KEY } },
);
const { divergence } = await res.json();
// Depth first, then size of the gap — the other order surfaces thin markets.
const worthReading = divergence
.filter((m) => m.proven_wallets >= 10 && m.conviction >= 0.5)
.sort((a, b) => Math.abs(b.divergence_cents) - Math.abs(a.divergence_cents))
.slice(0, 10);