import "@thirdweb-dev/eip/interface/IERC20.sol"
import "@thirdweb-dev/contracts/extension/multicall.sol";
import "@thirdweb-dev/contracts/extension/interface/IMintableERC20.sol";

Enable minting multiple NFTs at once in a single transaction by Implementing ERC20, IMintableERC20, and Multicall extensions.

This is an extension which is detectable in the dashboard if the smart contract implements the ERC20, Multicall and ERC20Mintable extensions.


This is an example smart contract that will have ERC20BatchMintable detected on it in the dashboard. It also shows the function that is overridable to add custom logic.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/openzeppelin-presets/token/ERC20/ERC20.sol";
import "@thirdweb-dev/contracts/extension/interface/IMintableERC20.sol";
import "@thirdweb-dev/contracts/extension/Multicall.sol";
contract Contract is ERC20, IMintableERC20, Multicall {
string memory _name,
string memory _symbol
function mintTo(address to, uint256 amount) external override returns (uint256) {
// Your custom implementation here

Base Contracts Implementing This Extension