ERC-721 is the standard for non-fungible tokens on Ethereum and other EVM chains: every token has its own ID and exactly one owner. Wallets, explorers and marketplaces all rely on the same interface, which is why a contract that follows the standard precisely is immediately visible and tradable everywhere. For the bigger picture, see what is an NFT.
What the Standard Covers
- Ownership:
ownerOfandbalanceOf, the basis for every wallet and marketplace display. - Transfers:
transferFromandsafeTransferFrom. The safe variant checks that a receiving contract can handle NFTs, so tokens are not locked forever in a contract that cannot move them. - Approvals: approving one address for one token, or an operator for all tokens, which is how marketplaces can sell on your behalf.
- Metadata:
tokenURIpointing to the name, description, image and attributes, usually stored on IPFS.
Extensions We Implement
- ERC-2981 royalties: a standard way to tell marketplaces which creator fee applies.
- Batch-efficient minting: implementations in the style of ERC-721A, which make minting several NFTs in one transaction much cheaper.
- Non-transferable tokens (ERC-5192) for credentials, memberships and certificates.
- Enumeration only when it is really needed, because on-chain enumeration makes every transfer more expensive. Indexing off-chain is usually better.
Pitfalls
The safe-transfer callback hands control to the receiving contract, so state must be updated before that call to prevent reentrancy. Metadata on a regular web server can disappear or be changed; pinning on IPFS or fully on-chain metadata avoids that. And a mint function without proper limits and access control is an open invitation to bots.
Frequently Asked Questions about ERC-721
ERC-721 or ERC-1155?
ERC-721 when every item is unique and you want maximum compatibility. ERC-1155 when you have many copies of the same item or many item types in one contract.
Can metadata be changed after minting?
Only if the contract allows it, for example for a reveal or for evolving game items. Many collections freeze metadata after reveal so buyers know it will not change.
Do you also build the marketplace?
Yes, see NFT marketplace development.
Who owns the code?
Ownership of the source code is set out in the contract, and the code can be fully yours, including documentation and tests.
Part of our work on Ethereum standards (EIPs and ERCs) and smart contract development.
Build Your NFT Contract
Tell us about your collection and how it will be minted. We will build an ERC-721 contract that works everywhere from day one.