← back

Chartboy | NFT Collection Analytics

2021NFT/Solana

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.

Tech Stack

TypeScriptExpressSolana Web3.jsMetaplexTwitter API