Optional: Manually deploying a SeaDrop-compatible contract

Custom functionality for your smart contract

Our ERC721SeaDrop contract is a standard NFT smart contract implementation that includes:

  • Extending ERC721A to make minting multiple tokens in a single transaction gas-efficient
  • Support for a public sale and pre-sales using Merkle Tree or server-signed allowlists
  • The functionality needed to integrate with OpenSea's Drops program using SeaDrop

Many creators require some special functionality on their smart contracts for their drops. Our SeaDrop repository has extensions for implementations of a soulbound contract and a random offset contract. If you require functionality that is not available in our pre-made contracts, you can extend the ERC721SeaDrop contract and add your own. So that users can mint your drop on OpenSea, please don't modify any of the minting functionality.

Deploying a SeaDrop-compatible contract

To deploy a SeaDrop-compatible custom contract, start with ERC721SeaDrop. Clone the repository and install Foundry with the instructions in the ReadMe. To deploy the contract, run

forge create --rpc-url $RPC_URL --private-key $PRIV_KEY --constructor-args "ExampleToken" "ExTkn" \\[0x00005EA00Ac477B1030CE78506496e8C2dE24bf5]

If you don't need to make any customizations, deploy ERC721SeaDrop as-is with the constructor argument of allowedSeaDrop of 0x00005EA00Ac477B1030CE78506496e8C2dE24bf5. This gives the SeaDrop contract permission to mint on your token contract. If you've already deployed your contract without setting the allowedSeaDrop in the constructor, you can call updateAllowedSeaDrop, available on the token contract interface.

You can customize ERC721SeaDrop by inheriting it and extending it with your own contract functionality. So that users can mint your drop on OpenSea, don't modify any of the minting functionality.

If you have or would like to deploy an upgradeable contract, see the readme in src-upgradeable for more details. For technical questions related to the SeaDrop minting experience and capabilities, you can reference our SeaDrop Developer FAQ.