DEV Community

logan miller
logan miller

Posted on Originally published at agentdatum.com

56.86% of gold open interest is one crowded bet, and bitcoin fees are 1 sat/vb: notes from a week of positioning data

I keep two kinds of numbers in the same API: what traders have actually committed money to, and what the chain itself is doing. This week they told opposite stories, so I sat down and read both tapes side by side.

I run an open data catalog for agents, and the boring part of that job is checking whether my own feeds contradict each other. They did. Here is what I found and the exact calls I used.

the gold trade is one sided, until you look at the small contract

The CFTC weekly report I pulled has a report date of 2026-08-25 and covers 35 contracts.

Full size GOLD futures: open interest 427,957 contracts, large speculator net long +243,334. That is 56.86% of all open interest sitting on one side, and it grew by 21,145 contracts in a single week. Commercial hedgers are on the other side at -279,585 net.

Then I looked at MICRO GOLD, same metal, smaller contract: speculator net position is -18,789, which is -26.49% of its open interest. Net short.

So the two gold books disagree by sign. My first instinct was to call it a retail versus institution split. That instinct was wrong enough that I want to flag it early: MICRO GOLD lists only 39 reporting traders, while full size GOLD lists 295. A handful of accounts can flip a small book. Sign disagreement here is not proof of a crowd fight.

the equity index tape split in one week

Same report, stock index contracts:

  • E-MINI S&P 500: speculator net -67,994, which is -3.32% of 2,045,669 open interest, after a one week swing of -57,434 contracts
  • MICRO E-MINI S&P 500: speculator net -101,807, or -34.79% of open interest, a -50,047 weekly swing
  • NASDAQ-100 Consolidated: speculator net +11,127, up +23,193 on the week
  • MICRO E-MINI NASDAQ-100: speculator net +10,872, up +27,379 on the week

Short the S&P, long the Nasdaq, in the same seven days, in both contract sizes. Other crowded readings in the same file: USD INDEX at +38.96% of open interest, COPPER at +30.10%, SILVER at +22.20%, JAPANESE YEN at -16.47%.

meanwhile the bitcoin chain is quiet and the mood gauge says greed

Futures positioning in bitcoin is almost flat. The full size BITCOIN contract shows speculator net +1,949 on 22,216 open interest (8.77%), NANO BITCOIN PERP STYLE shows +6,213 (2.68%, spread across 1,196 traders), and MICRO BITCOIN shows -3,737 (-10.05%). Nobody is committed.

The chain side of my catalog, pulled 2026-09-01:

  • network hashrate 922.89 EH/s, difficulty 125,807,076,547,197.5
  • recommended fees 1 sat/vB regular, 2 sat/vB priority
  • 149 to 151 blocks in 24h, 6,979 unconfirmed transactions in the mempool, 722,590 transactions in 24h
  • price $77,538, down 1.32% on the day, with total crypto market cap at $2.752 trillion and bitcoin dominance 56.85%

The crypto fear and greed index the same day reads 69, labeled Greed, against a 30 day average of 47.3 and a 90 day range of 8 to 74.

That is the contradiction I care about. Sentiment reads greedy, positioning reads flat, and the fee market reads dead. At 1 sat/vB nobody is bidding for block space, so almost all miner revenue is coming from the subsidy while hashrate sits near record levels. Record security spending against a near zero fee market is a squeeze, not a boom.

Pool distribution for the last 24h, 151 blocks total: Unknown 57.62% (87 blocks), F2Pool 16.56% (25), AntPool 14.57% (22), ViaBTC 9.27% (14), BTC.com 1.32%, Braiins Pool 0.66%.

the calls

Everything above came from plain GET requests, no key needed to see the shape of the response:

curl -s https://agentdatum.com/api/v1/d/cftc-cot
curl -s https://agentdatum.com/api/v1/d/btc-hashrate
curl -s https://agentdatum.com/api/v1/d/btc-pools
curl -s https://agentdatum.com/api/v1/d/btc-mempool-fees
curl -s https://agentdatum.com/api/v1/d/crypto-fear-greed
Enter fullscreen mode Exit fullscreen mode

The crowding screen I actually run, which is the only piece of logic in this whole post:

import requests

cot = requests.get("https://agentdatum.com/api/v1/d/cftc-cot", timeout=20).json()
rows = cot["data"]["data"]
print("report date:", cot["data"]["report_date"])

for r in sorted(rows, key=lambda x: -abs(x["large_spec_net_pct_oi"])):
    pct = r["large_spec_net_pct_oi"]
    if abs(pct) < 20:
        continue
    print(f'{r["contract"][:30]:<32} {pct:>7.2f}% of OI  '
          f'wow {int(r["large_spec_net_change_wow"]):>+8}  '
          f'traders {int(r["traders_total"] or 0):>4}')
Enter fullscreen mode Exit fullscreen mode

I sort by absolute percent of open interest instead of raw contract counts, because raw counts just rank contracts by size. And I print the trader count next to every line, since that is what stopped me from over reading the micro gold signal.

the honest part

Four limits, all of which apply to the numbers above.

The CFTC file is stale by design. I collected it on 2026-09-01, but the report date is 2026-08-25. The agency samples Tuesday and publishes Friday afternoon, so any positioning claim here is up to a week behind price. If you trade off it intraday, you are trading a memory.

Contract size splits are weak evidence. The micro versus full size disagreement in gold, and the 32 reporting traders behind the -34.79% micro S&P reading, are thin books. I report the number because it is real, not because it is a signal.

The 57.62% Unknown pool share is a labeling gap, not concentration. It means the block tagging did not resolve those coinbase signatures, so treat named pool shares as a lower bound and do not read a majority miner into it.

One quiet fee day is not a fee trend. 1 sat/vB with a 6,979 transaction mempool describes today. The subsidy squeeze argument only holds if it persists across difficulty periods, and I do not have that claim in a single snapshot.

One more limit, this one about my own product: the catalog is wide rather than deep. There are 323 resources in it right now, spanning chain data, futures positioning, macro releases and commodities, and no single one of them goes as deep as a dedicated vendor for that asset. I optimize for one agent being able to reach many markets through one interface, and that tradeoff is real.

If you want to point an agent at any of this, the machine readable index lives here:

https://agentdatum.com/.well-known/ai-catalog.json

That file lists every resource with its identifier, endpoint, price and sample queries, so an agent can discover and call feeds without me writing a wrapper for each one.


Written with AI assistance. Every number in this post came from the live endpoints listed above, collected 2026-09-01, and was checked against the raw responses before publishing.

Top comments (0)