If you want to use your own custom token contract logic while maintaining compatibility with SeaDrop, you should inherit from ERC721SeaDrop.
SeaDrop tokens are built on top of ERC721A to enable efficient minting of multiple quantities. They also include specialized tracking metadata, such as the number of tokens minted by a specific address, which SeaDrop uses to enforce wallet limits.
Important Compatibility Requirement:
To ensure your contract remains secure and compatible with the SeaDrop protocol, do not override or modify any SeaDrop-specific functions, specifically getMintStats().
// Example pattern for custom SeaDrop tokens
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@seadrop/erc721-seadrop/ERC721SeaDrop.sol";
contract MyCustomSeaDropToken is ERC721SeaDrop {
// Implement your custom logic here
// DO NOT override getMintStats()
}