0
0
Blockchain / Solidityprogramming~10 mins

ERC-721 implementation in Blockchain / Solidity - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - ERC-721 implementation
Contract Start
Define ERC-721 Interface
Implement Metadata Functions
Manage Token Ownership Mapping
Implement Transfer Functions
Mint New Tokens
Burn Tokens
Contract End
This flow shows the main steps in creating an ERC-721 contract: starting the contract, defining interfaces, managing ownership, enabling transfers, minting, and burning tokens.
Execution Sample
Blockchain / Solidity
pragma solidity ^0.8.0;

contract SimpleERC721 {
    mapping(uint256 => address) private _owners;
    function ownerOf(uint256 tokenId) public view returns (address) {
        return _owners[tokenId];
    }
}
This code defines a simple ERC-721 contract with a mapping to track token owners and a function to get the owner of a token.
Execution Table
StepActionVariable/FunctionInputState ChangeOutput
1Contract deployed_ownersemptymapping initialized emptynone
2Mint tokenminttokenId=1, to=0xABC_owners[1] = 0xABCnone
3Call ownerOfownerOftokenId=1no change0xABC
4Mint tokenminttokenId=2, to=0xDEF_owners[2] = 0xDEFnone
5Call ownerOfownerOftokenId=2no change0xDEF
6Transfer tokentransferFromfrom=0xABC, to=0x123, tokenId=1_owners[1] = 0x123none
7Call ownerOfownerOftokenId=1no change0x123
8Burn tokenburntokenId=2delete _owners[2]none
9Call ownerOfownerOftokenId=2no changeaddress(0) (no owner)
10EndN/AN/AN/AExecution complete
💡 Execution stops after all steps complete; tokens minted, transferred, and burned as shown.
Variable Tracker
VariableStartAfter Step 2After Step 4After Step 6After Step 8Final
_owners[1]empty0xABC0xABC0x1230x1230x123
_owners[2]emptyempty0xDEF0xDEFemptyempty
Key Moments - 3 Insights
Why does ownerOf return address(0) after burning a token?
Because burning deletes the token's owner from the _owners mapping, so ownerOf returns the default zero address as shown in step 9.
How does transferFrom update ownership?
In step 6, transferFrom changes _owners[tokenId] from the old owner to the new owner, updating the mapping accordingly.
What happens if you call ownerOf for a token that was never minted?
It returns address(0) because the token ID is not in the _owners mapping, similar to a burned token as shown in step 9.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the owner of tokenId 1 after step 6?
A0x123
B0xABC
C0xDEF
Daddress(0)
💡 Hint
Check the 'State Change' column at step 6 where _owners[1] is updated to 0x123.
At which step does the owner of tokenId 2 become address(0)?
AStep 4
BStep 8
CStep 9
DStep 6
💡 Hint
Look at step 9 where ownerOf returns address(0) after the burn in step 8.
If we mint tokenId 3 to 0x999 at step 11, what will _owners[3] be after that?
Aempty
Baddress(0)
C0x999
D0x123
💡 Hint
Minting sets _owners[tokenId] to the new owner address, as shown in steps 2 and 4.
Concept Snapshot
ERC-721 is a standard for unique tokens.
Key parts: owner mapping, transfer functions, mint and burn.
ownerOf(tokenId) returns owner address or zero if none.
transferFrom changes ownership.
mint assigns new tokens.
burn deletes tokens.
Full Transcript
This visual execution traces a simple ERC-721 contract in Solidity. It starts with an empty ownership mapping. Minting tokens assigns owners to token IDs. ownerOf returns the current owner or zero address if none. Transferring tokens updates the owner mapping. Burning tokens removes ownership, making ownerOf return zero address. The execution table shows each step's action and state changes. Variable tracking highlights how ownership changes over time. Key moments clarify common confusions about ownership after burning and transfers. The quiz tests understanding of ownership at different steps. This helps beginners see how ERC-721 token ownership is managed step-by-step.