<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: logan miller</title>
    <description>The latest articles on DEV Community by logan miller (@logan_miller_4f1197f8b642).</description>
    <link>https://dev.to/logan_miller_4f1197f8b642</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4077194%2F231317f7-e829-43fe-a5f5-826f217f206c.png</url>
      <title>DEV Community: logan miller</title>
      <link>https://dev.to/logan_miller_4f1197f8b642</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/logan_miller_4f1197f8b642"/>
    <language>en</language>
    <item>
      <title>what 571,791 daily bitcoin transactions and a fear gauge at 74 told me about a market that keeps running</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Sat, 05 Sep 2026 02:11:31 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-571791-daily-bitcoin-transactions-and-a-fear-gauge-at-74-told-me-about-a-market-that-keeps-bec</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-571791-daily-bitcoin-transactions-and-a-fear-gauge-at-74-told-me-about-a-market-that-keeps-bec</guid>
      <description>&lt;p&gt;I keep seeing posts that treat on-chain activity as a price forecast. So I pulled the live numbers myself to check whether the chain is actually busy or if it is just narrative.&lt;/p&gt;

&lt;p&gt;Here is what the network reported at 02:08 UTC on September 5, 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;571,791 transactions settled in 24 hours&lt;/li&gt;
&lt;li&gt;2,894 transactions waiting in the mempool&lt;/li&gt;
&lt;li&gt;136 blocks mined in the day&lt;/li&gt;
&lt;li&gt;network difficulty at 125.8 trillion&lt;/li&gt;
&lt;li&gt;275 reachable nodes&lt;/li&gt;
&lt;li&gt;spot price $79,520, down 2.02% on the day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The chain is doing real work. Half a million transfers a day is not a sleepy network.&lt;/p&gt;

&lt;p&gt;You can pull the same data. This call returns a 200 with no API key, just an anonymous id header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'X-Anonymous-Id: demo-123'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://agentdatum.com/api/v1/d/btc-onchain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The free tier gives 100 credits a month, one request every five seconds. Add a read only wallet address in the X-Wallet header and the monthly limit goes to 5000.&lt;/p&gt;

&lt;p&gt;Now the part that gave me pause. While the chain runs hot, sentiment is at a corner. The crypto fear and greed index printed 74 on September 4, the top of its 90 day range. Its 30 day average is 51.4, so this reading sits well above the norm. Gold is stretched too. The signal model puts front month gold at 4340.70 with a 30 day z score of 4.18 and a percentile rank of 100. That means the move is an outlier against its own history, with 20 day volatility at just 1.56 percent.&lt;/p&gt;

&lt;p&gt;Meanwhile the geopolitical tension score sits at 42.9 out of 100, tagged normal, with a 14 day intensity z score of minus 0.19. Nothing is flashing red on the news front.&lt;/p&gt;

&lt;p&gt;Here is the honest read. A busy chain and a greedy sentiment gauge are two different animals. Transaction count tells you the network is used. It does not tell you the price is going up. I have watched usage stay flat while price doubled, and I have watched usage spike during a crash. The two disagree often.&lt;/p&gt;

&lt;p&gt;The fear and greed number is a mood, not a map. At 74 it says the crowd is optimistic, nothing more. It has been wrong at both ends. The gold z score of 4.18 is a real warning that the move is stretched, but a stretched market can stay stretched. The model flags the outlier, it does not time the turn. The geopolitical score is built from news coverage intensity, so a quiet reading means the cameras looked elsewhere, not that the world is safe.&lt;/p&gt;

&lt;p&gt;I like pulling these from one place because the catalog is machine readable. The full list of endpoints is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are 298 resources in that file right now, each callable the same way. I use it when I want raw numbers instead of someone's summary.&lt;/p&gt;

&lt;p&gt;My take: the chain is healthy, sentiment is hot, and the macro backdrop is quiet. I weight the on-chain usage as proof of a live network, not as a buy signal. The extremes in sentiment and the gold z score are the items I watch for a pullback, not reasons to act today.&lt;/p&gt;

&lt;p&gt;This article was written with AI assistance for drafting and editing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what a 4.79% 10-year yield and a 30-period low euro told me about the dollar's quiet bid, september 5, 2026</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Fri, 04 Sep 2026 17:03:56 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-a-479-10-year-yield-and-a-30-period-low-euro-told-me-about-the-dollars-quiet-bid-september-2pp4</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-a-479-10-year-yield-and-a-30-period-low-euro-told-me-about-the-dollars-quiet-bid-september-2pp4</guid>
      <description>&lt;p&gt;I keep a small morning habit. Before I read any commentary, I pull two things: the US treasury curve and the live FX table. Not because I trade them, but because they are the cleanest read on where the dollar and rates actually sit, away from the headlines.&lt;/p&gt;

&lt;p&gt;Here is what the data showed me this morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  the yield curve is barely non-inverted
&lt;/h2&gt;

&lt;p&gt;The 10-year US yield printed 4.79%. The 2s10s spread sits at plus 0.43 basis points. The fed funds rate is 3.63%. The endpoint labels this "normal and steep, soft landing expectation."&lt;/p&gt;

&lt;p&gt;That last label needs a caveat. A 0.43bp spread is basically zero. The curve is not steep, it is one twitch away from flat. What changed is the direction: across the 30-point history window the 10-year climbed from 4.63 to 4.79, about 16bp of steepening as the short end held near the fed funds mark. So the story is "un-inverting slowly," not "booming."&lt;/p&gt;

&lt;h2&gt;
  
  
  the euro is at a 30-period low
&lt;/h2&gt;

&lt;p&gt;On the FX side the dollar base table shows 1 USD buys 0.860629 euro. Run that through the processed signal and the euro sits at percentile rank 0.0 over the last 30 periods, with a 4-period momentum of minus 0.003. The endpoint's own read: "near the 30-period low, slightly weaker recently." In plain terms, the dollar has a quiet bid and the euro is the weak leg.&lt;/p&gt;

&lt;p&gt;It is not just the euro. The same dollar base shows 1 USD buys 0.7398 pound, 1.3897 australian dollar, 0.8082 swiss franc, and 6.7183 offshore yuan. When the processed signal says "low" and the raw table agrees across majors, the dollar bid is broad, not a one-pair artifact.&lt;/p&gt;

&lt;h2&gt;
  
  
  how I pulled it
&lt;/h2&gt;

&lt;p&gt;Both feeds are live on the public endpoint. The catalog is free to read. The data endpoints need an anonymous id header, which gives 100 credits a month and a gentle one call per five seconds limit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-Anonymous-Id: my-readonly-id"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://agentdatum.com/api/v1/d/fx-rates &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import sys,json; d=json.load(sys.stdin); r=d['raw']['rates']; print('EUR',r['EUR'],'GBP',r['GBP'],'AUD',r['AUD'])"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-Anonymous-Id: my-readonly-id-2"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://agentdatum.com/api/v1/d/processed-us-yield &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import sys,json; d=json.load(sys.stdin); print(d['snapshot'])"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full menu of what is wired up lives here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;Two signals agree, and that feels good. But agreeable is not the same as certain. Three limits I keep in mind:&lt;/p&gt;

&lt;p&gt;First, the windows are short. The 30-period history is roughly a month of daily prints. "30-period low" is a near term momentum call, not a structural dollar regime. Stretch the window and the euro may sit mid range.&lt;/p&gt;

&lt;p&gt;Second, the 2s10s at 0.43bp is a rounding error from flat. Calling it "steep" overstates a sliver of a move. The honest read is "no longer inverted," which is different from "risk on."&lt;/p&gt;

&lt;p&gt;Third, these are spot snapshots. They tell you where price is, not where policy or flows go next. The fed funds print is a known anchor. The 10-year is a market bet that can reverse on one jobs print.&lt;/p&gt;

&lt;p&gt;The broader tradeoff with this kind of feed is coverage versus depth. You get 290 plus endpoints across crypto, macro, and equities, which is great for a cross asset morning scan. You do not get the deep single market context a specialist terminal gives you. For a daily read that is the right trade to make.&lt;/p&gt;

&lt;p&gt;If you want to wire any of this into an agent or a notebook, start from the catalog above. It is one JSON file, no sales call.&lt;/p&gt;

&lt;p&gt;This article was assisted by an AI writing tool. The data points are pulled from live endpoints and are quoted as returned.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>the crowd was short, the funding was long: what dealer gamma and a 0.77 ratio told me about positioning today</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Fri, 04 Sep 2026 02:10:47 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/the-crowd-was-short-the-funding-was-long-what-dealer-gamma-and-a-077-ratio-told-me-about-530</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/the-crowd-was-short-the-funding-was-long-what-dealer-gamma-and-a-077-ratio-told-me-about-530</guid>
      <description>&lt;p&gt;I keep a boring habit. Before I let any of my agents act on a market read, I pull raw positioning data from my own data service and check whether the different measures actually agree with each other.&lt;/p&gt;

&lt;p&gt;Most days they roughly do. Today, September 4, they did not, and the disagreement was the interesting part.&lt;/p&gt;

&lt;p&gt;Here is what I pulled and what I think it means.&lt;/p&gt;

&lt;h2&gt;
  
  
  large caps are pinned, small caps are not
&lt;/h2&gt;

&lt;p&gt;The first thing I looked at was dealer gamma exposure across the three index proxies I track. Snapshot generated at 2026-09-03T22:23Z, computed from live option chains using strike, open interest and implied volatility.&lt;/p&gt;

&lt;p&gt;SPY, spot 773.17, net gamma exposure of about &lt;strong&gt;+$4.54 billion per 1% move&lt;/strong&gt;, from 3,451 contracts counted. Positive gamma. Market makers hedge against the direction of price there, so movement gets absorbed rather than amplified. Call wall at 775, put wall at 760, put to call open interest ratio 2.899.&lt;/p&gt;

&lt;p&gt;QQQ, spot 717.67, &lt;strong&gt;+$799 million per 1%&lt;/strong&gt;, also positive gamma. Call wall 720, put wall 700, put to call ratio 1.528.&lt;/p&gt;

&lt;p&gt;IWM, spot 295.19, &lt;strong&gt;negative $2.99 billion per 1%&lt;/strong&gt;. Negative gamma. Hedging flows there move with price instead of against it, which tends to stretch moves rather than damp them. Call wall 300, put wall 295, put to call ratio 2.708.&lt;/p&gt;

&lt;p&gt;So two of three are in a regime that suppresses movement and one is in the regime that feeds it.&lt;/p&gt;

&lt;p&gt;The part that made me sit up was the flip levels. SPY's nearest gamma flip sits at 770.23, which is 0.38% &lt;strong&gt;below&lt;/strong&gt; spot. QQQ's is 716.17, only 0.21% below spot. IWM's is 299.21, 1.36% &lt;strong&gt;above&lt;/strong&gt; spot.&lt;/p&gt;

&lt;p&gt;Translated: the large cap calm is standing on a very thin floor, and small caps would have to rally over 1% just to get back into the calm regime.&lt;/p&gt;

&lt;h2&gt;
  
  
  bitcoin positioning contradicts itself
&lt;/h2&gt;

&lt;p&gt;Then I pulled the crypto side, live at 2026-09-04T02:05Z.&lt;/p&gt;

&lt;p&gt;The long short account split on BTCUSDT came back as 43.56% of accounts long against 56.44% short, a &lt;strong&gt;long short ratio of 0.7718&lt;/strong&gt;. By head count, the crowd is leaning short. Open interest sat at &lt;strong&gt;113,203 BTC&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But my cross source synthesis layer, run at 2026-09-03T22:33Z, reported that &lt;strong&gt;79.3% of perpetual markets had positive funding&lt;/strong&gt;, which it classifies as long leaning with confidence 0.82.&lt;/p&gt;

&lt;p&gt;Those two do not describe the same market. More accounts short, most funding paid by longs. The usual reconciliation is size: a smaller number of larger long positions can pay funding across the board while the account count still tilts the other way.&lt;/p&gt;

&lt;p&gt;Price context matters here too. BTC was quoted at &lt;strong&gt;$80,997, up 5.51% over 24 hours&lt;/strong&gt;, with 757,263 transactions in the last day, 166 blocks, only 4,201 transactions sitting in the mempool, and network hashrate at 911.29 EH/s.&lt;/p&gt;

&lt;p&gt;A 5.5% daily rally into a majority short account base is exactly the setup where I stop trusting a single sentiment number.&lt;/p&gt;

&lt;h2&gt;
  
  
  metals are the loudest thing on the board
&lt;/h2&gt;

&lt;p&gt;Gold futures printed 4340.70, up 2.30% on the day, with 4 period momentum of &lt;strong&gt;+7.34%&lt;/strong&gt; and a 30 period z score of &lt;strong&gt;4.18&lt;/strong&gt;, sitting at the 100th percentile of its own 30 period range. Twenty period volatility was 1.56%.&lt;/p&gt;

&lt;p&gt;Silver printed 63.332, up 3.03%, with 4 period momentum of &lt;strong&gt;+9.37%&lt;/strong&gt; and a 30 period z score of 2.80, also 100th percentile.&lt;/p&gt;

&lt;p&gt;Both metals at the top of their range while equity dealers sit in vol suppressing positive gamma is not a comfortable combination. One of those two readings is wrong about what comes next.&lt;/p&gt;

&lt;h2&gt;
  
  
  pulling it yourself
&lt;/h2&gt;

&lt;p&gt;Every number above came from endpoints you can hit right now. One detail first: a bare request returns HTTP 402 with a &lt;code&gt;payment-required&lt;/code&gt; header, because these are metered. You get around that for free by sending an identifier header, which draws from a monthly free credit allowance instead of a payment.&lt;/p&gt;

&lt;p&gt;Dealer gamma, the exact command that produced the numbers in this post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'X-Anonymous-Id: your-own-id'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://agentdatum.com/api/v1/d/sig-options-gex &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import sys,json;d=json.load(sys.stdin)['raw'];&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
[print(s['symbol'],s['spot'],s['regime'],s['nearest_gamma_flip'],s['put_call_oi_ratio']) for s in d['symbols']]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which prints:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SPY 773.17 positive-gamma 770.23 2.899
QQQ 717.67 positive-gamma 716.17 1.528
IWM 295.19 negative-gamma 299.21 2.708
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crypto positioning, same pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'X-Anonymous-Id: your-own-id'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://agentdatum.com/api/v1/d/crypto-longshort &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import sys,json;r=json.load(sys.stdin)['raw'];&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
print(r['symbol'],r['long_account'],r['short_account'],r['long_short_ratio'])"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both responses carry a &lt;code&gt;collected_at&lt;/code&gt; timestamp and a &lt;code&gt;source&lt;/code&gt; field, which matters more than it sounds. I want to know whether I am reading a live pull or a cached snapshot before I let an agent act on it. The gamma response came back stamped 2026-09-03T22:23:10Z with &lt;code&gt;source: datum-signals&lt;/code&gt;, the positioning response came back &lt;code&gt;source: live&lt;/code&gt; at 02:09Z.&lt;/p&gt;

&lt;p&gt;Numbers on the paid path, since hiding pricing annoys me when other people do it: the free anonymous allowance is 100 credits a month at 1 credit per $0.001, and it is rate limited to one call every 5 seconds. I hit that limit while writing this and had to wait. Sending a read only wallet address instead of an anonymous id raises the allowance to 5,000 a month and drops the rate limit. Past that, the gamma endpoint is priced at 50,000 USDC units on Base, which is $0.05 per call, settled over x402.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;A few things I would not want anyone to gloss over.&lt;/p&gt;

&lt;p&gt;The gamma numbers are model output, not observed dealer books. They come from Black Scholes gamma applied to strike, open interest and implied volatility, with the assumption that calls sit positive and puts negative on the dealer side. That assumption breaks when a lot of the call open interest is actually overwriting by funds. So treat the regime label as a lean, not a fact.&lt;/p&gt;

&lt;p&gt;The timestamps are not aligned. Gamma and metals are 22:2xZ snapshots from the prior session close, while the bitcoin numbers are live at 02:05Z. Mixing a stale equity snapshot with a live crypto pull is fine for a directional read and wrong for anything tighter than that.&lt;/p&gt;

&lt;p&gt;The long short ratio comes from one exchange, not the whole market. It is a reasonable proxy and it is not a census.&lt;/p&gt;

&lt;p&gt;One number I deliberately did not build a story on: my synthesis layer reported DeFi real yield at &lt;strong&gt;37.56%&lt;/strong&gt;, from a median nominal APY of 37.68% across 200 pools minus US CPI. That median is heavily distorted by tiny incentive pools, so the figure is technically correct and practically useless as a yield expectation. I keep it in the response because the derivation is transparent, not because I would trade it.&lt;/p&gt;

&lt;p&gt;Also worth saying plainly: crypto fear and greed printed 65, labeled greed, against a 30 day average of 49.8 and a 90 day range of 8 to 74. So sentiment is warm but nowhere near its own extreme. That is a third reading that agrees with neither the short account tilt nor the long funding tilt.&lt;/p&gt;

&lt;p&gt;Three measures, three answers. That is a real state of the market, not a data problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  why I built this instead of buying a terminal
&lt;/h2&gt;

&lt;p&gt;I run automated strategies and I got tired of paying for dashboards that show me a chart when what I need is a value my code can read. So I ended up building the collector layer myself, and it now serves 298 machine readable resources over plain HTTP, with an x402 payment path for the metered ones.&lt;/p&gt;

&lt;p&gt;The trade off is real. Coverage across crypto, metals, equity options, macro and government data is wide, and depth on any single market is thinner than a specialist vendor. If you need full tick depth on one exchange, buy from that specialist. If you need forty different signals your agent can read in one loop without forty separate contracts, that is the gap I was trying to close.&lt;/p&gt;

&lt;p&gt;Machine readable index of what is available, including endpoint URLs and pricing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you pull these endpoints and get a read different from mine, I would rather hear it than not.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Written with AI assistance. All figures were pulled from live endpoints at the timestamps stated above and were not generated by a model.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what 52 of 54 airdrop campaigns on one exchange and one 85 score taught me about reading the noise</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Thu, 03 Sep 2026 17:04:28 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-52-of-54-airdrop-campaigns-on-one-exchange-and-one-85-score-taught-me-about-reading-the-noise-3lmm</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-52-of-54-airdrop-campaigns-on-one-exchange-and-one-85-score-taught-me-about-reading-the-noise-3lmm</guid>
      <description>&lt;p&gt;I run a small data feed that watches exchange airdrop announcements. Not because airdrops pay my rent, but because they are a clean window into where exchanges spend their marketing budget. This week the numbers told a story I did not expect, and the story is mostly about concentration.&lt;/p&gt;

&lt;h2&gt;
  
  
  the snapshot I pulled
&lt;/h2&gt;

&lt;p&gt;The feed refreshed at 2026-09-03 16:25 UTC. Here is what it saw across 54 tracked campaigns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 campaigns marked active&lt;/li&gt;
&lt;li&gt;8 marked ended&lt;/li&gt;
&lt;li&gt;43 marked unknown&lt;/li&gt;
&lt;li&gt;52 of 54 came from Binance (that is 96.3 percent), the other 2 from Bybit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So one exchange accounts for almost the entire surface area. If Binance changes how it publishes announcements, the radar goes quiet overnight. That is a real risk, not a footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  how the scoring works
&lt;/h2&gt;

&lt;p&gt;I score each campaign on four parts: exchange weight (Binance 30, OKX 25, Bybit 20), type weight (25, 20, or 18), freshness (25 within 7 days, 15 within 30, 5 older), and a flat 10 for being active. Ended items get multiplied by 0.4. The top of the list this run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Binance USD1 airdrop extension, score 85, active, dated 2026-09-04&lt;/li&gt;
&lt;li&gt;Bybit Wednesday airdrop with a 120,000 dollar prize pool, score 73&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 85 breaks down as Binance weight 30, airdrop activity 20, fresh within 7 days 25, and active 10. Simple arithmetic, no magic.&lt;/p&gt;

&lt;h2&gt;
  
  
  the part you can actually run
&lt;/h2&gt;

&lt;p&gt;Both feeds are live and return 200. Pull them straight from the data API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/airdrop-score &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;'import sys,json; d=json.load(sys.stdin); r=d["raw"]; print("tracked:", r["scored_total"]); print("top:", r["high_priority"][0]["score"], r["high_priority"][0]["title"])'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tracked: 54
top: 85 Extension to the USD1 Airdrop Campaign (2026-09-04)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The radar feed, which carries the active or ended split, lives one path over:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/airdrop-radar &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;'import sys,json; d=json.load(sys.stdin); r=d["raw"]; print("total:", r["total"], "active:", r["active"], "ended:", r["ended"], "unknown:", r["unknown"])'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;A few things in this data will mislead you if you take the numbers at face value.&lt;/p&gt;

&lt;p&gt;First, the 43 unknown entries are a data quality gap, not a dead zone. Binance listing pages do not cleanly expose whether a campaign is live, so the scraper marks most of them unknown. Reading "unknown" as "bad opportunity" is wrong. It just means the status field was not there.&lt;/p&gt;

&lt;p&gt;Second, the score ranks marketing prominence, not profit. An 85 means the campaign is current and pushed by a large exchange. It says nothing about whether you will earn a cent. I have stopped treating a high score as a buy or join signal.&lt;/p&gt;

&lt;p&gt;Third, the two endpoints disagree on what "active" means. The radar reports 3 active by a strict definition, while the score list marks several more as active (the USD1 extension, the Bybit Wednesday drop, a Bybit new user giveaway). If you sort only by the score number, a finished campaign that keeps a high base after the 0.4 penalty can still outrank a weak live one. The sort order lies a little.&lt;/p&gt;

&lt;p&gt;Fourth, and this is the big one, the feed is 96 percent Binance. That is by construction, because Binance publishes the most structured announcement data. The diversity is low, and a single source change takes the whole radar dark.&lt;/p&gt;

&lt;h2&gt;
  
  
  what I do with it now
&lt;/h2&gt;

&lt;p&gt;I use the score to filter, not to decide. When a campaign clears 80 and the status is genuinely active, I read the actual terms before doing anything. The number gets me to the door. It does not tell me what is behind it.&lt;/p&gt;

&lt;p&gt;If you want to see the full set of endpoints and how they are structured, the catalog is published here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The feed covers a lot of markets, but it covers each one shallowly. For airdrops specifically, that trade is fine, because the question is usually "is this real and current," and a timestamp plus a source weight answers most of it.&lt;/p&gt;

&lt;p&gt;This post was written with AI assistance for drafting and editing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what mvrv's quiet climb and a flat etf tape told me about who is actually holding bitcoin</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Wed, 02 Sep 2026 02:10:42 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-mvrvs-quiet-climb-and-a-flat-etf-tape-told-me-about-who-is-actually-holding-bitcoin-39mo</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-mvrvs-quiet-climb-and-a-flat-etf-tape-told-me-about-who-is-actually-holding-bitcoin-39mo</guid>
      <description>&lt;p&gt;I spend a lot of time watching bitcoin's price. A few months back I realized that price alone hides the more useful question: who is holding, and is fresh money still coming in? Two free data feeds changed how I read that.&lt;/p&gt;

&lt;h2&gt;
  
  
  the on chain holder base looks calm but in the money
&lt;/h2&gt;

&lt;p&gt;BTC's MVRV ratio (market value divided by realized value, a read on whether holders sit above or below their cost basis) printed 1.4914 for data dated 2026-08-31. That is up from 1.2393 on 2026-08-18, a roughly 20 percent climb in two weeks, and it sits in the undervalued to reasonable band. The same feed puts NUPL (net unrealized profit/loss) at 0.3295, in the belief to greed zone, up from 0.1931 two weeks earlier.&lt;/p&gt;

&lt;p&gt;What that says to me: more holders are in profit, but neither metric is near bubble extremes. MVRV under 3.5 and NUPL under 0.75 are the levels people watch for tops, and we are nowhere close. This is a holder base that is comfortable, not euphoric.&lt;/p&gt;

&lt;h2&gt;
  
  
  the flow tape tells a cooler story
&lt;/h2&gt;

&lt;p&gt;BTC spot ETF net flow came in at 0.0M for 2026-09-01. Flat. The five day cumulative is still plus 489.3M, but the daily pace has clearly faded from the plus 517.2M and plus 606.3M prints of 2026-08-19 and 2026-08-20, through a minus 201.9M outflow on 2026-08-28. So institutional spot buyers stepped back to neutral after a late August spike and fade.&lt;/p&gt;

&lt;p&gt;I pull both feeds from a single machine readable catalog. Here is the on chain read:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/processed-mvrv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the ETF flow tape:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/processed-etf-flow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  the macro backdrop is loose
&lt;/h2&gt;

&lt;p&gt;Fed net liquidity printed 6.375 trillion (balance sheet 6.731T minus reverse repo 0.356T, TGA not yet subtracted in this snapshot). Ample liquidity is the kind of condition that lets a holders are fine reading stay intact. The smart money proxy I watch sits at 75.4 out of 100, driven mostly by gold momentum (4 week plus 8.35 percent, z score 3.49) while equities and US macro components are roughly flat.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;These three reads do not have to agree on any given day, and today they do not. MVRV and NUPL are reported with a one day delay, so they describe 2026-08-31, not 2026-09-01. A single flat ETF day of 0.0M is noisy: it could be a reporting lag or a quiet session, not a regime shift. And MVRV at 1.49 is a mid cycle number. It describes a holder base that is in profit but not stretched. It is not a forecast, and I am not treating it as one.&lt;/p&gt;

&lt;p&gt;If you want the full set of endpoints I used, the catalog is here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lists 323 machine readable resources across crypto, gold, macro, and AI, each callable with a simple GET.&lt;/p&gt;

&lt;p&gt;This article was written with AI assistance.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>56.86% of gold open interest is one crowded bet, and bitcoin fees are 1 sat/vb: notes from a week of positioning data</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Tue, 01 Sep 2026 17:04:58 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/5686-of-gold-open-interest-is-one-crowded-bet-and-bitcoin-fees-are-1-satvb-notes-from-a-week-27e7</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/5686-of-gold-open-interest-is-one-crowded-bet-and-bitcoin-fees-are-1-satvb-notes-from-a-week-27e7</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  the gold trade is one sided, until you look at the small contract
&lt;/h2&gt;

&lt;p&gt;The CFTC weekly report I pulled has a report date of 2026-08-25 and covers 35 contracts.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  the equity index tape split in one week
&lt;/h2&gt;

&lt;p&gt;Same report, stock index contracts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;E-MINI S&amp;amp;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&lt;/li&gt;
&lt;li&gt;MICRO E-MINI S&amp;amp;P 500: speculator net -101,807, or -34.79% of open interest, a -50,047 weekly swing&lt;/li&gt;
&lt;li&gt;NASDAQ-100 Consolidated: speculator net +11,127, up +23,193 on the week&lt;/li&gt;
&lt;li&gt;MICRO E-MINI NASDAQ-100: speculator net +10,872, up +27,379 on the week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Short the S&amp;amp;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%.&lt;/p&gt;

&lt;h2&gt;
  
  
  meanwhile the bitcoin chain is quiet and the mood gauge says greed
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The chain side of my catalog, pulled 2026-09-01:&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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%.&lt;/p&gt;

&lt;h2&gt;
  
  
  the calls
&lt;/h2&gt;

&lt;p&gt;Everything above came from plain GET requests, no key needed to see the shape of the response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/cftc-cot
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/btc-hashrate
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/btc-pools
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/btc-mempool-fees
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/crypto-fear-greed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The crowding screen I actually run, which is the only piece of logic in this whole post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;cot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://agentdatum.com/api/v1/d/cftc-cot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cot&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report date:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cot&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report_date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;large_spec_net_pct_oi&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])):&lt;/span&gt;
    &lt;span class="n"&gt;pct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;large_spec_net_pct_oi&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;contract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pct&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mf"&gt;7.2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;% of OI  &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
          &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;wow &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;large_spec_net_change_wow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;+&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;  &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
          &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;traders &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;traders_total&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;Four limits, all of which apply to the numbers above.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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&amp;amp;P reading, are thin books. I report the number because it is real, not because it is a signal.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;If you want to point an agent at any of this, the machine readable index lives here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what $309 billion in stablecoins and a 71.6 smart money reading told me about who is actually positioned</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Tue, 01 Sep 2026 02:06:10 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-309-billion-in-stablecoins-and-a-716-smart-money-reading-told-me-about-who-is-actually-2a0k</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-309-billion-in-stablecoins-and-a-716-smart-money-reading-told-me-about-who-is-actually-2a0k</guid>
      <description>&lt;p&gt;I keep a small routine. Every day I pull a few cross asset signals from a public data catalog and check whether the people with real money and the people using futures agree. Most days they don't. Today is a clean example.&lt;/p&gt;

&lt;h2&gt;
  
  
  the numbers I actually pulled
&lt;/h2&gt;

&lt;p&gt;The catalog I use exposes 311 machine readable resources. I hit three of them this morning.&lt;/p&gt;

&lt;p&gt;Stablecoin float sits at &lt;strong&gt;$309.7 billion&lt;/strong&gt; in circulating supply (DefiLlama, collected 2026-08-31 22:35 UTC). That splits into &lt;strong&gt;$183.3 billion USDT&lt;/strong&gt; and &lt;strong&gt;$73.6 billion USDC&lt;/strong&gt;. Both pegs are intact at 0.9999.&lt;/p&gt;

&lt;p&gt;The smart money proxy reads &lt;strong&gt;71.6 out of 100&lt;/strong&gt; (collected 2026-09-01 00:36 UTC). The endpoint labels anything above 60 as institutions net buying with strong momentum. Its three components are gold momentum at +8.35 percent over four weeks with a 30 day z score of 3.49, global equities roughly flat, and US macro flat.&lt;/p&gt;

&lt;p&gt;Perpetual funding rates are quieter than the headline suggests. The processed series puts the aggregate in the &lt;strong&gt;83rd percentile of its last 30 readings&lt;/strong&gt;, yet its four period momentum is &lt;strong&gt;0.0&lt;/strong&gt; (collected 2026-09-01 00:41 UTC). Translation: funding is elevated but not rising.&lt;/p&gt;

&lt;p&gt;Fed net liquidity, a slower gauge, reads &lt;strong&gt;$6.375 trillion&lt;/strong&gt; (collected 2026-08-31 22:33 UTC), computed as balance sheet 6.731T minus reverse repo 0.356T.&lt;/p&gt;

&lt;h2&gt;
  
  
  what I make of it
&lt;/h2&gt;

&lt;p&gt;The story is a split one. Spot and flow signals lean constructive: a near record stablecoin pile means dry powder exists, and the smart money proxy says institutions are net buyers. But the derivatives crowd is not leaning in. Funding is high but flat, which usually means the perpetual book is parked, not building.&lt;/p&gt;

&lt;p&gt;A market where the sidelines are full but the perpetual book is calm is not obviously the top and not obviously the launch. It is a wait.&lt;/p&gt;

&lt;h2&gt;
  
  
  how you can pull this yourself
&lt;/h2&gt;

&lt;p&gt;Every number above comes from one catalog. Try it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/.well-known/ai-catalog.json | python3 &lt;span class="nt"&gt;-m&lt;/span&gt; json.tool | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-40&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns 311 resources with their endpoints. Pick the one you want, call it, and you get JSON back. No signup wall on the catalog itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;I won't oversell this. Stablecoin supply is a stock, not a flow. A big number tells you money can move, not that it will. The smart money index is a composite of only three families (gold, global equities, US macro), so it is a rough proxy, not a vote from a trading desk. Net liquidity here excludes the Treasury General Account because that feed was unreachable, so the real figure is about 0.4 trillion higher. And funding percentiles are a 30 reading window, sensitive to how recently the last squeeze happened.&lt;/p&gt;

&lt;p&gt;So treat these as a compass, not a forecast.&lt;/p&gt;

&lt;h2&gt;
  
  
  a note on this post
&lt;/h2&gt;

&lt;p&gt;This article was written with the help of an AI assistant that pulled and formatted the data. The figures are sourced from the endpoints cited above as of the collection timestamps noted.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what a cooling cpi and a shrinking trade surplus told me about china's split macro tape, september 1, 2026</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Mon, 31 Aug 2026 23:25:59 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-a-cooling-cpi-and-a-shrinking-trade-surplus-told-me-about-chinas-split-macro-tape-september-mda</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-a-cooling-cpi-and-a-shrinking-trade-surplus-told-me-about-chinas-split-macro-tape-september-mda</guid>
      <description>&lt;p&gt;I read China's macro numbers before I look at any equity screen. The habit started because China releases most of its data in one batch, so a single morning gives you the whole tape at once. The problem is the tape never says one thing. Here is what the July batch said when I pulled it on September 1.&lt;/p&gt;

&lt;h2&gt;
  
  
  cpi cooled faster than the run rate suggested
&lt;/h2&gt;

&lt;p&gt;Consumer prices rose 0.5% year over year in July. In June the same gauge was 1.0%. Month over month prices fell 0.1%.&lt;/p&gt;

&lt;p&gt;Going from 1.0% to 0.5% in one month is a big step, even for a volatile series. It tells me the disinflation impulse is not gone. Nothing here points to a hard deflation scare, but the momentum clearly stalled.&lt;/p&gt;

&lt;h2&gt;
  
  
  the trade surplus is still huge, just a bit less huge
&lt;/h2&gt;

&lt;p&gt;China's trade balance with the United States stayed deeply positive in July. Exports were about $41.9 billion, imports about $14.0 billion, leaving a surplus of $27.9 billion.&lt;/p&gt;

&lt;p&gt;That is still a very fat number. But June's surplus was $28.9 billion, so July shrank by a bit more than 3%. Exports themselves eased from $43.5 billion to $41.9 billion. One month is not a trend, but the direction flipped from widening to narrowing.&lt;/p&gt;

&lt;h2&gt;
  
  
  housing is split by city, not by direction
&lt;/h2&gt;

&lt;p&gt;New home prices in July rose 3.0% year over year in Shanghai and 2.6% in Hangzhou. The same month, Xi'an fell 5.6% and Chengdu fell 5.1%. The second-hand market is weaker almost everywhere. Beijing second-hand homes are down 4.5% year over year, Shanghai down 2.0%.&lt;/p&gt;

&lt;p&gt;The aggregate "China housing" story hides two markets. Tier-one coastal cities are stabilizing, while weaker cities keep sliding. Any single national number will mislead you.&lt;/p&gt;

&lt;h2&gt;
  
  
  the stock market sits right under the round number
&lt;/h2&gt;

&lt;p&gt;The Shanghai composite closed at 3986.3, up 0.86% on the day. It is knocking on 4000. Kweichow Moutai, the largest stock by weight, trades at 1299.52 with a price to earnings ratio of 6.47.&lt;/p&gt;

&lt;p&gt;A blue chip at PE 6.5 is cheap against its own history. Combined with 0.5% CPI, the equity market is pricing something between stagnation and slow recovery, and it has been climbing anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;I need to be careful about what this batch can and cannot say. First, these are July numbers read on September 1. Monthly releases arrive with a lag, so this is a rearview mirror, not a steering wheel. Second, the GDP figure is nominal and annual: 2025 nominal GDP was 140.19 trillion yuan, up 3.9% from 2024. Nominal growth mixes volume and price, and with CPI near zero the real number is higher than 3.9%, but the exact split depends on deflators I cannot see from this feed. Third, the housing sample is ten major cities, not the full 70-city set, so the tier-one stabilization may not extend to smaller places. Fourth, official Chinese data gets revised, and different sources sometimes disagree on the same month. I quote the feed, not my own opinion of the feed.&lt;/p&gt;

&lt;p&gt;What I actually take from this: inflation momentum has stalled, the trade cushion is still thick but no longer growing, housing has split into two markets, and equities are grinding toward 4000 on modestly priced leadership. None of that is a trade signal. It is a base layer of facts to update every month.&lt;/p&gt;

&lt;h2&gt;
  
  
  how i pull this
&lt;/h2&gt;

&lt;p&gt;All of these figures came from one normalized endpoint instead of ten scattered portals. A plain ask with no API key looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agentdatum.com/api/v1/ai &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query":"give me the latest china cpi, china us trade balance, and tier one housing price changes"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full machine-readable catalog of what is available is here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article was written with AI assistance for drafting and editing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what gold's 4.18 z score, a calm vix, and kevin washr's words told me about a market that can't decide</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Mon, 31 Aug 2026 02:08:56 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/article2026-08-31gold-z-vix-fed-1ae5</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/article2026-08-31gold-z-vix-fed-1ae5</guid>
      <description>&lt;p&gt;I pulled a handful of signals from a data API I use, mostly to check one thing: is the market actually calm, or just quiet in the places we happen to watch? The answer was messier than the headlines.&lt;/p&gt;

&lt;h2&gt;
  
  
  what the data said (pulled 2026-08-30, around 22:00 UTC)
&lt;/h2&gt;

&lt;p&gt;Gold is the loud one. The front-month gold signal shows GC_F at 4340.70, up 2.3% on the day and 7.3% over the last four sessions. Its 30-day z score is 4.18 and its 30-day percentile rank is 100.0. In plain terms, gold is as stretched relative to its own recent range as it gets.&lt;/p&gt;

&lt;p&gt;The cross-asset fear thermometer disagrees. It reads 16 out of 100, which the dataset labels as greedy but low. VIX is 14.9. The annualized volatility split is the part I find telling: gold 29%, equities 14%, crypto 17%. Gold is the most volatile of the three right now, even as equities sit still.&lt;/p&gt;

&lt;p&gt;The crypto fear and greed index closed at 69 (Greed) on 2026-08-30. That is above its own 30-day average of 44.8, but under the 90-day high of 74. So crypto leans greedy, not euphoric.&lt;/p&gt;

&lt;p&gt;For a macro backdrop, the fed-policy feed lists Kevin Warsh as chair, with a speech titled "In Our Time" dated 2026-08-28. That is a qualitative signal, not a rate decision, and I treat it as such.&lt;/p&gt;

&lt;p&gt;I also ran an on-chain sanity check. BTC MVRV is 1.486 (data date 2026-08-29) and NUPL is 0.327, which the source places in the belief-to-greed band. Neither is at an extreme. The holder base is optimistic but not at profit bubble levels.&lt;/p&gt;

&lt;h2&gt;
  
  
  how I pulled it
&lt;/h2&gt;

&lt;p&gt;The whole catalog is one JSON file. I hit it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/.well-known/ai-catalog.json | python3 &lt;span class="nt"&gt;-m&lt;/span&gt; json.tool | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a single live signal, the gold endpoint returns the same shape the article uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/api/v1/d/sig-gold
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each resource in the catalog carries an identifier, a url, and a type, so you can script across all 261 of them without reading docs first.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;I would not build a position on this snapshot alone, and here is why.&lt;/p&gt;

&lt;p&gt;The gold z score of 4.18 is real, but gold's own annualized vol is 29%, the highest of the three assets. A chunk of that z score is gold being gold, not conviction flowing in. Stretch and volatility travel together.&lt;/p&gt;

&lt;p&gt;The fear gauges measure different things. A 16/100 cross-asset reading and a 14.9 VIX describe equity calm. Gold's 29% vol describes gold. They are not contradicting each other so much as watching different rooms.&lt;/p&gt;

&lt;p&gt;The crypto greed at 69 is above trend but below the 90-day top, so calling it a top would be a stretch. MVRV at 1.486 backs that up: holders are in the money, not euphoric.&lt;/p&gt;

&lt;p&gt;And the Fed speech is a title and a date in the feed, not a policy move. I cite it as context, not as a signal that rates moved.&lt;/p&gt;

&lt;p&gt;Freshness matters too. The signal endpoints were collected around 2026-08-30 22:00 UTC (early morning Beijing time on the 31st). The MVRV and NUPL figures are one day behind, dated 2026-08-29. If you trade on these, check the collected_at field first.&lt;/p&gt;

&lt;h2&gt;
  
  
  what I take from it
&lt;/h2&gt;

&lt;p&gt;The market is not one mood, it is several, in different assets. Gold is stretched, equities are calm, crypto is leaning greedy but contained, and on-chain BTC holders are optimistic without excess. When the rooms disagree, the safe move is to size small and watch which one breaks first.&lt;/p&gt;

&lt;p&gt;If you want to pull the same feeds, the full catalog is here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was written with AI assistance for drafting and editing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what 808,073 daily bitcoin transactions and 0.79 gwei ethereum gas told me about where the chains actually are, august 31, 2026</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Sun, 30 Aug 2026 17:03:52 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-808073-daily-bitcoin-transactions-and-079-gwei-ethereum-gas-told-me-about-where-the-chains-1eh3</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-808073-daily-bitcoin-transactions-and-079-gwei-ethereum-gas-told-me-about-where-the-chains-1eh3</guid>
      <description>&lt;p&gt;I pull on-chain activity numbers every morning before I read any price ticker. The reason is simple. Valuation gauges like MVRV or NUPL tell you what holders feel. Activity numbers tell you what holders do. Feeling and doing are not the same thing, and the gap between them is where I learn the most.&lt;/p&gt;

&lt;p&gt;Here is what the chains showed me on August 30, 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  bitcoin is busy but not frantic
&lt;/h2&gt;

&lt;p&gt;Bitcoin processed 808,073 transactions in 24 hours. The price sat at $79,078, up 1.32% on the day. Mempool backlog was 5,333 transactions, which is thin. Blocks produced in 24h: 155.&lt;/p&gt;

&lt;p&gt;Those are steady numbers. Eight hundred thousand transactions a day is real economic use, not a sleepy chain. But the mempool is not strained, and that matters. When people panic or frenzy, the mempool balloons first. At 5,333 it is calm.&lt;/p&gt;

&lt;h2&gt;
  
  
  ethereum gas is almost free, and that is the signal
&lt;/h2&gt;

&lt;p&gt;Ethereum gas averaged 0.79 gwei. Slow was 0.31, fast was 2.3. Network utilization was 52.7%. Transactions today: 2,034,192. ETH price: $2,523.05, up 3.06%.&lt;/p&gt;

&lt;p&gt;I read low gas as a quiet chain. When a mint or a real trend hits, gas jumps to 20 or 50 gwei within minutes. At 0.79, nobody is fighting for block space. The chain is doing real work (two million transactions a day) without stress. That is a healthy middle, not a hype top.&lt;/p&gt;

&lt;h2&gt;
  
  
  defi tvl is $88.4 billion, but one chain holds most of it
&lt;/h2&gt;

&lt;p&gt;Total DeFi TVL was $88.43 billion across 120 ranked chains. Ethereum alone held $49.28 billion. That is 55.7% of everything. Solana was next at $5.96 billion. Base $5.55 billion, BSC $5.52 billion, Tron $5.27 billion, Bitcoin $4.12 billion.&lt;/p&gt;

&lt;p&gt;People say DeFi is multi-chain now. In chain count, yes, 120 chains. In capital, no. Ethereum still custodies more than half of all DeFi value. The multi-chain story is true for builders and false for money.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest part
&lt;/h2&gt;

&lt;p&gt;I should be straight about the limits. These are single-day snapshots taken on August 30, 2026. On-chain activity wobbles a lot day to day, so one calm reading does not prove a trend. TVL is also partly a price effect: if ETH goes up, Ethereum TVL goes up even with zero new deposits. And I am comparing usage metrics to nothing directional. The numbers describe the present, they do not predict the next move.&lt;/p&gt;

&lt;p&gt;What I take from this: the two largest chains are active without being congested, and DeFi capital is far more concentrated than its chain count suggests. That is a useful base layer to watch, not a trade signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  how I pull this
&lt;/h2&gt;

&lt;p&gt;AgentDataHub normalizes these sources into one structure. A free ask with no API key looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agentdatum.com/api/v1/ai &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query":"what is the current total defi tvl and ethereum share"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The full machine-readable catalog of data products is here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article was written with AI assistance for drafting and editing.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what sopr, the fear gauge, and a stretched gold line told me about a market that can't agree</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Sun, 30 Aug 2026 02:15:11 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-sopr-the-fear-gauge-and-a-stretched-gold-line-told-me-about-a-market-that-cant-agree-3p8m</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-sopr-the-fear-gauge-and-a-stretched-gold-line-told-me-about-a-market-that-cant-agree-3p8m</guid>
      <description>&lt;p&gt;I pulled a handful of on-chain and macro gauges this morning before writing anything down. The point was not to call a price. It was to see whether the signals agree. They do not, and that turned out to be the interesting part.&lt;/p&gt;

&lt;h2&gt;
  
  
  what the data actually said
&lt;/h2&gt;

&lt;p&gt;Bitcoin's SOPR sat at 1.0054 for data dated 2026-08-28 (I pulled it 2026-08-30). SOPR is the spent output profit ratio: above 1 means coins moving on chain are, on average, sold in profit. For the prior two weeks the daily reading stayed in a tight band between 0.993 and 1.019. That is not a market throwing in the towel, and it is not one running hot either. It is a flat simmer.&lt;/p&gt;

&lt;p&gt;The crypto Fear and Greed Index read 68, labelled Greed, on 2026-08-29. The same feed shows a 30 day average of 43.3 and a 90 day range from 8 to 74. So the current print is well above its own recent norm, even if it is not at the top of the 90 day band.&lt;/p&gt;

&lt;p&gt;Gold told a different story. The signal feed I watch put front month gold (GC_F) at 4340.70, with a 1 day return of +2.3 percent and a 4 period momentum of +7.3 percent. Its 30 day z score was 4.18 with a percentile rank of 100. A z score above 4 on a 30 day window means the move is statistically stretched. That can keep going, or it can snap back. The number alone does not tell you which.&lt;/p&gt;

&lt;h2&gt;
  
  
  the part where the gauges disagree
&lt;/h2&gt;

&lt;p&gt;Here is the wrinkle. A second cross asset panic thermometer I track read 16 out of 100, tagged calm, with VIX at 14.9 on the same day. So one gauge says crypto sentiment is greedy (68), another says the broad market is calm (16), and the on chain SOPR is barely above water at 1.005. Three readings, three different moods.&lt;/p&gt;

&lt;p&gt;I am not going to pretend one of them is right. They measure different things on different clocks. Fear and Greed is a sentiment composite from alternative.me, not a traded price. SOPR lags by a day because the source settles nightly. The gold line is a daily close series, not a live quote. If you treat any single one as the whole picture you will build a view on a half story.&lt;/p&gt;

&lt;h2&gt;
  
  
  how I pull this without a dashboard
&lt;/h2&gt;

&lt;p&gt;AgentDataHub exposes these as plain JSON endpoints, so I can fetch them from a script instead of logging into five sites. A minimal pull looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://agentdatum.com/.well-known/ai-catalog.json | python3 &lt;span class="nt"&gt;-m&lt;/span&gt; json.tool | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The catalog lists 260 resources right now, each with a path and a collected_at stamp. I check collected_at before I trust a number, because a live endpoint can return stale data if the upstream collector stalled.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest take
&lt;/h2&gt;

&lt;p&gt;My read is that the market is not shouting a direction. SOPR near 1.0 says holders are neither panic selling nor euphorically spending. The greed print is high versus its own 30 day mean but not extreme versus 90 days. Gold is the one gauge flashing a warning, and it is a warning about extension, not about a confirmed top. I would not size a trade off any one of these. I use them to flag where to look next.&lt;/p&gt;

&lt;p&gt;If you want to poke at the same endpoints, the full directory is here: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article was written with AI assistance for drafting and data formatting.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
    <item>
      <title>what MVRV's unrealized profit and NUPL's sentiment band told me about bitcoin's holder base, august 30, 2026</title>
      <dc:creator>logan miller</dc:creator>
      <pubDate>Sat, 29 Aug 2026 17:05:42 +0000</pubDate>
      <link>https://dev.to/logan_miller_4f1197f8b642/what-mvrvs-unrealized-profit-and-nupls-sentiment-band-told-me-about-bitcoins-holder-base-august-1h58</link>
      <guid>https://dev.to/logan_miller_4f1197f8b642/what-mvrvs-unrealized-profit-and-nupls-sentiment-band-told-me-about-bitcoins-holder-base-august-1h58</guid>
      <description>&lt;p&gt;I keep a small daily habit of checking bitcoin's on-chain valuation gauges before I read any headline. Spot price tells me what moved in the last minute. Cost-basis metrics tell me what the people holding the coin actually paid, and whether they sit on profit or loss. This morning the two I watch most, MVRV and NUPL, told a calmer story than the fear gauge did.&lt;/p&gt;

&lt;h2&gt;
  
  
  what the numbers said
&lt;/h2&gt;

&lt;p&gt;MVRV on 2026-08-28 printed 1.4753. That means market cap was about 47.5% above realized cap, so the average holder was up by roughly half. The read I pulled flags this as the undervalued to fair band. For context, MVRV below 1 is deep capitulation and above 3.5 is the bubble top. We are near neither.&lt;/p&gt;

&lt;p&gt;NUPL the same day read 0.3222. That is net unrealized profit over market cap, parked in the belief to greed band (0.25 to 0.5). Below zero is surrender and above 0.75 is euphoria. Again we are in the middle, not the top.&lt;/p&gt;

&lt;p&gt;The 14-day path matters more than the single print. MVRV climbed from 1.207 on 2026-08-15 to a peak of 1.525 on 2026-08-27, then eased to 1.475. NUPL went 0.171 to 0.344 on 2026-08-27, then back to 0.322. Both rolled over slightly in the last two days. A modest climb, not a melt-up.&lt;/p&gt;

&lt;h2&gt;
  
  
  where the crowd already is
&lt;/h2&gt;

&lt;p&gt;The crypto fear and greed index sat at 68, labelled Greed, on 2026-08-29. That is a sentiment gauge, and it already prices optimism. So here is the tension I actually care about. The on-chain cost-basis reads moderately bullish, with room before euphoria. The sentiment gauge reads the crowd is already greedy. They disagree on how much runway is left, and they usually resolve by one of them giving way.&lt;/p&gt;

&lt;h2&gt;
  
  
  the honest limits
&lt;/h2&gt;

&lt;p&gt;I will not oversell these. Three caveats are real.&lt;/p&gt;

&lt;p&gt;First, MVRV and NUPL are daily snapshots with a one day delay. The data date is 2026-08-28, so they trail the spot tape by a full day. They cannot catch an intraday flush, and they will not warn you before a fast move.&lt;/p&gt;

&lt;p&gt;Second, they are backward looking. They measure what holders paid, not how much borrowed exposure is riding on top. Perpetual funding rates and ETF flow can flip mood faster than cost basis ever will. A piece I wrote yesterday on ETF flows made exactly that point.&lt;/p&gt;

&lt;p&gt;Third, the cross asset tape is not confirming a BTC breakout. Gold's signal shows front month at 4340.70 with a 10 day z-score of 3, meaning it is stretched, up 7.3% over four months. The US macro snapshot is static month end, 10 year at 4.69%, the 10s2s spread at plus 0.46, Fed funds at 3.63. Gold looks hotter than bitcoin right now, and the rates tape is calm, not stimulating.&lt;/p&gt;

&lt;h2&gt;
  
  
  how I pulled this
&lt;/h2&gt;

&lt;p&gt;The figures above come from AgentDataHub, a data marketplace my agent pays for per call through x402. The full catalogue is public and free to read.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://agentdatum.com/.well-known/ai-catalog.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns 260 resources as JSON. The two I used sit under the identifiers urn:agentdatum:processed-mvrv and urn:agentdatum:processed-nupl. A short script to find them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;

&lt;span class="n"&gt;catalog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;catalog&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;resources&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;identifier&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;urn:agentdatum:processed-mvrv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;urn:agentdatum:processed-nupl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;displayName&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  my take
&lt;/h2&gt;

&lt;p&gt;I trust the cost-basis gauges over the fear gauge for where we are in the cycle. They say we are mid-range, not top. But I size around the fact that they lag a day and miss borrowed exposure. When the 10 day gold z-score and the fear gauge both sit hot while MVRV stays under 1.5, I read it as late-cycle optimism, not a green light. I would want NUPL to push past 0.5 and MVRV past 2 before I call this anything but a normal bull-market middle.&lt;/p&gt;

&lt;p&gt;Catalog: &lt;a href="https://agentdatum.com/.well-known/ai-catalog.json" rel="noopener noreferrer"&gt;https://agentdatum.com/.well-known/ai-catalog.json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post was written with the help of AI.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>api</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
