Docs

ERC721Claimable

import "@thirdweb-dev/contracts/extension/interface/IClaimableERC721.sol";

Allow other wallets to claim NFTs that you have lazy-minted.

This is not an extension which is detectable on the dashboard without also inheriting from other extensions.

It is recommended to use this extension alongside the LazyMint extension.


View on GitHub

Usage

This is an example smart contract demonstrating how to inherit from this extension and override the functions to add (optional) custom functionality.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/eip/ERC721A.sol";
import "@thirdweb-dev/contracts/extension/interface/IClaimableERC721.sol";

contract Contract is ERC721A, IClaimableERC721 {
    constructor(
        string memory _name,
        string memory _symbol
    )
        ERC721A(
            _name,
            _symbol
        )
    {}

    function _canLazyMint() internal view override returns (bool) {
        // Your custom implementation here
    }

    function verifyClaim(address _claimer, uint256 _quantity) public view virtual {
        // Your custom implementation here
    }

    function claim(address _receiver, uint256 _quantity) public payable virtual {
        // Your custom implementation here
    }
}

Base Contracts Implementing This Extension

This extension is used as part of the ERC721ClaimCustom extension. The base contracts which have ERC721ClaimCustom detected on them will also implement ERC721Claimable.