Turn any Ethereum address or ENS name into a cinematic five-chapter narrative, generated from live onchain history and rendered as both readable web prose and a shareable 1080×1920 poster.
Most onchain explorers show you raw data. Block numbers. Transaction hashes. Hex addresses. Useful, but cold.
But every wallet has a story.
When was it born? What was the first thing it did? Did it survive the great winter of 2022, when half the chain went silent? Has it earned an identity through governance votes, NFT collections, ENS names — or has it stayed quietly anonymous? What is it doing today?
MiMoStory is a narrative engine that reads any wallet's onchain history and turns it into a five-chapter story you can actually feel — and share.
Every chapter is generated live from real data. Every detail is verifiable on the chain.
Every story follows the same arc, drawn from different facts:
The day the wallet was born. Era-aware opening prose (Ancient → Pioneer → DeFi Summer → Bull → Winter → Revival → Modern → Recent), block number, founding transaction, and value transferred.
Discovering the network. Total transactions, tokens accumulated, contracts authored, gas spent — the wallet's footprint quantified.
Survival check. Did the wallet keep transacting through the crypto winter of mid-2022 to early 2023? Wallets that did earn a special line: "The OGs are not those who arrived first; they are those who stayed when arriving was no longer rewarded."
Who they became. DAO votes cast (Snapshot), governance spaces participated in, NFTs collected, ENS name held. The persona is auto-classified across eight dimensions.
The story so far. Current ETH balance, total tokens held, classification (OG / Veteran / Rising), and an open invitation to the next chapter.
Every chapter ends with a metadata strip pulling the exact onchain numbers used.
The narrative engine auto-tags wallets across these dimensions:
| Persona | Trigger |
|---|---|
| 🏛 Governance Voter | 10+ DAO votes |
| 🗳 DAO Member | 1+ DAO votes |
| 🖼 NFT Collector | 50+ NFTs |
| 🎭 NFT Holder | 5+ NFTs |
| 👴 OG (4+ years) | 4+ years onchain |
| 🎖 Veteran | 2-4 years onchain |
| 🌊 DeFi Native | 20+ different tokens |
| ⚡ Power User | 1000+ transactions |
| 🪪 ENS Owner | Has ENS name |
| 🐋 Whale | 10+ ETH held |
| 💎 Holder | 1-10 ETH held |
Tags compose freely. A whale who collects NFTs and votes in DAOs gets all three labels.
Click 🎨 Generate Poster after any story and download a 1080×1920 vertical image:
- Story headline (ENS name or short address)
- Persona tags
- Hero stat: years on chain (massive serif typography)
- 4-stat grid (transactions, gas used, DAO votes, NFTs)
- Era-aware quote: "Through every cycle, still here" / "Earned, not given" / "The next chapter begins"
- MiMoStory + MiMo V2.5 branding
Ready to share on X, IG, or anywhere. One-click X share button included.
| Layer | Choice | Why |
|---|---|---|
| Frontend | Vanilla HTML + CSS + JS | Zero build step, single file deploy |
| AI Engine | Xiaomi MiMo V2.5 | Era classification + narrative composition |
| Onchain Data | Blockscout Ethereum API | No key, no rate limit pain |
| ENS Resolution | ensideas.com API | Bidirectional ENS↔address |
| DAO Activity | Snapshot.org GraphQL | Cross-DAO vote history |
| Avatars | ENS avatar metadata | Native ENS profile images |
| Poster Renderer | HTML5 Canvas API | 1080×1920 PNG export, no server |
| Hosting | GitHub Pages | Free CDN, auto SSL |
Total stack: 1 HTML file, 1 JS file, zero dependencies, zero API keys.
┌─────────────────────────┐
│ USER INPUT │
│ "vitalik.eth" / 0x... │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ ENS RESOLVER │
│ ensideas.com │
└────────────┬────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ BLOCKSCOUT │ │ SNAPSHOT │ │ ENS METADATA │
│ • address info │ │ GraphQL │ │ • avatar │
│ • counters │ │ • DAO votes │ │ • display name │
│ • activity │ │ • spaces │ │ │
│ • tokens/NFTs │ │ │ │ │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
└────────────────────┼────────────────────┘
│
┌────────────▼────────────┐
│ PERSONA CLASSIFIER │
│ → 11 tag dimensions │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ MIMO V2.5 NARRATIVE │
│ • Era classification │
│ • Chapter composition │
│ • Bilingual EN/ID │
└────────────┬────────────┘
│
┌────────────────┴───────────────┐
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ WEB STORY │ │ POSTER PNG │
│ 5 chapters │ │ 1080×1920 │
│ stats grid │ │ shareable │
└─────────────────┘ └─────────────────┘
Visit huolinger010.github.io/mimostory and paste any address.
Add the address as a hash to auto-load:
https://huolinger010.github.io/mimostory/#vitalik.eth
https://huolinger010.github.io/mimostory/#0xd8da6bf26964af9d7eed9e03e53415d37aa96045
git clone https://github.com/huolinger010/mimostory.git
cd mimostory
python3 -m http.server 8080
# open http://localhost:8080That's it. No build step. No .env. No API keys.
- Ethereum mainnet — primary onchain history (Blockscout)
- Snapshot DAOs — governance votes across all major DAOs (ENS, Uniswap, Aave, Lido, Arbitrum, Optimism, Gitcoin, Curve, Balancer, dYdX, etc.)
L2 expansion (Base, Arbitrum) on the roadmap.
Toggle between English and Bahasa Indonesia with the 🌐 button. Every chapter, every label, every quote is fully translated. Default is English (for international reviewers).
- Multi-chain story — extend to Base, Arbitrum, Optimism for unified L1+L2 narrative
- First-NFT detector — identify the first NFT mint as a key chapter beat
- Bear-market scoreboard — count exact tx in each market regime
- Whale wake detection — flag dormancy reactivation (90+ days quiet, then active)
- Permalink stories — share
mimostory.xyz/vitalikURLs that load instantly - Audio narration — TTS-generated podcast-style chapter readings
- Animated poster — short MP4 export with chapter beat animations
This is a single-file app — easy to read, easy to extend.
- New chapter ideas → open an issue with the data signal that drives it
- New language → add a key to
I18Ninapp.js - New persona tag → extend
classifyPersona() - Better era classifier → improve
eraOf()with finer cycles
MIT © 2026 @huolinger010
- Xiaomi MiMo V2.5 — narrative reasoning engine
- Blockscout — open Ethereum data
- Snapshot — DAO governance index
- ENS Ideas — ENS resolution API
- The Ethereum chain itself, which has been faithfully recording every story since 2015
Built for the Xiaomi MiMo 100T program — showcasing what an open AI engine plus open onchain data can do, in a single zero-dependency HTML file.