Transform blockchain wallet transactions into engaging narrative stories with AI
ChainStory is a ChatGPT app that turns any Ethereum wallet's transaction history into an interactive narrative story. Simply ask "Tell me the story of vitalik.eth" and ChainStory analyzes transactions across Ethereum, Optimism, Arbitrum, Polygon, and Base to generate:
ChainStory uses the Model Context Protocol (MCP) to integrate with ChatGPT and Blockscout's blockchain data infrastructure. The smart sampling algorithm fetches 30% of oldest transactions (for accurate genesis) and 70% of recent activity (for current behavior), optimized to stay under ChatGPT's timeout limits while maintaining accuracy.
Perfect for:
Try it: "Tell me the story of mattkoch.eth" or "Analyze 0x..." in ChatGPT
ChainStory is built with a two-server architecture optimized for ChatGPT integration:
MCP Server (Node.js + TypeScript):
Widget (React + Tailwind + Vite):
Key Technical Challenges Solved:
Genesis Date Accuracy: Large wallets (vitalik.eth with 10,000+ transactions) were showing incorrect genesis dates. Solution: Smart sampling fetches 30% from early blockchain era (2015-2020 for Ethereum) using age_to parameter, ensuring we capture the actual first transaction.
ChatGPT Timeout Management: Total execution budget is ~130s. Solution: Fetch Ethereum first (most important for genesis) with 90s timeout, then fetch L2s in parallel with 40s timeouts. Uses Promise.race() to handle timeouts gracefully.
Widget Asset Loading: ChatGPT requires external assets. Solution: Separate static file server (port 4444) serves compiled widget files with version-based hashing (2d2b) for cache busting.
Token Spam Filtering: Token transfer APIs include spam. Solution: Filter by token value, transaction age, and known spam patterns to surface meaningful activity.
Blockscout Integration:
Notable Hacks:
Tech Stack: Node.js, TypeScript, React 19, Framer Motion, Tailwind CSS 4, Vite, MCP SDK, Zod, Blockscout MCP

