Skip to main content

Market: Call Books, Mindshare and Trending Contracts

Whole-market views. None takes an asset.

EndpointAnswersUnit
Call books, crypto and equityWhich way is the crowd leaning, hour by hour, and is that unusual?Shares and percentiles, per hour
Mindshare, crypto and equityWhich assets get the most attention, and which is heating up?Share of attention, ranked
Trending contracts, cryptoWhich contract addresses are pasted most?Posts, ranked

Every source is always counted together. For one asset's long/short count, read Positioning.

Call Books​

GET /v3/market/crypto/call-book and GET /v3/market/equity/call-book: one bar per hour, newest first, plus a live tick for the current hour. A call book adds up the open call episodes across the market.

{
"bars": [
{
"barAt": 1790931300,
"live": true,
"longShare": 97.30953230878215,
"shortShare": 2.6904676912178473,
"crowdingPercentile": 99.4047619047619,
"accountCount": 9778,
"pulse24": 36.6047764468276,
"pulse24LongShare": 92.94117647058823,
"pulse6": 39.684791915907724,
"pulse6LongShare": 95,
"formulaVersion": "sentiment.v4",
"computedAt": 1790931329
},
{
"barAt": 1790928000,
"live": false,
"longShare": 97.31062760056167,
"shortShare": 2.6893723994383265,
"crowdingPercentile": 99.70238095238095,
"accountCount": 9782,
"pulse24": 37.26435276213999,
"pulse24LongShare": 92.73927392739274,
"pulse6": 43.41717079466551,
"pulse6LongShare": 94.4954128440367,
"formulaVersion": "sentiment.v4",
"computedAt": 1790928040
}
],
"nextCursor": "qFF5HKVt.MjAyNi0xMC0wMiAwODowMDowMCswMA",
"hasMore": true,
"servedFrom": 1790845105
}

GET /v3/market/crypto/call-book?from=1790845105&limit=2: the live tick, then the last closed hour.

Crowding: the positions already open.

FieldMeaning
longShare, shortShare0 to 100. Of the accounts holding a position, the share long and short
crowdingPercentile0 to 100. Where longShare sits among this book's hours of the last 28 days. 50 is typical
accountCountHow many accounts longShare counts

Pulse: the new calls.

FieldMeaning
pulse240 to 100. How unusual the last 24 hours' new calls are, against this book's history. 50 is typical; above, more long than usual; below, more short
pulse24LongShare0 to 100. Of the accounts behind those new calls, the share long. Null when none opened
pulse6, pulse6LongShareThe same over six hours

The row.

FieldMeaning
barAtThe hour the bar is read at. On the live tick, the tick's time
livetrue on the live tick. See below
formulaVersionThe calculation behind the row. Do not compare rows across versions
computedAtWhen the row was last written

Percentiles and pulse are null until the book has enough history, and pulse also when too few calls usually open in its window.

Read the lean through crowdingPercentile, not longShare. The accounts we follow lean long almost always. Above, crypto at 97.3% long sits at the 99th percentile of its month, an unusual hour. Equities at the same moment were 95.5% long, but only at the 17th percentile.

  • Each account counts once, voting with the majority of its positions. An evenly split account is not counted.
  • Crowding leaves out scalp positions; pulse counts every horizon. On crypto, both leave out stablecoins.
  • accountCount moves when positions open, close or expire, so longShare can shift with who entered or left, not only with minds changing.

Live Tick​

The newest row, rewritten every five minutes: where the current hour would close now. It is first with order=desc, last with order=asc, and missing for about five minutes after each hour closes. Check live.

To store a book, key closed bars on barAt and overwrite one when you read a later computedAt. Keep the live tick apart and replace it on every read.

ParameterValuesDefaultNotes
fromUnix secondsrequiredAgainst barAt
toUnix secondsnow
orderdesc, ascdesc
limit1 to 20050One bar per hour: 168 is a week
cursor

Mindshare​

GET /v3/market/crypto/mindshare and GET /v3/market/equity/mindshare: assets ranked by their share of their market's attention over a period, with hot on those heating up. Only assets we can name: addresses nobody has catalogued are in trending contracts.

{
"assets": [
{
"rank": 1,
"id": "b23e0b47-deec-4161-b49c-7e2652f07fe6",
"symbol": "BTC",
"name": "Bitcoin",
"share": 19.702310479753802,
"changePct": -5.355310893706889,
"hot": false,
"share1h": 14.210998158079724,
"share4h": 19.702310479753802,
"ratio1h4h": 0.7212858701360442,
"capped1h": 40
},
{
"rank": 2,
"id": "0fdfbd36-2ec0-4e72-a074-50c6df7e3e20",
"symbol": "ETH",
"name": "Ethereum",
"share": 11.886242309702883,
"changePct": 22.890781368498935,
"hot": false,
"share1h": 9.290341933441072,
"share4h": 11.886242309702883,
"ratio1h4h": 0.7816046225018696,
"capped1h": 26
}
],
"nextCursor": "jRAYCWaw.2:1790934948",
"hasMore": true
}

GET /v3/market/crypto/mindshare?limit=2: the default four hours, now.

FieldMeaning
rankBy share, continuing across pages. Can skip a number where an asset could not be named
id, symbol, nameThe asset's family. Pass id to entityIds
share0 to 100. Its share of the market's mentions in the period, each weighted by who posted it
changePctChange of share against the previous period, as a percent of itself. Null when it had none
hotHeating up in the last hour. See below. null with period=1h
share1h, share4hShare of the last hour and of the last four, whatever the period
ratio1h4hshare1h / share4h. Above 1, the last hour runs ahead. Null when either is 0
capped1hLast hour's mentions, one per account per five minutes

Hot​

An asset is hot when all hold, at to:

ratio1h4h ≥ 1.25    the last hour runs well ahead of the last four
capped1h ≥ 3 on more than one or two mentions
not a stablecoin
top 25 by share

At most eight carry it, the highest ratio1h4h first, the same on every page. For your own threshold, read ratio1h4h and capped1h.

ParameterValuesDefaultNotes
period1h, 4h, 24h, 7d4hThe stretch share covers, ending at to
toUnix secondsnowRead at the last whole five minutes. Within your history
limit1 to 20050
cursorLater pages read the same moment as page one

No from and no order. A cursor older than your history is a 400, Invalid cursor.: start again.

Trending Contracts​

GET /v3/market/crypto/trending-contracts: EVM and Solana contract addresses ranked by how many posts pasted them, named where we know the deployment. The ones worth watching are often the unnamed.

{
"contracts": [
{
"rank": 1,
"contractAddress": "oreoU2P8bN6jkk3jbaiVxYnG1dCXcYxwhwyK9jSybcp",
"mentionCount": 113,
"asset": {
"id": "87fa7009-dc18-44c6-a4f7-58e228f846c0",
"symbol": "ORE",
"name": "ORE",
"chains": ["solana"]
}
},
{
"rank": 2,
"contractAddress": "0xdee52f2ab639b6942b0d0f0565400b93b7a0fbe5",
"mentionCount": 103,
"asset": {
"id": "00b9115f-e338-40c4-9d26-95725bc0b18d",
"symbol": "HARMONIC",
"name": "Harmonic Agent",
"chains": ["robinhood"]
}
},
{
"rank": 3,
"contractAddress": "4MMQY9bwkxxTtsK3W227Q5ABT6yFY8Pmn9Ze7wmAXKY8",
"mentionCount": 77,
"asset": null
}
],
"nextCursor": "C12Onp55.4:1790931518",
"hasMore": true,
"servedFrom": 1790845105
}

GET /v3/market/crypto/trending-contracts?from=1790845105&limit=4, trimmed to three rows.

FieldMeaning
rankBy mentionCount. Ties by address
contractAddressEVM in lower case, counted once in any case. Solana as posted
mentionCountPosts, not accounts: one account posting it ten times counts ten
assetid, symbol, name and chains (CoinGecko's chain names). Null when we know no deployment

An address several tokens share is named for the one on its home chain: Solana for a base58 address, then Ethereum, Base, Arbitrum, BNB Chain, Optimism, Polygon and Avalanche for a 0x one. So wrapped SOL is Solana. When the home chains do not pick one, asset is null.

ParameterValuesDefaultNotes
fromUnix secondsrequiredOver 30 days is cut to the 30 before to, and servedFrom says so
toUnix secondsnow
minMentions1 or more5Leaves out addresses pasted fewer times
limit1 to 20050
cursorLater pages rank the same posts as page one

No order and no source filter. Nothing above minMentions is a 200 with an empty list: lower it or move from back.