ERC20ClaimableWithConditions
Allow other wallets to claim/mint tokens from the contract under the criteria of claim conditions by
implementing ERC20 and DropSinglePhase.
Base Contracts Implementing This Feature
Unlocked Features
By implementing the ERC20 standard, you unlock the following features in the SDK and dashboard:
| SDK Feature | Description |
|---|---|
| Claim Tokens | Claim (mint) a lazy-minted NFT to a wallet address. |
| Claim Conditions | Mints a quantity of lazy-minted NFTs from the drop to a specified wallet address. |
Implementing It Yourself
This section is meant for advanced users who want to write the functionality from scratch.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/openzeppelin-presets/token/ERC20/ERC20.sol";
import "@thirdweb-dev/contracts/extension/DropSinglePhase.sol";
contract Contract is ERC20, DropSinglePhase {
constructor(
string memory _name,
string memory _symbol
)
ERC20(
_name,
_symbol
)
{}
function _canSetClaimConditions() internal view override returns (bool) {
// Your custom implementation here
}
function _collectPriceOnClaim(
address _primarySaleRecipient,
uint256 _quantityToClaim,
address _currency,
uint256 _pricePerToken
) internal virtual override {
// Your custom implementation here
}
function _transferTokensOnClaim(address _to, uint256 _quantityBeingClaimed)
internal
virtual
override
returns (uint256 startTokenId)
{
// Your custom implementation here
}
}