Testnet+250 XP earned

Hall Of Squads

A friend turned out to be an incredible artist during testnest days. Skills nobody knew they had surfaced through the 10k Squad community during Monad testnet and kept surfacing after mainnet in contributions. Friendships formed. Creativity unlocked. But life moved on, and those contributions faded into timelines, almost forgotten. Hall of Squads exists so that never happens again. It's a permanent on-chain archive where every member of the flock can showcase their work, preserve their story, and be seen because being seen opens doors, whether or not you won the contest. The biggest lesson was realizing that the blockchain isn't the app. My PostgreSQL database sits in front of everything as a fast read cache, but the actual source of record lives on-chain. The database helps with speed. The chain provides the guarantees. Authentication was different too. Instead of usernames and passwords, users connect a wallet and sign a cryptographic message proving ownership of that wallet. No passwords stored. No secrets shared. Access control ended up being surprisingly simple. Hall of Squads is built for 10k Squad holders, so instead of maintaining permission tables, the app just checks whether a connected wallet holds a 10k Squad NFT. I also ended up writing to two chains in the same application: mainnet for NFT verification and testnet for my own contracts. One thing that finally clicked for me was ABIs. They're basically the public interface of a smart contract. If you've worked with APIs before, the concept feels very familiar. And like most software development, I didn't build everything from scratch. ERC-1155, OpenZeppelin, wagmi and a lot of other tools already exist. The job wasn't reinventing them. It was using them properly to build something useful. Hall of Squads started as a contest entry, but it became a good excuse to understand how modern dApps are actually put together.

Discussion

Sign in to comment on this project.

No comments yet. Be the first to share what you think.