ERC20SignatureMint
Enable signature-based minting of tokens in your smart contract by implementing ERC20SignatureMint
.
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 |
---|---|
Signature-Based Minting | Generate signatures that allow other wallets can use to mint NFTs into your collection. |
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/SignatureMintERC20.sol";
contract Contract is ERC20, SignatureMintERC20 {
constructor(
string memory _name,
string memory _symbol
)
ERC20(
_name,
_symbol
)
{}
function _canSignMintRequest(address _signer) internal view virtual override returns (bool) {
// Your custom implementation here
}
function mintWithSignature(
MintRequest calldata _req,
bytes calldata _signature
) external payable virtual override returns (address signer) {
// Your custom implementation here
}
}