An overview of the SeaDrop protocol and how it is used for NFT Primary Drops.


SeaDrop is a smart contract protocol for primary drops on EVM-compatible blockchains. The types of drops supported are public drops, Merkle Tree-based allowlists, server-signed mints, and token-gated drops. An implementing token contract should contain the methods to interface with SeaDrop through an authorized user such as an Owner or Administrator.

Our SeaDrop protocol contract provides the latest in NFT Primary Drop functionality, including:

  • Extending ERC721A to make minting multiple tokens in a single transaction gas-efficient
  • Support for a public sale and multiple pre sales using Merkle Tree -based allowlists and server-signed mints
  • All the functionality needed to integrate with OpenSea’s Drops program.

Many creators find that they require some special functionality on their smart contracts for their drops. The SeaDrop repository has an extension for an implementation of a random offset contract. If you require functionality not available in our pre-made contracts, feel free to extend ERC721SeaDrop and add additional functionality. To ensure users have a seamless experience minting your drop on OpenSea, please do not modify any minting functionality.

Notable Links

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 will allow 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.

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 Developer FAQ.