Your First 90 DaysAcademy
The Vocabulary · Every Word, Inside Real Code · Week 3 · Checkpoint 6

Lists and Records

A struct is a compound noun and an array is many of one thing. Read Multicall3, the batching contract that sits at one address on over a hundred chains, and watch a file with no memory at all carry a thousand calls at once.

14 steps~27 min3 nodes for your map
01 · One address, a hundred chains

Act two opens on a contract that exists to do one thing: take a pile of separate calls and run them inside a single transaction. It is called Multicall3, it is two hundred and sixteen lines long, and it sits at the same address on more than a hundred chains.

It holds nothing. No balances, no owner, no totals, no tally of anything. Scroll it end to end and there is no state block to find. What it has instead is the subject of this lesson: a way to carry many things at once.

02 · Where the state block should be

You have opened five contracts now, and every time you read the state block first. Try it here and there is nothing to read. Between line 13, where the contract opens, and line 41, where the first function begins, not one value is stored.

Four declarations sit in that gap instead, on lines 14, 19, 25 and 32. None of them is a value. They are shapes, written down once so that the sixteen functions below can all speak about the same thing without repeating themselves.

03 · A named record

Function first: a named record holding several values at once, so they travel together as a single thing. The name: a struct. Lines 14 to 17 declare one and call it `Call`, and the declaration is only four lines long.

Inside are two fields, each written as a type and then a label, exactly the way you read parameters in a signature. An address to call, and a `bytes` payload to send it. From line 17 onward `Call` is a type in this file, as usable as `uint256`.

04 · Three shapes of the same idea

Three of the four describe a call somebody wants made. `Call` on line 14 carries a target and a payload. `Call3` on line 19 carries those two plus one more field. `Call3Value` on line 25 carries one more again, and that one is a number.

The fourth, `Result` on line 32, faces the other way: it is what comes back from a single call. A struct is how a file writes down a compound noun once, so that nothing below has to spell out the pieces every time it mentions one.

Read lines 19 to 23. Call3 carries one field that Call does not. What does that extra field let a caller say?
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?
structarrayscalldata

Three new nodes on your map

struct · arrays · calldata · +10 Lynx