Levelling up every transaction across an NFT marketplace
Eighteen months leading design on a gamified NFT marketplace, where ranks, quests and a Battle Pass sit on top of the trading. I ran the design from 0->1, from the sitemap to the badges and rank animations, and reviewed and signed off the UX two other designers worked on. It has traded $35M across 170k+ transactions, with a peak day of $1.37M.

Overview
Existing collectible marketplaces were transactional, users came in, bought and left. Spaace wanted a consumer marketplace where engagement was the core. Every buy, sell and stake pays XP into a rank, ranks feed divisions and a leaderboard, and behind all of it sits a Battle Pass handing out quests and rewards. The trading half of the product already exists on competitor platforms and the client had no interest in reinventing it. The half nobody had built is the reason to keep coming back to Spaace over everyone else.
I worked on Spaace over 18 months while employed at Avark, leading the UX and design of the product, the design system and the gamified mechanics. Every transaction pays into a level, and the level lives in a part of the product no marketplace had built before. It has traded $35M across 170k+ transactions, with a peak day of $1.37M.
Overview
Discovery
Four marketplaces to learn from, and no precedent for the rest
The brief named four competitors to study. OpenSea, Blur, LooksRare and Rarible, with an instruction attached. Lift what already worked and improve it where we could. Our UX Designer and I went through all four flow by flow, documented each one, then compared them side by side and marked what we would take and what we would leave. Nothing about the market side of Spaace was going to be novel, and the client didn't want it to be.
Where all four agreed, the pattern was settled and there was nothing to gain by moving it. Where they diverged we drew both options and put them in front of whoever was in the office that day. That is a long way from user testing and was never meant to be, but somebody seeing a screen for the first time will tell you in a minute which of the two they can follow.
That teardown covered buying, listing, bidding, filtering, collection pages and search. It had nothing to say about the other half of the product. No marketplace in the category had ranks, XP, divisions, quests, chests or a Battle Pass, so there was no existing model to audit and no established pattern to improve on.
The references came from games instead, Fortnite in particular, for the chest mechanic and for how rarity ought to feel. There was no product and no users at that stage either, so no analytics, no support queue and nobody to interview. The whole of the available evidence was four competitors and a Notion workspace, and what came out of it was a sitemap that fixed the structure before any screen got designed.
Competitor audit

Sitemap

The Problem
The Battle Pass holds everything that makes it different
How do we reward users for everything they do here? How do we get them back tomorrow instead of going to OpenSea? Spaace had largely answered it themselves before we started, across a Notion workspace of documents and boards that specified the mechanics down to the individual quest.
What that answer did not settle was where the gamification was allowed to live. The marketplace has to behave like a marketplace. A collector buying a 90 ETH item needs the floor, the last sale, the rarity and the fees legible in a single pass, and none of that survives a screen covered in badges. So the trading surfaces stayed conventional and the levelling, the ranks, the quests and the chest openings all went into the Battle Pass, an area with its own navigation and its own look.
That split is the design problem. Everything that makes Spaace worth choosing over OpenSea sits behind one link a trader has no particular reason to follow, and the marketplace has to carry enough of it to make somebody curious without ever getting in the way of a trade. It does so with a deliberately light touch, a rank and an XP count pinned in the top navigation beside the wallet, and the XP a purchase will earn sitting next to its price. Each of those is a pointer to the Battle Pass, and between them they are most of what a trader ever sees of the thing the product is for.
Collectors and degens were the priority, since they were who the rewards were aimed at. Whales came after them, with a set of features built specifically for people moving forty items at a time.
Marketplace


Process
The client held the pen
Their founder knew the NFT market well, was involved daily, and the Notion workspace he maintained was the spec. Where I thought there was a better answer we would present two paths, the thing they had asked for and the thing we believed worked better. Some of those landed. Plenty did not, and the reason was almost always that no other marketplace was doing it that way. On a product whose entire pitch was doing what no other marketplace did, that was a harder argument to win than it should have been. They made the final calls and we created what they asked for.
The work started out moving page by page through a sign-off gate. Wireframes, feedback, revisions, sign-off, and only then the design. That held while the contract was fixed price. Once it moved to a monthly retainer and the client wanted things going faster, the gate went with it, and the order became the 1920px screens first with the two other sizes following once the design was agreed.
The design work was mine. Two other designers did the UX, and none of it reached the client until I had reviewed it and signed it off. Most of that review went on why a screen was laid out the way it was, and whether it held to the patterns we had already set.
The build side was the messiest part of the engagement. The client changed development team three times across the eighteen months. Each change meant learning how the new team wanted to receive work, what they needed drawn that the last team had not, and which of our conventions were about to be thrown out. Handover stopped being a thing we produced once and became something we renegotiated every few months.
Wireframes and clickable prototype

Design
The marketplace is restrained, the Battle Pass is built to feel like a game
The Battle Pass is where all the gaming mechanics live, and it looks nothing like the rest of the product. We flipped the theme to dark mode so it stood out from the rest of the marketplace. It included its own navigation, seasons, sprints, quests, progression and leaderboards. Quests of the day sit on a 24-hour timer, daily streaks pay more the longer you hold one, and the rank ladder runs in divisions. Finishing a sprint opens a mystery chest, and the chest is where the rewards come from.
Everything else stays simple and clean with hints to the gamified mechanics. Collection and item pages carry what a trader reads and nothing more. For the whales there is bulk listing, where forty items can be priced off the floor or the top trait price in one action, laddered across a range, with proceeds after fees shown before anything is confirmed.
None of the gamification goes near a trade. No XP animation when a purchase confirms, no chest prompt mid-checkout, no celebration on a buy. The states nobody plans for got the same attention as the ones they do, so a wallet that will not connect, a transaction that fails and a listing that does not go through each get a plain sentence and a button, built from the same components as the rest. Anything with a flourish on it sits behind the Battle Pass link. That costs discoverability on the one thing the product is selling, and it is what keeps a 90 ETH purchase readable.
The design system grew alongside the screens instead of being defined ahead of them. Colour, type, spacing and component primitives came out of real surfaces as they landed, and each component carries its full set of states. Over eighteen months it stretched to cover surfaces nobody had thought of when it started. It went over as a documented Figma file with styleguides the development team could build against.
The feature list was the client's. How any of it felt was not, and that is the part my team and I put in. Hype and anticipation were what they wanted the brand to do, and the gamification is where it had to be delivered, so every reward lands with feedback that feels earned. A chest takes a beat before it shows you anything. A rank-up plays out full screen. Each one holds you for a moment before it pays out. I led the creation of all artwork. Rank badges, division tiers, chests, quest icons, and the level-up and chest-opening animations, each with the sound that goes with it.
The Battle Pass





Details
Built for a dev team that didn't exist yet
When the design contract started, Spaace had not appointed anyone to build it. I made the call that my team would build the core components ourselves, ahead of a team existing, and hand them over as working code.
The argument was reasonable enough. We already owned the brand, the UX and the UI, so the components would be a truer build than anything a stranger could produce from our Figma file. The work could start immediately with nobody waiting on a handover. Whoever won the contract would inherit a head start. We proposed over twenty components in static HTML, CSS and JavaScript, framework agnostic and ready to drop into whatever a team was already using, plus a CSS variable file for the palette, the icon set as SVGs and the global type styles.
We built them the way we build things, and once a development team was appointed that turned out to be the whole problem. Framework agnostic solves for the framework and nothing else, and almost nothing that made our components awkward for them was about React or Vue. It was file structure, naming, how state was handled, how they expected styling to arrive. We went back and rebuilt the set to their requirements, and the head start we had promised went on doing the work twice.
The decision to do it at all was mine and it is the one I would take back in hindsight. Building a single component and getting it accepted would have surfaced every one of those conventions inside a day. We built them all before there was anybody to accept them.
The component set


Reflection
$35M proves the marketplace and stops there
Spaace has traded $35M across more than 170,000 transactions, with a peak day of $1.37M. Those figures come from onchain activity, so they are the marketplace's own record of what went through it.
What they do not do is separate the gamification from the marketplace underneath it. They are lifetime totals for the platform as a whole. Volume proves the marketplace worked, and it does not prove the levelling did, which is the entire premise of the product.
My job was getting the MVP off the ground, and no user testing fed into that. The client ran beta groups of their own around launch, but nothing from it reached me and I never watched anybody use the thing. Afterwards they took the product in house and the retainer wound down to occasional support, so we never got a pass at iterating on whatever launch had taught them.
The gap here is not a usability study. It is that the numbers were never split the way the product is. One set should cover the marketplace, volume, listings, repeat purchases, the things any marketplace watches. A second should cover the Battle Pass on its own, how many traders ever open it, how many claim a quest, how far into a chain they get, and whether ranking up brings anybody back the next day. Lifetime trading volume answers the first and says nothing about the second, and splitting them is the only way to know whether the Battle Pass earned its place.
Asset creation, interaction and motion




