I got awarded a Warriors badge from Geyser Fund a while back and I was excited! but I had no idea what a Nostr badge actually was. The Geyser team was super patient, emailing me back and forth, pointing me to badges.page and other sites. Most of them wouldn't even load (SSL issues, dead pages). The one that did work... I couldn't see my badge. They told me I needed to "collect" it first, but there was no icon, no image, nothing to click. No other tool available to help.
That's when I decided to build Nostr Sigil — a modern platform where you can actually see your badges, create new ones, award them to people, and show off your collection. The whole experience should be visual, intuitive, and fun.
What you can do with it right now:
- Create badges with a name, description, image, and a unique rarity tier backed by NIP-13 proof-of-work mining (Common → Rare → Super Rare → Epic → Legendary)
- Award badges to any npub directly or share a claim link people can use to request one
- Collect and display your badges on your profile — reorder them, choose which ones to show
- Discover badges across the network with search, filters (rarity, popularity, date range), and multiple sort options
- Leaderboards for top badges and top creators
The rarity system is probably my favorite part. It's not just a label — your device actually mines a hash with enough leading zero bits to prove the difficulty (NIP-13). Legendary badges require difficulty 32, which takes a serious mining session. Anyone can independently verify a badge's rarity by checking its event hash. You can't fake it.
Tech stack: Next.js 16, nostr-tools, TanStack Query, Zustand, shadcn/ui, Tailwind CSS. Images are stored on Blossom (NIP-B7) with multi-server redundancy (nostr.build + primal.net). A Convex backend indexes badge events every 15 minutes for fast search, sorting, and leaderboards — but the Nostr relay network is always the source of truth. Events are published to 15 relays for redundancy, with a relay scoring system that learns which relays are fastest over time.
It's also a full PWA — install it on your phone, get push notifications when you're awarded a badge, browse cached badges offline. The service worker handles image caching aggressively so badge images load near-instantly on repeat visits.
Not open-source yet, but it might be down the road. Right now I'm focused on shipping features and getting feedback.
I have so many ideas for where this can go and I'm genuinely excited about the potential of Nostr badges. I want them to become the ultimate flex on Nostr — community recognition, event attendance, skills, trust signals, collectibles. The protocol supports all of it, it just needed a proper home.
Would love your feedback! Try it out, create a badge, award it to a friend. Let me know what breaks and what's missing.