Launching NFTs on the Internet Computer is not a trivial process. You have to handle the upload and view of many different types of assets, mint the actual NFTs, configure marketplace methods on the canister (or multiple marketplaces if you want native functionality across many), ensure you have methods needed to interface with ecosystem wallets, and configure launch and marketplace settings to ensure the launch goes according to plan. This makes a custom NFT launch fairly difficult.
To address this problem, we have created Exponent. Exponent is a suite of tools that enable anyone to do awesome work with NFTs. Non-technical folks can use frontends built on standards, and developers can leverage our open API for creating collections/launches and minting NFTs.
What it does
Exponent consists of: An NFT standard (EXT V2) that handles launch settings, collection settings, pricing group settings, and marketplace methods. These can all be easily configured in the canister and this canister can be whitelisted directly to Entrepot (or other marketplaces in the future) An Exponent creation canister that will add a principal as controller to your new canister and can spin up canisters with EXT V2 installed and ready to go. A CLI tool to make it ridiculously easy to interact with the Exponent tooling
The simplest way to describe Exponent is it will let anyone create and configure NFT collections and launches seamlessly integrated with Entrepot directly from icscan.io. No coding required.
We have already had discussions with providers, such as Nuance, Catalyze, and DSCVR, that are interested in building custom frontend features to leverage Exponent in their tools.
How we built it
Exponent took a lot of inspiration from existing Entrepot marketplace methods and the EXT non-fungible standard. To be clear, while Exponent improves on existing methods, it is a completely new set of tools and standards, built from the ground up as part of the hackathon. Our main goal was to allow any developer or any non-technical person to be able to create collections/launches and mint NFTs on the Internet Computer, which is now possible using this Exponent tooling.
Challenges we ran into
There are many challenges associated with minting NFTs. For example, where do assets get uploaded? Do you upload straight to the NFT canister (tricky because of size limits)? Or do you upload to asset canisters (tricky because you have to spin up asset canisters with CDN-type approach)? And then how do you configure your http_request methods to facilitate fast download and viewing of your NFTs in the browser? And what about thumbnails for faster viewing? Do you build a service for thumbnails?
Exponent is a suite of tools to help people with NFTs, but we can’t tackle all tooling at the same time. So we have started with asset uploading, creating and configuring collections and launches, and minting NFTs. This is the first stage of Exponent, and will subsequently grow into many more tools in the future.
Accomplishments that we're proud of
Our most significant accomplishment is that users can go to the right canisters in icscan.io and can mint an entire collection and whitelist it on Entrepot using ONLY icscan.io. This means you can easily interact with a canister or two to easily mint NFTs. We hope that this enables anyone to create an NFT collection and we hope to remove ourselves as gatekeepers in the ecosystem to determine who gets to launch and when.
What we learned
Standards and security are hard. With our initial launch of EXT last summer we weren’t ready to build in all of the things that we have now, so the standard is more simple and not as robust as now. We’ve also found bugs and security concerns along the way that we have patched and fixed up for future standards.
Another key learning is the importance of extensibility with NFTs. NFTs are essentially just data stored on the blockchain, which means there will be many NFT standards for different types of data. Using an extensions approach, you can easily support additional data types or methods with your NFTs. Just drop in the appropriate extension and you are good to go.
What's next for Exponent
Exponent is a suite of tooling that enables non-technical folks and developers to use NFTs in their applications more prominently. We have tackled the minting and setup of the process, but there are so many tools left to build to extend what we have started with Exponent.
Future tooling could include supporting new launch types (auctions, dutch auction), better video support (range requests and distributed storage to support faster downloading of content), adding additional whitelist options (ModClub verified human, NFID phone number verification), wearables NFTs, or interactive NFTs that change based on 3rd party data (piped into the IC via an IC oracle).