Chartboy | NFT Collection Analytics
NFT collection analytics API with Twitter sales announcements. Metaplex metadata parsing, trait-based floor prices, historical tracking, and automated announcements.
The Problem
NFT collections have complex metadata structures. Floor prices and average sale prices are misleading because each NFT has unique traits. Additionally, sales happen constantly across marketplaces, and Twitter was where the community gathered. There was no automated way to announce sales from specific collections.
Technical Approach
Express API with Solana Web3.js for blockchain queries and Metaplex for NFT metadata:
- Batch fetch all NFTs in a collection
- Parse on-chain and Arweave metadata for trait extraction
- Calculate floor prices by trait combination
- Historical price tracking for market analysis
Twitter integration for automated announcements: - Monitor Solana blockchain for marketplace transactions - Filter by collection address - Format tweets with sale price, NFT image, and marketplace link - Rate limiting handling for Twitter's API constraints
Interesting Challenges
Solana's RPC is rate-limited and slow. I implemented request batching and caching to avoid rate limits while maintaining responsive charts.
This was my first TypeScript project. The type safety caught numerous bugs during development, especially around metadata parsing where API responses varied unexpectedly.
Twitter's API has strict rate limits. The bot had to batch transactions and spread posts over time to avoid being locked out.
What I'd Do Differently
The project solved a real problem during the NFT boom but was narrowly scoped to one collection. A generalized tool for any Metaplex collection would have been more valuable but required more upfront schema work.
The project worked well but was brittle. Twitter API changes have broken similar bots multiple times. A more robust architecture would separate detection from posting and use a message queue for durability.