A SIMPLE TECHNICAL
GUIDE TO
NFTS
(NFTs are not as complicated as you might think)
A BASIC NFT CONTRACT CONTAINS
A TWO COLUMN LIST*:
TOKEN ID OWNER
1 0xf0950f5a951637e0307cdcb4c672f298b8bc6f29
2 0x9fb2a47fde5bbe18ddd08d17de8bda30ab869cd2
3 0x2a044fea858d6a7ab01fb45c2d104ebae2ea0933
4 0xd053efb1703703ae5bc3dcaddd0d88ebccf6c90b
5 0x7f49f67a538b8ae4123ed2765dc8a028df0dc87e
6 0xef99cc1e4b41488c3a00017b7f45bbbabb21288d
7 0x19b4796f42c006685b69e1b59c4abd0cbd5e91c8
8 0xe8a9a74415cbae81dd9eced463a091ba1c354aec
9 0x16962d78465430915ac360761c22c088c44391e2
... ...
Each NFT in the contract has:
an ID to show which token it is,
an owner, represented by an Ethereum public address
* in Solidity, this is called a “mapping”
AN NFT IS THEREFORE
JUST A ROW IN A TWO
COLUMN SPREADSHEET
That’s basically it.
But there’s more...
THE NFT CONTRACT ALSO
CONTAINS A TRANSFER FUNCTION
A “transfer” simply edits an entry in the “owners” list
to be a new address.
It is like a computer program editing a cell in a spreadsheet.
Except the program will only perform the edit if
the request is made by the current owner.
2 0x9fb2a47fde5bbe18ddd08d17de8bda30ab869cd2
Request signed by 0x9fb2...cd2
to change address listed for token 2
to 0x2a04...933
(for some reason we call this a transfer)
2 0x2a044fea858d6a7ab01fb45c2d104ebae2ea0933
SO WHAT DO I ACTUALLY OWN
IF I BUY AN NFT?
If you buy an NFT, what you then own is:
the exclusive right to edit a row in a simple spreadsheet
implemented in a smart contract
on a blockchain,
such that the row has a new owner,
and you lose the exclusive editing right,
and the new owner gains the exclusive editing right.
NFT CONTRACTS ALSO
USUALLY CONTAIN A SECOND LIST
TOKEN ID URI
1 https://www.niftyprimes.com/metadata/1
2 https://www.niftyprimes.com/metadata/2
3 https://www.niftyprimes.com/metadata/3
4 https://www.niftyprimes.com/metadata/4
5 https://www.niftyprimes.com/metadata/5
6 https://www.niftyprimes.com/metadata/6
7 https://www.niftyprimes.com/metadata/7
8 https://www.niftyprimes.com/metadata/8
9 https://www.niftyprimes.com/metadata/9
... ...
In this case each token is also matched to a link to a file on a web server
or a decentralized file server
The file is usually a “metadata file”
WHY HAVE METADATA?
It allows us to give the NFT some meaning:
https://www.niftyprimes.com/metadata/1:
{
"description": "A picture of a cat",
"image": "https://www.niftyprimes.com/nft-images/picture-001.png",
"name": "Special Wizard Cat"
}
Although admittedly, sometimes it’s not much meaning...
BONUS: WHAT IS MINTING?
NFT contracts usually contain a “minting” function.
This allows the contract owner to add new rows to the list of tokens:
TOKEN ID OWNER
1 0xf0950f5a951637e0307cdcb4c672f298b8bc6f29
2 0x9fb2a47fde5bbe18ddd08d17de8bda30ab869cd2
3 0x2a044fea858d6a7ab01fb45c2d104ebae2ea0933
Owner says:
mint new token and give it to 0xd053e...90b
TOKEN ID OWNER
1 0xf0950f5a951637e0307cdcb4c672f298b8bc6f29
2 0x9fb2a47fde5bbe18ddd08d17de8bda30ab869cd2
3 0x2a044fea858d6a7ab01fb45c2d104ebae2ea0933
4 0xd053efb1703703ae5bc3dcaddd0d88ebccf6c90b
Some contracts only allow minting when they are created
Others allow you to mint whenever you feel like it
BUT WHAT DOES IT MEAN?
The mechanics of NFTs are ridiculously simple
But then … so are the mechanics of
vehicle registries, land registries,
patent ownership databases, copyright registries,
property titles, degree certificates, voting rights,
carbon credits, canvases with paint on them,
baseball cards, trademark lists, concert tickets
...
It’s the meaning we decide to give them that actually provides the value
ANY QUESTIONS?
Ask me on LinkedIn: https://www.linkedin.com/in/keirf/