Solana community tooling
In 2022 and 2023 I led a small team building raffles, a spin-the-wheel game and staking sites for Solana NFT communities, re-skinned per collection. Owners ran their own events in Prismic.
- Role
- Built the white-label raffle, spin-the-wheel and staking products
- When
- 2022–2023
- Client
- Solana NFT communities, freelance
- Stack
- React, Node.js, Express, MongoDB, Prismic, Solana web3.js, and 3 more
- Status
- Archived

Context
In 2022 a lot of Solana NFT communities were running raffles, token-spending games and staking for their holders, and every collection wanted its own version in its own art.
Usually that meant a developer on call. Each new raffle, prize or reward change became a request, and communities waited on someone else to run their own events. I was working directly with collection owners, and I wanted to take that dependency away.
So we built the tools once, as white-label products. I led a small team, and each community got the same code in its own skin and ran it themselves through Prismic, a headless CMS.
What I built
Raffles
Holders buy tickets through a token or NFT gate. Owners create and publish raffles in Prismic, with work-in-progress, planned and archived states, and per-raffle requirements such as a Discord ID, a shipping address or a merch size. An admin portal shows winners, ticket purchases and users. Auctions and lotteries came later, for the communities that asked for them.
Spin the wheel
Holders spend the collection's SPL token to spin for on-chain and physical prizes. On-chain prizes go straight to the winner's wallet, and physical prizes like t-shirts and hoodies ask for a shipping address. Owners manage prizes in the CMS, and a prize that runs out drops off the wheel on its own. A side panel shows each holder their history, their shipping details and the leaderboard.
Staking
Communities started on Gem Farm, a third-party custodial platform. I moved Baby Ape Social Club to a custom staking app with pair multipliers, and then moved collections to white-label sites on Cardinal's staking contracts, with admin stats and snapshot exports for airdrops. When programmable NFTs arrived to enforce creator royalties, they couldn't be staked the usual way, so I added pNFT staking support to the Cardinal setup.

One codebase per product
Every community ran the same code, and a new collection got a new skin. Balloonsville's red $AIR market, the Yeah Tigers street art, the Baby Ape Social Club jungle wheel, the Sol Yetis mountain and the Metaforge floating islands all have the same layout underneath. A new collection meant new art and its own token in the config, not a fork.
The same layout in five skins
Pick a collection to swap the skin. The layout stays the same.

Balloonsville Raffles skinned for Balloonsville. An artist handle blurred.
Real screenshots of the deployments, with winner wallets and handles blurred.
Architecture
- Each collection gets the same React front end with its own skin, deployed on Vercel.
- The community's team creates raffles, auctions and prizes in Prismic. Publishing makes them live, and retired prizes leave the wheel.
- A Node.js and Express API on Heroku, backed by MongoDB, records tickets, spins, winners and shipping details.
- Holders connect a wallet and pay in the collection's token, or hold the gating NFT, to enter or spin.
- On-chain prizes pay out to the winner's wallet. A scheduled job redistributes any payout that failed. Physical prizes go to the admin's shipping list.
- Staking runs on the collection's staking contracts, with an admin view for stats and snapshots.
Decisions
Owners create, publish and retire their own raffles and prizes in the CMS, with no deploy involved. The CMS models decide what an owner can change, so every new kind of event starts as a content model.
For staking I built on Cardinal's contracts, which handled custodial and non-custodial staking for any standard collection. Staking for a new community was a white-label site with no new contract to write.

What went wrong
Burning a token on every spin meant holders sat waiting for a confirmation each time. I added spin credits they could buy up front, so the wheel answered straight away.
Payout transactions sometimes failed when the network was busy. A scheduled job ran every four hours and redistributed any reward whose payout had failed, and every win carried a claim ID for support.
Baby Ape Social Club
Baby Ape Social Club is a Solana collection with its own $DAB token, and it used every part of this. For the club I built the $DAB Island Raffle, the Lucky Banana Wheel, the club's website, pairing for its second collection, Baby Tigers (not to be confused with Yeah Tigers), and the front end and integration for its pair-multiplier staking app.
Other communities
Here's every Solana community I built utility work for in 2022 and 2023, from my own records. Catalina Whale Mixer's holder portal and Floating staking have their own page. White-label staking was built in collaboration with Magic Eden.
I wrote longer versions of this in June 2023, on raffles, spin the wheel and white-label staking.
- Baby Ape Social ClubRaffle ($DAB Island), spin the wheel (Lucky Banana Wheel), website, Baby Tigers pairing, staking
- Yeah TigersRaffles, staking
- BalloonsvilleRaffles and the $AIR auctions market
- Sol YetisRaffles, the Yeti Underground wheel, staking
- Metaforge$CRAFT token staking and admin stats
- Degen DojoSpin the wheel
- Shrouded PlaygroundWhite-label staking
- Otaku OriginsRaffles
- Catalina Whale MixerHolder portal and Floating staking
- Icarus 2120Solana utility work, 2022–23
- Wise WhalesSolana utility work, 2022–23
- HER NFT ProjectSolana utility work, 2022–23
- Courtyard (Solana, 2022)Solana utility work, 2022–23
Built in collaboration with Magic Eden (White-label staking).
Feature by feature
Raffle ($DAB Island Raffle)
The white-label raffle, skinned as the $DAB Island Raffle, with raffles created and published by the club's team in the CMS and winners shown on the site.
Spin the wheel (Lucky Banana Wheel)
Holders spend $DAB to spin for token and physical prizes. Spin credits let them buy spins up front, so they don't wait on a burn transaction for each one.

Website
The Baby Ape Social Club website, alongside the club's raffle, wheel and staking apps.
Baby Tigers pairing
Baby Tigers is the club's second collection (not Yeah Tigers). Staking an ape together with its matching Baby Tiger earns a 1.25× pair multiplier.

Staking
The custom pair-multiplier staking app, the middle generation between Gem Farm and white-label Cardinal staking. I built the front end and the integration.

Screenshots

Spin history, with the burn and payout transaction for each spin. 
Pair staking for Baby Ape Social Club. Archived. 
Admin stats and snapshot exports, used for airdrops. The Sol Yetis wheel skin, still live in 2026. 
Spin credits: pay up front, so a spin doesn't wait on a burn transaction. 
Win confirmation, with the note about the redistribution job. Transaction details blurred. 
Spin leaderboard. Wallets blurred. 
$CRAFT staking for Metaforge.
My part
I built the staking sites and the integration on top of Cardinal's contracts, including pNFT support. For Baby Ape Social Club's pair-multiplier staking I did the front end and the integration. Gem Farm and Prismic are third-party services. Most deployments are offline now, so the screenshots come from my June 2023 articles and web-archive captures.
Numbers
| Figure | What it measures |
|---|---|
| 9 | documented white-label deployments of one codebase, re-skinned per collection (Casey's June 2023 Medium articles) |
Links
Stack: React, Node.js, Express, MongoDB, Prismic, Solana web3.js, Cardinal, Heroku, Vercel
- See it liveSol Yetis' Yeti Underground wheel (still live) ↗
- See it liveBalloonsville's $AIR market (the front end still loads; the raffle back end is offline) ↗
- ArticleArticle: white-label raffles (June 2023) ↗
- ArticleArticle: spin the wheel (June 2023) ↗
- ArticleArticle: white-label staking and pNFTs (June 2023) ↗













