How to Deploy an ERC721-C NFT Drop with Enforced On-Chain Royalties
In this guide, we'll walk through how to deploy an ERC721-C NFT collection with built-in royalties using Thirdweb's new feature modular contracts. By the end, you'll have a fully functioning NFT collection that enforces royalties on secondary sales and prevents market manipulation.
To get started, check out the full tutorial video:
Prerequisites
- A Thirdweb account.
- A wallet like MetaMask to connect to Thirdweb.
- Some test funds on a testnet of your choice, we recommend Sepolia.
Understanding ERC721-C and Royalties
ERC721 is the standard for NFTs, allowing for true ownership and free trading of digital assets. However, the current ERC721 standard has some issues:
- Royalties are not enforced, so marketplaces can bypass paying royalties to creators on secondary sales.
- Market manipulation is possible through practices like wash trading, where a bad actor buys/sells an NFT to themselves to artificially inflate prices.
The ERC721-C standard, created by Limit Break, solves these issues by:
- Enforcing royalties directly on-chain, regardless of the marketplace used.
- Implementing limits on how assets can be traded to prevent market manipulation, like whitelisting specific market places.
Modular Contracts
To make it easy to implement ERC721-C, Thirdweb has introduced modular contracts. These allow you to add or remove functionality to your smart contracts at any time, similar to using Lego blocks.
You start with a base contract (e.g. the standard ERC721) and can add modules on top to extend the functionality. For example:
- Add a minting module to make your NFTs mintable.
- Add a claiming module to make your NFTs claimable.
- Add a royalties module to make your NFTs enforce royalties (ERC721-C).
The amazing part is you can add or remove these modules at any time as your project evolves and needs change.
Deploying an ERC721-C Drop
Now let's walk through deploying an ERC721-C NFT drop using Thirdweb's dashboard.
- Go to the thirdweb dashboard and click "Deploy"
- Under "Modular Contracts (Beta)", select "Modular NFT Drop".
- Configure your NFT collection:
- Upload image.
- Set name, symbol, description.
- Set royalty recipient address and percentage.
- Optionally set a validator address to limit trades.
- Select your network and click "Deploy Now".
- Approve the transactions in your wallet to deploy the contract
Your ERC721-C NFT Drop is now live! In the dashboard you'll see:
- Collection details like name, supply, owners.
- Transactions and analytics.
- The Modules section showing ERC721A royalties are enabled.
Managing Modules
One of the powerful features of modular contracts is the ability to easily manage the modules (functionality) of your contract.
From the dashboard, in the Modules section, you can:
- Remove a module by clicking "Uninstall" and approving the transaction.
- Add a module by pasting the module publisher address, selecting the module, and clicking "Install".
The Rest of the Dashboard
The Thirdweb dashboard provides a full suite of tools to manage your NFT collection, including:
- Minting and burning supply.
- Viewing owners and balances.
- Airdropping NFTs.
- Setting claim phases.
- Viewing source code and contract ABI.
- And more.
Conclusion
With Thirdweb's modular contracts and dashboard, deploying an ERC721-C NFT Drop with fair royalties is easier than ever. In just a few clicks you can have a fully functioning collection live on your preferred network.
The ability to enforce royalties and prevent market manipulation is a game-changer for NFT creators. And the flexibility to add and remove contract modules as needed future-proofs your collection.
Some key takeaways:
- ERC721-C enforces royalties on-chain, regardless of marketplace used.
- ERC721-C prevents market manipulation tactics like wash trading.
- Modular contracts allow you to add/remove functionality (modules) at any time
- Thirdweb's dashboard makes deploying modular contracts simple with a user-friendly UI.
- Advanced developers can access Thirdweb's library of modular contracts on GitHub
Whether you're a no-code creator or an experienced Solidity developer, Thirdweb provides the tools to make your NFT vision a reality.
We're excited to see the innovative collections and use cases the community comes up with using ERC721-C and modular contracts. Feel free to share your projects with us!
As always, for any questions or feedback, don't hesitate to reach out to the Thirdweb team. And be sure to subscribe to our channel for more web3 development content.
Happy building!