This All Hallow’s Eve, we cast open the doors to THE NARRATOR’S HUT—by far the most ambitious work we’ve ever crafted at Crypto Coven and, arguably, one of the most ambitious works in the NFT space.
After the genesis collection of WITCHES, we ruminated on which part of the weird wilds (the world that Crypto Coven inhabits) we wanted to build first. Since our project has always been grounded in rich storytelling, we decided to launch a introductory project as the very first location: the home of our elusive NARRATOR. With it, a series of short stories about witches of olde, told by said narrator.
The brilliant Keridwen wrote five achingly poignant stories (about which you can read more in her own post), and quickly, as our ideas often do under the wing of visionary Nyx, the project grew into one much larger and grander.
What if these stories could be minted as magical objects (what we’ve called ARTIFACTS) imbued with the memories of their erstwhile owners?
What if they weren’t just static images, but richer multimedia assets?
What if people could interact with their metadata on chain?
And, the cherry on top, what if they could be tailored to each WITCH?
Back in February, I set out to pen a series of design docs for everything we needed to build:
A series of audiovisual NFTs to hold animated art and voice-narrated stories
A point-and-click interface for interacting with and minting these NFTs
A smart contract with minting gated through a server
We spent the better part of a year creating five (!!!) generative collections of multimedia NFTs, the immersive experience to bring the lore to life, and a set of contracts to stitch it all together. So here, witches, is a glimpse into it all.
Static images have largely been the dominant medium for NFTs since they’ve existed. To break out of that mold and showcase a new paradigm for what NFTs could be, we chose to explore a multimedia format.
With five short stories chronicling WITCHES of note and the desire to form them into a collection of art, we realized we could weave the two together—by turning them each into a magical object (ARTIFACT) that the subject of the story had once owned, with the narrated story as the echo of that WITCH. As Nyx put it, each ARTIFACT was like a seashell you could press against your ear to hear a faint impression of a memory.
So, then, what exactly is an ARTIFACT?
A work of generative art, either “attuned to” a WITCH (if you have one) or random (if you don’t). An attuned ARTIFACT reads from the metadata of the WITCH who minted it and generates its own appearance to match.
An animated HTML page. Some of the ARTIFACTS, like the CROOK below, are even interactive, with physics interactions to give the object heft and life.
A gorgeously narrated audiobook, replete with music and sound effects to augment the storytelling experience.
Why did we choose to go with HTML? When presented with the dilemma of how to make this collection multimedia, video and HTML were the immediate two options.
The upside of video was better support across platforms—they were handled in most places. But the downside was file size and flexibility. How would we generate tens of thousands of code-customized videos in high-res?
Writing code for web, on the other hand, was our strength. It made it easier for us to create animations, add combination logic, etc., and it added the element of interactivity. On top of that, it meant a smaller file size. The only problem was that the support across platforms was patchy. Some marketplaces like OpenSea and Zora supported HTML pages, and a few tools like Gallery did as well, but many other platforms, especially wallets, didn’t support it at all.
To choose, we focused on what these multimedia storytelling NFTs could be—they were a means of injecting the weird wilds with a new kind of dimensionality and physicality. Without the limitations of static imagery, the ARTIFACTS could be living, breathing objects that could (quite literally) tell a story. HTML was the ideal medium for that.
The exploration led us to the SIREN’S SHELL, our first multimedia NFT that we released as a NFT NYC party favor. It emerged out of the research we did for the HUT, allowing us to test out the concept and iterate on it.
But just explaining what an ARTIFACT is doesn’t begin to cover the sheer complexity that this work entailed.
To call THE NARRATOR'S HUT one generative collection isn't quite accurate—it's more like five generative collections, or even thirty-five generative collections. This grid just shows the spectrum of possibilities, with thousands to millions of combinations represented by every single square in this matrix.
There were five ARTIFACTS (so five objects conjured from the five short stories), and each needed to be able to take seven distinctly different manifestations: one for each of the six archetypes of WITCHES and one for “faceless ones,” or anyone without a WITCH.
Then, within each artifact-archetype permutation, the real magic unfolded. We wanted each ARTIFACT to be visually and/or conceptually customized to the individual WITCH who conjured it. In the lore, we framed the minting process as placing your hands onto an object to make an impression, or copy, of it, thus imbuing it with your essence.
Each ARTIFACT could be affected by a WITCH’s archetype, attunements, astrological signs, and appearance. Some were direct one-to-one references, while others were more abstracted. Some were guaranteed, and others existed on a spectrum of random probability.
Here’s one simple example of WITCH metadata affecting ARTIFACT metadata:
The art for THE NARRATOR’S HUT encompassed a staggering 2,169 individual layers, each of which needed to be filtered through often complex rules and constraints that had to be codified into logic.
But the final outcome? An ARTIFACT that visibly bore the mark of a particular WITCH.
We’d been pushing on the project for many months, and the ARTIFACTS had finally started to take form in all their wonder (and woe). But as I started generating sets, I realized that they didn’t look like they were sets. One crucial ingredient was missing: color coordination, with the WITCH and with the other ARTIFACTS conjured by that WITCH.
We tossed the question back and forth: how should we balance matching aesthetic across six generative art pieces against the magic of randomness?
I put forth two ideas. First, background was an easy win. Each WITCH had one of eight possible background colors, and we could quickly coordinate a set of ARTIFACTS to the WITCH who minted it by matching their backgrounds.
Aletheia created these gorgeous textured gradient editions of each of our original backgrounds that added new depth and dimension but also immediately tied together the color palettes, reinforcing the relationship between a WITCH and their ARTIFACTS.
Second was creating the concept of a primary colorway across an entire set of ARTIFACTS. That meant that each set would have one dominant color across the different objects, ideally matched to some visual aspect of the WITCH.
The logic was different across archetypes—for instance, for MAGES, to select a primary colorway, we checked for script tattoos, then script circles, then hair color. For ENCHANTRESSES and OCCULTISTS, on the other hand, the colorway was based on the WITCH’s attunements: lighter for WONDER, darker for WOE.
Nyx and Aletheia worked overtime to iron out all these rules and then to create the art for them—a daunting task that meant reinterpreting some layers in as many as seven different colorways for each archetype but ultimately shaped cohesion from chaos.
Ahhh, our titular HUT. This project was our first chance to build out the point-and-click narrative experience of the weird wilds—how it looked, how it sounded, how it felt. From a technical perspective, it needed to be dynamic and flexible for future use cases. From a creative perspective, it needed to feel immersive and expansive, seamlessly matching the aesthetic of the WITCHES.
After some exploration, we decided to go with PixiJS, a 2D rendering engine that enabled us to support more kinds of mechanics for interactivity. Oizys built component wrappers for PixiJS so that we could declaratively create “scenes”—of which this one would be the first.
Our jack of all trades Starman set to work on the design. We had a difficult task ahead of us: to create a rich interface for a complex set of mechanics conveyed largely through ui cues, all while keeping the environment immersed in the lore. Slowly but surely, we plucked bits and pieces from game design and product design and wove them into an experience somewhere between the two, a fresh take on building a world and telling its stories.
The intention of THE NARRATOR’S HUT was to evoke a sense of a rich and layered world, ignite the imagination with what might be lurking right outside the frame. That meant that we wanted the experience to be experiential and to feel immersive.
Cue this scene: a distinctly magical home, abundant with trinkets and treasures alike.
The interaction starts with a conversation with the NARRATOR to give context to the HUT. After telling you about her home and the ARTIFACTS she keeps within it, she invites you inside. You can immediately hear the ambient sounds of the HUT—a crackling fireplace, the scratching nib of a pen on rough paper, the soft creak of a rocking chair.
The five mintable objects are highlighted with a permanent glow, but in fact many of the objects are interactable, triggering anything from exposition of the world to nods to community creations to witty commentary from the NARRATOR.
When you do decide to take a closer look at one of the glowing ARTIFACTS, you are presented with the option to have the NARRATOR tell you the story bound to it—her memory of the WITCH who once owned it.
To create this effect, we used Google’s Transcription API (with a heavy layering of manual editing) to timestamp each narrated word and sync the story reader’s text to the audio. Starman created a Snapchat Stories-inspired interface for separating out each story into many pages, with the ability to move back and forth between them.
Once you’ve sufficiently explored the nooks and crannies of the HUT, you can choose to mint some ARTIFACTS of your own. The minting screen takes the form of a summoning—a pentagram pointing at the five ARTIFACTS that lights up when each one is selected.
Each ARTIFACT could be minted by any number of WITCHES in a wallet, and the pricing logic differed between wallets based on a few different factors, which made this interaction particularly complex to communicate. But with some tricky maneuvering between design and engineering work, we wove together a simple yet clear interface for minting.
And finally, a finishing touch we added to build out the experience was a brand-new homepage, with the layout of the beginnings of a map of the weird wilds. To enter the HUT, you first click on its exterior—and fall into a portal to another world.
We embarked on this project with two aims markedly different from our first contract:
We wanted to require people to mint through our web experience, rather than directly through the contract.
We wanted people to be able to access metadata about the ARTIFACTS on chain.
Why require people to mint through our website? That was explicitly the opposite of what we wanted for our first mint. Then, as a new project by an anonymous team in a time when swindles and tricks were commonplace, we wanted anyone to be able to mint directly through Etherscan.
But for this project, centered on world-building, we wanted these ARTIFACTS to be interwoven with the lore that created them, to situate them in a rich imaginative context—not just offer them as isolated objects. That meant we needed to gate the minting by signature, a task that code whisperer Oizys quickly untangled.
The other focus, on on-chain metadata, came out of a wish for higher composability in our work. Our vision for the weird wilds is a world co-created, anchored by decentralized technologies, and so many of the interesting experiments I’ve seen in this space exist on chain.
Because our rich art style and lore are cornerstones of this project, there were many parts that could never be stored on chain. But this time, since we were starting out with the concept of generative objects with (initially) a much lower degree of complexity than the WITCHES, maybe that metadata could live on chain.
I sketched out our contract—really, two contracts: a metadata contract and a minting contract.
For each token, we would need to store a tokenId
, an artifactId
(to identify which of the five ARTIFACTS it referenced), and a witchId
(since each WITCH could only mint each ARTIFACT once)—already triple the data most off-chain art NFTs need to store.
With the default ERC-721 contract, we couldn’t store that data efficiently, and so Oizys forked ERC-721 to write our very own version, packing the data we needed into fewer storage slots for significant gas savings.
For most of the project, we had planned for entirely on-chain metadata. But as the ARTIFACTS expanded in complexity, the constraints of storing all of our metadata on chain grew and grew—until it became clear that the ARTIFACTS would have millions of possibilities and be much more customized to each WITCH than we had ever anticipated.
And so in the last few weeks leading up to launch, we decided to take a risk and pivot to a hybrid approach. Oizys rewrote our contracts to store only specific metadata (about each ARTIFACT and its attunement modifiers, but excluding all visual attributes) and surface that through on-chain getters accessible to any contract.
Our tokenURI()
would instead point to our own servers, to allow us to dynamically and (still) deterministically generate metadata for a given token, including all the visual attributes that had become impossible to surface on chain.
In the end, that left us with three contracts:
The token contract, a fork of ERC-721 with customized storage for our data
The minting contract, which handled minting tokens and storing the specific data associated with each one
The metadata contract, which stored all of the possibilities for each ARTIFACT and deterministically returned the right metadata given token data
Once we were just about finished with the code, we reached out to Solidity Guild to audit the contracts. We weren’t eager to repeat our error from the first project, and so we worked with w1nt3r.eth and obront.eth to refine and hone our code to a sharply pointed tip. To date (knock on wood), we haven’t encountered any bugs in this contract after deploying to mainnet. A fortuitous first!
Second acts are hard. And they are really, really hard when everyone is burnt out and the market is collapsing. There were many times this past year I wasn’t confident we’d pull it off because of timing, because of luck, because the stars weren’t aligned. But after working on this project for the better part of a year, I think it’s a fitting one for us. It pushes the entire NFT space into new and interesting places, technically and creatively—and, well, we never go by halves.
THE NARRATOR’S HUT is a project crafted with heart and hope, the seedling of the world we’re building. We hope this world beckons to you—as we like to say, the weird wilds await.
If you haven’t yet conjured your very own ARTIFACTS: now’s the time. This phase of minting ends on the winter solstice (December 21).
If you don’t have a WITCH: minting closes forever on the solstice.
If you do have a WITCH, you have until the solstice to claim a gifted ARTIFACT for every WITCH in your wallet and mint additional ARTIFACTS at 0.07 ETH. After that, gifting closes, and minting goes up to 0.2 ETH.