ERC721 Base Contract
The ERC721Base
smart contract implements the ERC721 NFT standard, along with the ERC721A optimization to the standard.
The ERC721Base
smart contract is usable as it is. It is sufficient for the use case of minting NFTs for yourself (or to someone else) and selling those NFTs on a marketplace.
Import
import "@thirdweb-dev/contracts/base/ERC721Base.sol";
Available Functionality
Functionality | Description |
---|---|
ERC721A | Gas-optimized NFT Collection Base Contract. |
Mintable | Mint functionality (only callable by the owner, by default) with gas-optimized batch minting enabled by ERC721A functionality. |
Multicall | Capability for better developer experience for your contract; the ability to batch together multiple contract calls in a single call. |
Ownable | Ownership of the contract for the contract deployer, and (1) the ability to transfer this ownership, and (2) restrict functions to be callable only by the owner of the contract. |
Burnable | Ability for the owner of a token to transfer their NFT to a null address (cannot be recovered). |
Royalty | Full royalty support on marketplaces like OpenSea, and EIP 2981 NFT Royalty Standard compliance. |
ContractMetadata | Set a metadata URI on the contract, to give your collection a name, image, description and symbol. |
Implementing the Contract Extension
Import the contract extension and make your contract inherit it.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@thirdweb-dev/contracts/base/ERC721Base.sol";
contract MyNFT is ERC721Base {
constructor(
string memory _name,
string memory _symbol,
address _royaltyRecipient,
uint128 _royaltyBps
)
ERC721Base(
_name,
_symbol,
_royaltyRecipient,
_royaltyBps
)
{}
}
Unlocked Features
Once deployed, you'll be able to access the following contract extensions' features on the SDK and dashboard: