Your First 90 DaysAcademy
The Vocabulary · Every Word, Inside Real Code · Week 4 · Checkpoint 9

The Other Standard

An NFT is the same machinery with one field changed. Read Solmate's ERC721 beside the ERC20 you already know and the whole of non-fungibility turns out to be one mapping pointing the other way.

14 steps~27 min3 nodes for your map
01 · The other standard

You have read three fungible tokens now, and all three kept the same shape: an address, and how much of something it holds. This file is the other standard. Same author as the last one, same house style, same banner comments, and two hundred and thirty one lines.

The whole difference is visible in the state block. Not in the function bodies, not in the second contract waiting at the bottom. One mapping points the other way, and everything else in the file follows from that single flip.

02 · One mapping, turned around

Here is the sentence this whole lesson rests on. The last file wrote `mapping(address => uint256) public balanceOf`: hand it an address, get back an amount. Line 31 writes `mapping(uint256 => address) internal _ownerOf`: hand it a token id, get back an address.

Read left to right and the key type changed from an address to a number, and the value type changed from a number to an address. That is non-fungibility, in one line. A thing with an identity of its own, and exactly one holder for it.

Reading only line 31, what question can this contract answer that a fungible token cannot?
your balance2,400
BANK_DBowner: the bank
you2,400
what the app is actually showing you
BANK_DBowner: the bank
you2,400their pen
you hold a claim. they hold the pen.
your digital life
BANK · you2,400the bank ✍
INSTAGRAM · you2.1M followersMeta ✍
STEAM · you134 gamesValve ✍
AIRLINE · you58,200 milesthe airline ✍
four tables. zero pens that are yours.
BANK_DBowner: the bank
you2,400
DENIED
try both pens
PLATFORM_DBowner: the platform
her · 8 years2,000,000 followers
one automated decision away
BANK_DB · you · 2,400intentcompetencecontinuity
your row stands on all three
FTX_DBowner: FTX
you5 BTC
the backing vault●●●●●
the row stayed. the backing did not.
CARD_DBowner: your bank ✍
TV you never bought−1,100
fraud reversal+1,100
someone holds the pen, so someone can fix it
?_DBowner: nobody
youstill yours?
?
can a table exist that nobody owns?
?
?_DBowner: ̶n̶o̶b̶o̶d̶y̶
you100
no owner, no pen, no trust?
keeper 1
you100
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
no THE copy, only copies.
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
your copy
you100
five copies. one of them is yours.
one attacker
one attacker, ten thousand faces.
real machinesburned wattsnext page, sealed
writing costs watts. faking voters buys nothing.
cost paid OUTSIDE: hardware and power
proof of work, burn energy to vote.
page 1you · 100page 2you · 100page 3you · 100page 4you · 100
rewrite one line, break every lock after it.
office lunchtrusted keeperconsensusfive keepers, real cost
the price buys trustlessness. the office already has trust.
?
ownerless ledger
you?
a key, not a login?
nobody owns the table. so who owns your row?
non-fungibilityapprovalscallbacks

Three new nodes on your map

non-fungibility · approvals · callbacks · +10 Lynx