<?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>Forem: Miniblocks.io</title>
    <description>The latest articles on Forem by Miniblocks.io (@miniblocskio).</description>
    <link>https://forem.com/miniblocskio</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3810750%2F37b79534-520c-41c2-b5e8-f2ab0308b314.png</url>
      <title>Forem: Miniblocks.io</title>
      <link>https://forem.com/miniblocskio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/miniblocskio"/>
    <language>en</language>
    <item>
      <title>How We Generate AI Network Digests for MegaETH at MiniBlocks.io</title>
      <dc:creator>Miniblocks.io</dc:creator>
      <pubDate>Sat, 07 Mar 2026 00:25:19 +0000</pubDate>
      <link>https://forem.com/miniblocskio/how-we-generate-ai-network-digests-for-megaeth-at-miniblocksio-ol4</link>
      <guid>https://forem.com/miniblocskio/how-we-generate-ai-network-digests-for-megaeth-at-miniblocksio-ol4</guid>
      <description>&lt;p&gt;Every morning, a new &lt;a href="https://miniblocks.io/digest" rel="noopener noreferrer"&gt;daily digest&lt;/a&gt; appears on MiniBlocks. Every Monday, a weekly report follows. These are written by an AI model — but the interesting part isn't the AI. It's everything that happens before the AI writes a single word.&lt;/p&gt;

&lt;p&gt;We believe in transparency about how our content is produced. If you're reading our digests, you should know exactly what's behind them: what data we collect, how we detect anomalies, where external context comes from, and what constraints we give the model. This post covers the full pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Automate Digests at All?
&lt;/h2&gt;

&lt;p&gt;MegaETH produces 100 blocks per second. That's 8.6 million blocks per day. We process every single one of them — every transaction, every contract interaction, every gas unit consumed across the entire network. Our &lt;a href="https://miniblocks.io/analytics.html" rel="noopener noreferrer"&gt;analytics dashboard&lt;/a&gt; shows this in real time, but raw data and charts don't tell stories. They don't connect a spike in gas usage to a new contract deploying, or notice that weekend activity has been steadily climbing for three weeks.&lt;/p&gt;

&lt;p&gt;We wanted reports that connect data points into narrative — the kind of analysis a person would write after staring at dashboards all day. But doing that manually every morning doesn't scale when the chain never sleeps and the scope is the entire chain, not a curated subset.&lt;/p&gt;

&lt;p&gt;The solution: collect everything a human analyst would look at — across every contract and every wallet on MegaETH — do the statistical analysis ourselves, then hand the AI a pre-digested briefing and strict instructions on how to write about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pipeline
&lt;/h2&gt;

&lt;p&gt;Each digest goes through six stages. The AI model is involved in exactly one of them.&lt;/p&gt;

&lt;p&gt;The scope is the full network: every contract, every wallet, every transaction on MegaETH. The pipeline's job is to compress that into something a language model can work with — without losing what matters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 1: Raw Data Collection
&lt;/h3&gt;

&lt;p&gt;We continuously process every block and every transaction on MegaETH — 100 blocks per second, millions of events per day. Each transaction is parsed in real time: which contract was called, how much gas it consumed, whether it succeeded or failed, who sent it. This raw stream covers the entire network — every contract, every wallet, no filtering.&lt;/p&gt;

&lt;p&gt;This data is stored at full granularity. When it's time to generate a digest, the raw record of everything that happened on-chain is available for analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 2: Aggregation
&lt;/h3&gt;

&lt;p&gt;Millions of raw events don't fit in a prompt. Stage 2 compresses them into compact summary tables — small enough for a language model to consume, complete enough to preserve the signal.&lt;/p&gt;

&lt;p&gt;We compute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hourly and daily rollups:&lt;/strong&gt; Average TPS, peak gas, total transactions — bucketed across 14-day and 28-day windows, with weekend/weekday markers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-contract summaries:&lt;/strong&gt; Transaction count, gas consumption, unique callers, and failure rates for every contract on the network — not just named DApps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DApp leaderboards:&lt;/strong&gt; Tracked applications ranked by volume over the last 24 hours (daily) or the past week with week-over-week deltas (weekly)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network overview:&lt;/strong&gt; Daily totals for transactions, unique wallets, and failed transactions across the entire chain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Weekly reports add cross-week comparisons and surface top unmapped contracts — addresses with significant activity that don't have a name yet. The output of this stage is a set of structured tables — the raw data compressed by orders of magnitude, but not yet interpreted.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 3: Trends &amp;amp; Anomaly Detection
&lt;/h3&gt;

&lt;p&gt;This is the analytical layer. We compute two kinds of output from the aggregated tables:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trend observations&lt;/strong&gt; — directional statements about network-level behavior, pre-labeled so the AI doesn't have to interpret tables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Day-over-day and week-over-week throughput changes, classified as "up", "down", or "flat" with thresholds tuned to filter out noise&lt;/li&gt;
&lt;li&gt;Weekend vs weekday pattern shifts — flagged only when large enough to be notable&lt;/li&gt;
&lt;li&gt;Multi-day trend direction — is the past week rising, declining, or stable?&lt;/li&gt;
&lt;li&gt;Busiest and quietest days across the 14-day window&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Anomaly detectors&lt;/strong&gt; — five independent modules, each looking for a different type of event. They run on a schedule — every 30 minutes for 24-hour windows, every 3 hours for 7-day windows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peak &amp;amp; Trough Detection:&lt;/strong&gt; Finds TPS and gas peaks and troughs using percentile-based thresholds. Only fires when values significantly exceed historical norms. Drills down to the exact second and the contract responsible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trend Analysis:&lt;/strong&gt; Fits a linear regression per contract over the past week of daily volumes. Only qualifies if the trend explains a meaningful share of the variance and the slope is steep enough to matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Growth Detection:&lt;/strong&gt; Compares the current 24-hour period against the previous one for every contract on the network. Rate-normalized to handle downtime. Flags major surges and significant declines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure Rate Anomalies:&lt;/strong&gt; Computes per-contract baseline failure rates, then uses z-score analysis to detect statistically significant deviations. Only fires when the spike is unlikely to be random noise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Activity Discovery:&lt;/strong&gt; Scans the entire network for contracts with no prior history. Classifies them as "emerging" (sustained activity), "spike" (concentrated burst), or "flash" (activity already stopped).&lt;/p&gt;

&lt;p&gt;Every detector is downtime-aware. If our data collection had gaps (incomplete hours with less data than expected), those periods are excluded from analysis. This prevents false positives — a quiet hour because of a collection gap isn't a real "trough".&lt;/p&gt;

&lt;p&gt;Each detected anomaly carries a severity level (medium or high), a category, and structured metadata: which contract, what time, exact values, and how far the metric deviated from its baseline. Together with the trend observations, the output of Stage 3 is a complete analytical briefing — numbered findings and directional labels, not raw data to sift through.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why we do the math ourselves:&lt;/strong&gt; Language models are unreliable at statistical analysis. They'll confidently compute wrong percentages or spot trends that don't exist. By pre-computing every observation with explicit thresholds and formulas, the AI's job is strictly editorial: turn verified facts into readable prose.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 4: External Context
&lt;/h3&gt;

&lt;p&gt;On-chain data alone misses context. A 30% TPS drop on a random Tuesday means one thing. A 30% TPS drop during a market-wide selloff means something else. We pull three external sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Market sentiment:&lt;/strong&gt; 14-day history of a well-known crypto sentiment index (values 0–100 with classifications like "fear" or "greed"). The model uses this to subtly calibrate tone without ever naming the index directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi ecosystem data:&lt;/strong&gt; Total value locked on MegaETH, daily and weekly change percentages, 14-day history, and stablecoin supply breakdown (minted vs bridged). Only mentioned in digests if movement exceeds 5% daily or 15% weekly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem milestones:&lt;/strong&gt; Progress on MegaETH's network goals — live apps, qualified applications, and other public metrics scraped from official sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each source is fault-tolerant. If any API fails, the digest proceeds without it. External data supplements the narrative; it never drives it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 5: Prompt Construction &amp;amp; Generation
&lt;/h3&gt;

&lt;p&gt;Now we assemble two prompts:&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;system prompt&lt;/strong&gt; defines the voice, constraints, and output structure. Key rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voice:&lt;/strong&gt; "Senior analyst writing for informed peers" — not a newsletter trying to be clever&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict neutrality:&lt;/strong&gt; never promote, advertise, or endorse any project&lt;/li&gt;
&lt;li&gt;Include 5–8 links (daily) or 8–12 (weekly), weaving them naturally into text&lt;/li&gt;
&lt;li&gt;Place up to 5 chart markers where they support the narrative&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prescribed structure:&lt;/strong&gt; daily digests get 4 sections (Week So Far / Today's Story / Network Health / Takeaway); weekly reports get 6&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;data prompt&lt;/strong&gt; contains all the pre-computed data from stages 1–4, organized into clearly labeled sections. Trend tables, computed observations, DApp leaderboards, detected anomalies, network overview, and external data — each tagged so the model knows exactly what it's reading.&lt;/p&gt;

&lt;p&gt;The model's job is editorial: weave verified facts into a coherent narrative. It decides emphasis, ordering, what's interesting enough to highlight, and where charts should go. It doesn't do math.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 6: Post-Processing &amp;amp; Charts
&lt;/h3&gt;

&lt;p&gt;The AI returns markdown. We then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extract metadata:&lt;/strong&gt; Title, summary (first paragraph stripped of formatting), word count, link count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render to HTML:&lt;/strong&gt; Markdown is converted to semantic HTML.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inject charts:&lt;/strong&gt; The model places chart markers in its text (e.g., "place a 14-day TPS chart here"). We replace each marker with a server-rendered SVG chart — line charts for trends, bar charts for DApp rankings. These are real inline SVGs, not images or JavaScript. They render in any context: email, RSS reader, search engine crawler. Dark-themed, matching our dashboard style.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add overview charts:&lt;/strong&gt; Every daily digest automatically gets two charts prepended after the title — daily transaction count and unique wallets over 28 days. These provide instant visual context before the reader gets into the text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resolve addresses:&lt;/strong&gt; Weekly reports auto-linkify any bare contract addresses in the text, turning them into clickable links to our &lt;a href="https://miniblocks.io/contracts.html" rel="noopener noreferrer"&gt;contract explorer&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What the AI Sees vs. What It Decides
&lt;/h2&gt;

&lt;p&gt;This distinction matters. The AI receives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pre-computed trend observations with explicit directional labels&lt;/li&gt;
&lt;li&gt;Anomalies with severity ratings, exact deviation values, and structured metadata&lt;/li&gt;
&lt;li&gt;Ranked DApp leaderboards with pre-calculated metrics&lt;/li&gt;
&lt;li&gt;External context with usage rules ("mention TVL only if &amp;gt;5% change")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI decides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's the most interesting story in today's data?&lt;/li&gt;
&lt;li&gt;Which anomalies deserve prominent coverage vs. a brief mention?&lt;/li&gt;
&lt;li&gt;How to connect on-chain trends with external context&lt;/li&gt;
&lt;li&gt;Where charts add value to the narrative&lt;/li&gt;
&lt;li&gt;The human-readable phrasing of quantified observations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This split is deliberate. Statistical facts shouldn't depend on a language model's arithmetic. Editorial judgment — what's interesting, what connects, what matters — is where the model adds value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cadence
&lt;/h2&gt;

&lt;p&gt;Daily digests generate every morning at 00:30 UTC. Weekly reports follow at 01:00 UTC on Mondays. Each daily digest runs 500–700 words with up to 7 charts; weekly reports go deeper at 1,200–1,500 words. The AI generation itself costs a few cents per digest — the real investment is in the data pipeline and statistical analysis that happens before the model ever sees a prompt.&lt;/p&gt;

&lt;p&gt;We store the full prompts, token counts, generation time, and cost for every digest — partly for accounting, partly so we can audit the model's inputs if a digest ever says something questionable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Got Wrong (and Fixed)
&lt;/h2&gt;

&lt;p&gt;The first version of this system was simpler — and worse. Lessons learned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Letting the AI do math.&lt;/strong&gt; Early digests had the model computing percentage changes from raw data tables. It got them wrong regularly. Not by a lot, but enough to erode trust. Now every number the model quotes has been pre-computed on our servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Missing downtime awareness.&lt;/strong&gt; Our anomaly detectors initially didn't account for data collection gaps. A 2-hour outage in our pipeline would show up as a "dramatic network trough" in the next digest. Now every detector checks for data completeness before flagging events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Over-relying on external data.&lt;/strong&gt; Early prompts weighted market sentiment too heavily. Digests would lead with "amid broader market fear" when the on-chain data was actually interesting on its own. We now have explicit thresholds: external data supplements the narrative only when changes are significant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Charts as images.&lt;/strong&gt; First iteration rendered charts as PNG images. They looked blurry on high-DPI screens, didn't render in RSS readers, and added load time. Moving to inline SVG solved all three problems and made charts indexable by search engines.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Readers
&lt;/h2&gt;

&lt;p&gt;When you read our &lt;a href="https://miniblocks.io/digest" rel="noopener noreferrer"&gt;daily or weekly digests&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every percentage change and trend direction was computed with explicit thresholds, not hallucinated&lt;/li&gt;
&lt;li&gt;Every anomaly passed a statistical significance test before being included in the prompt&lt;/li&gt;
&lt;li&gt;The charts are real data rendered server-side, not AI-generated images&lt;/li&gt;
&lt;li&gt;External context (market sentiment, TVL) is used to calibrate tone, not to speculate&lt;/li&gt;
&lt;li&gt;The model is instructed to be neutral — no endorsements, no promotion, no unverified claims&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI is a writer. The data, the analysis, and the statistical rigor come from our pipeline. We think that's the right way to use language models for reporting: trust them with prose, not with math.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the Digests
&lt;/h2&gt;

&lt;p&gt;Browse the full archive at &lt;a href="https://miniblocks.io/digest" rel="noopener noreferrer"&gt;miniblocks.io/digest&lt;/a&gt;. Daily digests cover the last 24 hours with a two-week trend backdrop. Weekly reports go deeper on DApp-level rankings and week-over-week changes across every active contract on MegaETH. Both are produced automatically, with the pipeline described above, every day at 00:30 UTC.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>blockchain</category>
      <category>dataengineering</category>
      <category>megaeth</category>
    </item>
  </channel>
</rss>
