2025–Present

Candy

What began as one manually changed NFT trait became a Solana-native platform for customizable characters, VRF-backed packs, collection launches, trading, and Fusion—designed and engineered from the ground up while I led a five-engineer team.

ScopeProduct Strategy & System Design, Rust, Solana & Full-Stack Engineering, Product Design & Brand Identity, Technical & Creative Leadership
TimelineMarch 2025–Present
Live projectPreview
Candy
Revenue$400K+
Engineers Led5
Product Build0→1

From One Trait Change to a New Solana System

Candy began when my cofounder asked me to help change a trait on an NFT from his own collection. He had been updating the artwork manually and believed other holders would want the same freedom. That small request exposed a much larger product opportunity: instead of editing finished NFTs one at a time, the character itself could become a system—one in which visual traits were owned, collected, exchanged, and recombined by the holder. There was no established Solana product or technical pattern we could copy for this. I designed Candy’s technical and product system from the ground up—including the composable asset model, product mechanics, transaction flows, rendering logic, interface, and brand. I also personally engineered its foundational architecture, Rust programs, VRF-backed pack mechanics, rendering system, frontend, and backend, then built and led a team of five engineers as the platform expanded.

Candy in Motion

The MVP: Packs and Customization

The first version of Candy paired two ideas from the beginning. Customization let a holder rebuild an NFT from traits they actually owned. Packs created the discovery loop that introduced those traits into circulation. The product combined the identity and collectibility of trading cards, the anticipation of gacha, and the creative freedom of a character builder, while keeping ownership and outcomes verifiable on-chain. Instead of launching another fixed collection, we created a reason for an existing character to keep changing after mint.

One Product Loop, From Pack to Character

Packs and the Builder

Creating Two Economies That Did Not Exist Before

The original collection NFT remained the character, but I created two new economies around it. Traits became independently owned on-chain assets that could be equipped, removed, collected, traded, or burned. Packs became a second asset class for distributing those traits through randomized openings. On Solana, this meant inventing more than an interface: we needed new rules for ownership, compatibility, rarity, rendering order, pack contents, transaction state, and synchronization between the chain and the visible character. Together, traits and packs transformed a manual art update into a repeatable system of discovery, customization, and exchange.

A Pack Designed to Feel Physical

New Traits Become Owned Inventory

Gacha, Executed On-Chain

I designed the pack flow around verifiable on-chain randomness rather than an outcome chosen inside our application. This made fairness a property of the system, not a promise from its operator: once a pack’s rules were set, neither I nor anyone else running Candy could reroll an opening or tip the outcome in someone's favor. A pack moves through wallet approval, a VRF request, fulfillment, reveal, trait inscription, and inventory synchronization. Each opening resolves into four new trait assets, preserving the suspense of gacha without requiring the holder to trust a hidden random-number generator. The customer sees one legible reveal; underneath, Rust programs, asynchronous Solana state, rendering, and application services must converge on the same verifiable outcome.

One Protocol, Different Worlds

Once the MVP proved packs and customization, I expanded Candy into a launchpad for collections designed to be composable from day one. The shared protocol let each project define its own artwork, trait slots, rarity bands, supplies, pack logic, compatibility rules, mint structure, and visual world without rebuilding the platform beneath it. For Trencher, Candy became the customization infrastructure intended to power its future game, allowing characters and equipment to change, upgrade, and remain current as the game develops. Nub tested whether a major internet IP with an established Web2 audience could enter a Web3 economy without losing its identity or community; we created an explorable low-poly world and brought Nub’s ongoing feud with X into the collection’s films and campaign. The world and films became a hit with Nub’s community, and the work pushed Candy toward a broader model of persistent digital identity: Pokémon- and trading-card-inspired character cards that could carry current artwork, equipped traits, rarity, provenance, and achievements across profiles, chat, games, and partner experiences.

Launching Distinct Collection Worlds

NFTickets: Access as a Collectible

We also launched NFTickets, our own cross-collection series of Wonka-inspired access passes. We deliberately did not treat them as a revenue product; we gave them out to reward early community members with access to collection mints before they opened to the general public. Beneath that playful object was a flexible staged-mint system. Each collection owner retained complete control over how a collection was released: who could mint during each gate, how long each stage remained open, how access moved between audiences, and when the public mint began. NFTickets gave early access a recognizable visual identity across Candy launches while allowing every collection to preserve its own world.

Nub: A Ticket Into a Persistent Collection World

An Economy Beyond the Original NFT

Packs and traits created two new asset economies around each character. Candy’s marketplace made collection NFTs and their components independently tradable, connecting discovery, inventory, rarity, listings, and wallet transactions inside the same product used to open packs and customize characters. A holder could pursue one specific trait, sell a duplicate, or assemble a new build without buying or selling an entire NFT. Fusion added the complementary asset sink: holders could permanently burn four traits from the same rarity band to produce one trait two levels higher. Together, trading and burning gave component assets utility after mint, removed surplus supply from circulation, and created another route into customization while keeping every ownership change and irreversible burn enforceable on-chain.

A Marketplace for Collections and Components

Inventory and Trading Across Devices

Making an Unfamiliar System Feel Obvious

Because Candy had no direct product precedent on Solana, familiar metaphors mattered. Packs explained discovery. A character builder explained composition. Trading-card identity explained persistence and collectibility. A marketplace explained exchange. I designed the product and brand together so those concepts felt tactile and intuitive while wallet approvals, transaction states, rarity, and ownership remained clear. The pink pinwheel, pack forms, motion language, interface, and launch worlds gave the underlying protocol one recognizable personality.

Rust Programs Beneath a Playful Interface

My CTO role remained hands-on throughout the expansion. I worked across Rust program logic, Solana state transitions, pack creation and opening, VRF fulfillment, trait inscription, equipping, trading, and Fusion, while also shipping React and TypeScript throughout the Next.js product. I designed the boundary between on-chain authority and off-chain responsiveness: Solana remained the source of truth, while indexers, APIs, rendering services, realtime updates, and client state translated it into an immediate product. I led five engineers across contracts, backend, frontend, rendering, and infrastructure—setting technical direction, reviewing architecture and code, sequencing releases, and continuing to design and implement core work myself.

Seized by Candylabs: When the Protocol Became the Campaign

For the “Seized by Candylabs” campaign, we used composability itself as the media idea. We added an extra trait to every NFT across two collections, overlaying each live character with custom crime-scene tape reading “Seized by Candylabs.” The collections did not simply appear in an advertisement; their assets became the advertising surface. I connected the protocol capability, visual direction, collection collaboration, and launch campaign in one activation that demonstrated the product by changing the product.

Taking a Solana-Native Collection Into Tokyo

The Trencher launch extended the system into a public campaign across Tokyo. Collection characters, pack art, and launch motion appeared at city scale, connecting an on-chain product to a physical cultural moment. It was the final layer of the same work: protocol engineering created the possible action, product design made it usable, the launchpad made it repeatable, and creative direction made people want to participate.

Tokyo Launch Campaign

From a Manual Edit to a Commercial Platform

Candy grew from one manually changed trait into a reusable platform for customizable NFT collections, generating more than $400K in revenue. The original MVP created the pack and trait economies. The launchpad turned the model into infrastructure for Trencher and Nub. The marketplace made the new assets tradeable, and Fusion added a burn mechanism designed to strengthen their market. I took the work from product discovery through system design, Rust and full-stack engineering, brand, interface, collection launches, campaigns, and team delivery—and continued building as the platform and organization expanded.