Focus on Creative Work, Use Highlight for the Rest

I’m excited to share that I’ve recently joined Highlight as Head of Growth. When I spoke with the team and learned about the tools Highlight is building, I realized that much of the development work I have done in NFTs over the past few years—even including highly custom on chain and in chain implementations like Ornament or Web—could have been made dramatically easier by the platform. This is work that I’ve done as an engineer and charged quite a bit of money for, that Highlight can do for about $1 per mint. I wanted to get my thoughts together and explain why I was excited to join the team, and how I think using Highlight is kind of a no-brainer for 95%+ of all NFT releases.

If you just want the TLDR: you can use Highlight for all the repetitive, risky, and expensive release mechanics of your NFT projects (sale phase transitions, allowlists, auction logic, mint/connect flows, thumbnail generation of code-based works, randomized mints based on hashes, etc.), while you focus on all the creative and interesting things (the artwork itself, new on chain approaches, custom websites, etc.).

Here’s the longer version:

The blockchain side of NFT releases tends to involve the implementation of the same core patterns, combined and tweaked to achieve the same general release mechanics. The patterns I’m referring to will sound familiar:

  • Release phases (some users can mint earlier than others, the sale goes live at a specific moment)

  • Allowlists (sometimes with discounts for certain tiers, sometimes stacked into multiple allowlists with various perks, and sometimes with a public phase afterward)

  • Dutch auctions (sometimes with rebates at the end)

  • Mint limits (per wallet or per transaction, often with basic bot prevention)

  • Thumbnail generation for generative works (typically using a headless browser, with automated upload to decentralized storage)

  • A mint website (so users can connect their wallet and mint)

  • On chain metadata features (storing scripts on chain for permanence)

Anyone who’s spent time building these patterns will tell you they’re essentially the same across all projects. Most developers will simply fork their existing Github repos and roll over code from previous projects, using common libraries like OpenZeppelin or Solmate as boilerplates. There are very few deviations from this core set of features (the Nouns model, the folia Kudzu virus, and the Kia Sedona ICO/redemption model).

These implementations are repetitive, fairly uncreative, and inherently a little risky—anybody who has released an ERC-721 will be familiar with the dread involved, and anybody who has been around long enough will have seen projects whose entire revenues have been burned due to an implementation bug. In addition to all that, hiring devs to build these implementations is expensive. Solidity/web3 developers will typically charge somewhere between 10%-25% of a project’s entire proceeds.

Some bits of this pipeline have begun to be tackled. Splits is my go-to for handling payment splitting (I used to use the OpenZeppelin libraries), and projects like Lanyard are aiming to decentralize allowlists. But most of this work just gets repeated, over and over again.

When I spoke with the Highlight team, I realized that I could have used Highlight for nearly every one of the projects I’ve released, and that it would have been faster, less stressful, and less repetitive (not to mention much cheaper for the artists I’ve worked with).

For example, I recently worked with Jan Robert Leegte and Superposition to release Web. For this release, I wrote a Dutch auction mechanism (copied liberally from Art Blocks), included 3 different allowlists (each of which had a different discount), wrote a thumbnail generation script using headless Chrome, and added the ability to mint artist prints in advance. I then wired up the website to enable minting. I spent quite a bit of time getting all of this to work. Look how complicated the mint function became. This isn’t a huge problem, but there is lots of room for error here, and no real advantage gained for having written it myself:

Highlight supports pretty much all of this, with a few button clicks.

But the really creative aspect of the blockchain work was the on chain implementation—we didn’t just want to save the script on chain, we wanted to save all the metadata and generate the work itself on chain. This required some thinking. It would have been far more ideal to simply focus on that aspect of the work, building a custom contract with a single tokenURI function, and then just use Highlight to facilitate minting, thumbnail generation, auction pricing, and allowlisting/phases. We could have even embedded the mint button on the custom site.

To me, the great part about this approach is that you can mix and match. Highlight has released (or in some cases, is about to release) components that are flexible enough to use only specific portions of it that you need. Even if you prefer to use your own minting contracts, I don’t see why anybody needs to rewrite and host the same post-mint thumbnail generation snapshot tool thing over and over again.

I field quite a number of dev requests from artists and NFT projects. Here’s an outline of some popular requests that are all possible with Highlight:

  • I want my own smart contracts, I don’t want to be on some giant contract with a bunch of other works like the OpenSea contract—you can do this with Highlight. Each project is deployed to its own contract, featuring just your work.

  • I want custom sale mechanics, with various phases like a collector-only phase (with discounts), a second community-only phase, and a third Dutch auction phase—you can do this with Highlight. Add as many customizable mint phases as you like.

  • I want to build my own custom front end and minting experience—you can do this with Highlight. Just use the Highlight contracts and wire it up to your own front end like you normally would, or use Highlight’s embeddable mint UI.

  • I want to use all my own custom generative mint contracts, but I want to use a 3rd party system to compose post-mint snapshots of each mint that are then uploaded to IPFS or Arweave to use as thumbnails—we would love to work with you if you’re interested in this. I think this could be particularly powerful.

  • I want my generative scripts stored on-chain—you can do this with Highlight.

  • I want to build my own custom in-chain smart contract which composes my artwork in Solidity and returns it in the tokenURI—let’s do it. You can write your own contract with just a tokenURI method, and forward a Highlight minter contract to it. I’ve used this pattern in the past, it’s the same one used by Nouns to enable future upgrades. Reach out if you’d like to learn more about this one.

  • I want to release a 10k monkey pics project—okay, yes. You can do this with Highlight.

At the end of the day, this means you can still have your artwork, your own custom contract(s), and if you want, your own release site, and pay about $1 per mint to save yourself the hassle, risk, and cost of implementing the rest yourself.

If you’re an artist or engineer and you’re interested in learning more about how to take advantage of the stuff I’m talking about for your projects, please reach out to me. I’ll be happy to share what I know and show how Highlight can make your life easier.

Subscribe to Highlight
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.