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

The Promise

Seventy nine lines, ten of them code, and nearly every token on Ethereum claims to implement it. Read OpenZeppelin's IERC20 declaration by declaration and find out what a list of promises with nothing behind it is actually for.

14 steps~24 min3 nodes for your map
01 · Seventy nine lines, ten of them code

The shortest important text in Ethereum, and you have been reading contracts that answer to it since your very first one. OpenZeppelin's IERC20. Seventy nine lines, of which ten are code, and six of those ten are functions.

Nearly every token you will ever open claims to implement this file. It contains no behaviour at all. That is not a gap in it. That is the entire point of it, and working out why is this checkpoint.

02 · A version line with no ceiling

Two comments and a version, all familiar by now. Read line 4 again though. It sets a lowest acceptable compiler and names no highest one, where Ownable wrote a caret and stopped before the next series, and Uniswap's token pinned one exact release.

A file normally wants a ceiling because a later language could change the code underneath it. This file has almost nothing underneath it. There is no arithmetic, no storage and no body here to behave differently, so there is very little to break.

03 · The word that is not contract

Function first: a declaration that lists the functions a contract must have, while saying nothing about how any of them work. The name: an interface. Line 9 opens one, and the documentation for the entire file is the single sentence above it.

You have met `contract`, and you have met `abstract contract`, which refused to deploy on its own. This is a third thing, and how it differs from abstract is worth deciding before you read on.

You know `abstract contract` from OpenZeppelin's Ownable. What does `interface` change?
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?
interfacesdeclarationsimplementing

Three new nodes on your map

interfaces · declarations · implementing · +10 Lynx