►
From YouTube: Devcon VI Bogotá | Workshop 3 - Day 4
Description
Official livestream from Devcon VI Bogotá.
For a decentralized version of the steam, visit: https://live.devcon.org
Devcon is an intensive introduction for new Ethereum explorers, a global family reunion for those already a part of our ecosystem, and a source of energy and creativity for all.
Agenda 👉 https://devcon.org/
Follow us on Twitter 👉 https://twitter.com/EFDevcon
A
A
A
A
A
A
A
A
B
C
Yeah
welcome
to
this
ethereum
JS
Workshop
I'm
Gabriel
from
the
ethereum
Justin.
C
C
So
yeah
what
we
do
with
ethereum.js
is
we
basically
build
a
set
of
tools
that
people
can
build
upon.
So
we're
used
by
lots
of
you
know:
JavaScript
tooling,
that's
you
know,
I'm
sure,
you're
familiar
with
and
yeah,
and
it's
really
a
great
set
of
tools
for
people
to
learn
about
blockchain
in
general,
because
JavaScript
is
a.
You
know
really
easy
to
use
language
that
a
lot
of
people
a
lot
of
web
developers
are
familiar
with
and
yeah
we're
focused
on.
C
Repo.
Are
you
know
a
stateless,
vertical
State
manager
to
help
out
with
vertical
trees
that
yam
and
a
bunch
of
other
people
are
working
with
erp4844,
which
I'm
sure
you've
heard
about
like
Proto,
then
charting
EIP
and
yeah
Beacon
chain
withdrawals
which
are
going
to
be
part
of
the
Shanghai
hard
folk,
hard,
Fork,
hopefully,
I
think
Community
would
be
pretty
mad
if
that
doesn't
get
in
so.
D
D
Sure
I'd
also
like
to
just
say
hello,
and
if
you
get
a
sense
of
who's
with
us
today,
people
used
are
mono
repo
yet
or
you
adapt
developers.
It's
got
like
a
sample
from
the
crowd
of
like
who.
What
what
brings
you
guys
to
this
Workshop
raise.
B
E
D
D
C
So
we
so
I'm
going
to
go
through
that
slide
quickly.
Just
to
give
you
a
sense
of
the
kinds
of
like
packages
that
we
have.
So
we
have
an
implementation
in
Vibe
strip.
I
mean
we're
College
from
JavaScript,
but
technically
right
at
the
moment,
everything
is
typescript.
We've
migrated
to
typescript
about
two
years
ago,
so
we
have
a
typescript
implementation
of
the
ethereum
virtual
machine.
We
also
provide
you
know:
building
blocks
like
transaction
block
blockchain.
C
We
also
had
to
have
a
bunch
of
like
smaller
scope-like
utils
like,
for
example,
if
you
wanna
rlp,
like
recursive
and
prefixing,
like
encode
things,
decode
things,
we
have
a
typescript
implementation
of
Merkel
pituitary
as
well,
which
is
you
know,
the
data
structure
that
ethereum
uses.
We
have
a
Dev
p2b
package
and
an
experimental
client.
It
has
sync
magnet,
there's
been
a
guy
who
is
was
able
to
sync
magnet
up
to
the
tip
of
the
chain.
C
It's
not
really
a
performant,
so
I
mean
you
wouldn't
want
to
use
it
in
production,
and
we
don't
have
like
the
mitigation
that
are
in
place
for
more
like
production-ready
clients,
but
it
is
able
to
run
all
all
blocks
from
mainnet,
so
yeah
I
was
just
mentioning
it's
used
by
a
bunch
of
tooling.
So
all
these
are
some
of
the
you
know,
packages
that
I'm
sure
you're
familiar
with
like
hard
hat
truffle,
metamask,
remix,
web3.js
and
a
bunch
of
other.
You
know
projects
use
us
as
a
dependency
for
to
to.
E
C
C
So
yeah,
let
us
give
you
an
overview
of
how
the
the
ethereum
JS
packages
kind
of
work
together
right.
So
at
the
very
bottom
we
have
the
client.
Now
the
arrows
pointing
to
the
client
mean
that
the
client
is
importing.
You
know
the
packages,
all
these
other.
C
You
know
packages
so
at
the
very
bottom
we
have
client
which
Imports,
basically,
everything
that
we've
built
in
the
model,
repo
or
as
common,
is
just
going
to
be
more
like
General
things
that
you
probably
wouldn't
use
by
themselves,
but
are
going
to
be
helpful
for,
like,
for
example,
in
common,
you
will
have
like
specifications
for
hard,
forks
and
stuff
like
that,
which,
if
you
wanna,
you
know,
build
a
block.
You
know
you
need
to
know
like
which
hard
Fork,
You're
Building.
You
know
a
block
for
same
thing
with
the
transaction
same
thing.
C
C
So
yeah,
you
might
have
heard
like
term
VM,
evm
eei.
We
also
have
you
know
a
state
manager.
So
basically,
VM
is
like
a
higher
level,
like
virtual
machines,
virtual
machine
which
sends
you
would
provide
that.
Like
a
block,
you
would
tell
the
VM
hey
I,
want
you
to
run
the
block
or
I
want
you
to
run
a
transaction
that
it
would
forward
an
individual
like
message
calls
to
the
evm,
which
would
deal
with
like
the
op
codes
and
all
that
sort
of
stuff.
C
Then
the
evm
would
report
back
and
communicate
with
a
state
manager.
That's
going
to
update,
like
whatever
state
you
have
in
your
remote,
so
it's
much
easier
to
interact
with
the
state
manager,
because
then
you
can
just,
for
example,
update
an
account
balance
rather
than
like
finding
the
proper
key
in
the
Merkel
particular
tree.
Updating
that
and
recomputing
the
route
which
would
be
you
know,
super
tedious.
Obviously
so,
we've
abstracted
most
of
that
away
with
the
state
manager.
D
Right
portal:
Network:
it's
actually
a
series
of
of
networks
that
are
peer-to-peer
networks,
special
storage
networks-
and
this
is
all
in
under
construction
and
under
design
at
the
moment.
But
we
are
implementing
portal
Network
clients
in
typescript
using
ethereum,
JS
libraries.
D
So,
essentially,
if
you,
if
you
want
to
interact
with
the
blockchain
right
now,
you
either
need
to
run
your
own
full
node,
which
is
a
very
heavy
process
requiring
a
lot
of
your
resources,
and
most
most
people
aren't
going
to
do
that,
and
most
devices
aren't
going
to
want
to
do
that.
I
have
some
most
reach
out
to
inferior,
which
is
a
centralized
access
to
the
blockchain
which
works
fine,
but
it
is
a
centralized
access
to
blockchain,
which
is
kind
of
the
thing
we're
trying
to
avoid.
D
So
it
people
have
been
working
for
many
years,
trying
to
figure
out
what
goes
up
in
that
top
left
box,
where
we
can
have
something
lightweight
accessible
but
also
decentralized,
and
the
work
on
Les
lay
clients
has
essentially
led
us
to
this
concept.
Called
the
portal
portal
Network
portal
network
is
it's
an
in
it's
an
independent
peer-to-peer
Network.
It's
almost
like
a
bittorrents.
It's
working
on
that
principle
where,
if
you
need
access
to.
D
Some
amount
of
information
from
the
blockchain
you
don't
need
to
actually
sync
to
the
entire
blockchain
to
retrieve
your.
You
know
your
block
history
or
your
account
history
or
many
of
the
things
that
human
driven
wallet
interactions
need.
So
that's
the
idea
we
we're
building
networks
to
support
the
users
of
this
protocol,
not
necessarily
building
up
the
protocol
itself.
The
way
a
real
full
node
does,
and
therefore
this
can
exist
on
very
light
resource
constrained
devices.
D
Essentially,
the
more
more
devices
hooked
into
these
networks,
the
better
they
will
work
and
part
of
that-
is
that
you
don't
have
to
sync
to
the
entire
blockchain,
because
that
takes
a
long
time
and
doesn't
really
make
sense
for
a
small,
app
or
a
small
device
to
want
to
do
that
takes
a
long
time.
It's
very
heavy.
D
D
Every
everybody's
got
a
piece,
a
little
piece
of
responsibility
of
the
network
and
they
hold
as
much
data
as
they're
willing
to
and
they
serve
much
as
they
can
or
want
to
so
for
a
practical
example
in
a
you
know,
just
a
Json
RPC
call
for
each
get
balance
right
now,
if
you're
running
a
node,
you
have
to
maintain
all
of
these
databases
where
you
can
look
up
the
the
canal
index.
You
can
look
up
storage,
you
can
look
up
State
and
return.
These
things
calculate
them
and
then
return.
D
The
balance
portal
network
is
going
to
work
exactly
the
same,
but
instead
of
looking
into
your
own
databases,
your
own
huge
piles
of
state
and
history,
you
can
reach
out
to
these
light
networks.
You
can
receive
your
balance,
receive
history,
receive
state
and
send
it
and
return
it
in
the
exact
same
way.
So
for
for
the
user
using
a
Json
RPC
call,
it
feels
exactly
the
same,
but
it
is
possible
with
very
very
limited
resources
and
ours
is
called
ultralight.
D
D
You
know
we
built
like
a
stupid
small
block
Explorer,
but
you
open
up
your
browser
page
to
this
thing
and
the
browser
itself
becomes
a
portal
client
using
the
same
kind
of
same
kind
of
memory
and
and
storage
as
anything
else,
and
you
know,
can
both
can
both
look
up,
look
up
and
serve
yeah.
What
else
am
I
saying
yeah?
Essentially
your
your
app
can
be
a
portal
client.
If
you,
if
you
were
to
bake
this
into
they,
get
into
your
app
that
can
basically
just
be
running
in
the
backgrounds.
D
You
don't
even
really
have
to
think
about
it,
but
it's
Distributing
the
data
among
a
large
large
network
of
pockets
and
phones
and
laptops,
essentially
taking
a
lot
of
the
load
off
of
Full
clients
and
and
making
a
lot
of
this
data
available
in
a
much
more
lightweight
way.
D
D
You
can
be
there
as
a
freeloader
and
not
contribute
anything,
and
it
really
doesn't
take
much
away
from
it.
If
you
think
about
you
know,
BitTorrent
most
people
are
most
people,
don't
really
go
into
their
torrent,
apps
and
change
a
lot
of
configurations
to
be
selfish
about
it.
Most
people
just
download
the
thing
and
use
it
as
it
comes.
D
D
I,
don't
know
the
for
it
just
kind
of
means
that
we've
built
something
worth
attacking
first
of
all
and
that
there
are
solutions
to
those
problems
that
can
be
worked
out
and
just
I
think
we're
counting
on
the
General
laziness
of
users
that
are
going
to
download
a
wallet
app
that
somebody
made
and
not
necessarily
configure
it
to
be,
like
weirdly,
malicious,
there's,
no
incentives
here,
it's
all
just
it's
all
just
there,
because
it
benefits
users
and
by
benefiting
one
user,
you
benefit
all
users.
So,
yes,
there
are
ways
to
attack
it.
D
D
So
we
can
build
this
thing,
that's
lightweight,
and
hopefully
just
working
on
just
working
on
like
natural
natural
law.
Essentially,
nobody
really
has
anything
to
gain
by
trying
to
set
it
down
and
it
doesn't
really
affect
anything
yeah.
You
know
problems
that
we're
working
out
or
we're
trying
to
steam
ahead
with
like
building
the
thing
and
then
like
solve
all
of
these
problems
along
the
way.
D
But
yeah,
please,
are
it's
Ultra
late
team
is
just
two
people,
it's
me
and
me
and
Andrew
from
our
team.
So
we're
always
looking
for
help
or
for
whatever
kind
of
contributions
are
out
there.
D
So
we
we
have
a
concept
of
a
bridge
node,
which
is
something
that
is,
is
synced
to
the
net
and
is
or
synced
to
the
chain,
and
it's
just
feeding
feeding
into
the
portal
Network.
D
If
we
have
enough
of
those
it
just
kind
of
saturates
over
time,
we
also
have
kind
of
ideas
of
how
to
I
don't
know,
maybe
like
a
babysitter
node,
that
kind
of
like
circles
the
network
and
looks
for
gaps
and
and
kind
of
helps,
helps
fill
in
the
gaps
but
yeah.
It's
these
kind
of
bridge
nodes
that
originally
saturate
the
network
and
maybe
maintain
that.
D
The
boot
nodes
are,
we
have
devops,
just
put
up
a
bunch
of
nodes
for
us
that
that
are
acting
like
boot
nodes,
there's,
no
real
difference
between
a
bridge,
client
and
a
just
regular
client.
It's
more
are
you?
C
Yeah,
all
right
so
we'll
we'll
move
ahead
with
a
demo,
video
MJS.
So,
as
you
know,
the
next
hard
for
hard
Fork
is
going
to
be
named
Shanghai
and
there's
a
test
net
running
at
the
moment.
It
was
down
for
a
couple
days,
but
it
got
back
up
I
think
this
morning
or
last
night.
It's
it's
a
test
step
that
basically
implements
a
subset
of
the
of
the
eips
that
are
going
to
be
part
of
Shanghai,
so
there
might
be
additional
ones.
C
The
one
on
this
list
at
the
moment,
but
the
like
tentative,
like
list
of
VIPs
that
are
going
to
be
included
at
the
moment
is,
is
the
one
you
see
on
the
screen,
so
the
beacon
chain
withdrawals
and
the
deactivates
self-destruct
our
implemented.
Yet
in
our
in
our
client
but
yeah,
the
schenden
testnet
is
up
and
running.
We
have
it
running
with
lodestar
as
a
consensus
client,
which
is
like
the
typescript.
You
know
consensus,
client,
and
then
we
have
it
there
with
ethereum
js's.
The
execution
client.
E
C
That
testnet
is
so
it's
live.
You
can
look
it
up.
There's
a
block
explorer
that
I
think
we
just
put
up
this
morning
and
as
far
as
I
know,
like
the
only
execution
client,
that's
actually
running
that
at
the
moment
is
ethereum
JS
with
the
JavaScript
client.
C
So
what
I'll
do
is
just
I
will
not
like
run
I
will
not
access,
like
the
actual.
You
know,
Live
Test
net,
but
I'll
run
like
the
test
net
locally.
To
give
you
a
sense
of
how
you
would
go
about
doing
that,
and
you
might
be
interested
in
running
that
yourself
when
we
go
into
the
more
like
interactive
part
of
the
workshop,
so
I
just
need
to
check
out
the
proper
pull
request
from
our
model
repo.
C
So
it's
just
that
here
so
yeah.
As
we
said,
our
mono
repo
is
broken
into
you
know
packages.
Can
you
see
the
vs
code,
yeah
cool
awesome,
so
we'll
just
go
to
the
package.
Client
and
I.
Have
you
know
a
couple
of
instructions?
I've
I've
done
here.
So
basically,
what
we
first
want
to
do
is
we
want
to
create?
You
know
data
folders
for
about
you,
know
the
execution
layer,
data
and
that
consists,
data
yeah.
C
E
C
Oh
yeah
yeah
they're
actually
available
on
that
pull
request
and
in
a
couple
slides,
there's
a
link
tree
with
all
of
these
alpines.
So
you
definitely
can
access
all
of
these
nodes
and
yeah.
It's
it's.
A
good
exercise
as
well
to
you
know,
run
that
yourself.
You
will
have
time
for
that
and
we'll
be
happy
to
help
everyone
get
that
running
so
yeah.
C
C
Yeah
Shandong,
so
we're
going
to
create
an
ethereum
folder
and
we're
going
to
create
the
load
star
folder
as
well.
So
now
we're
good
to
go
for
that
part.
So
the
next
step
is
we're
already
going
to
start
our
execution
like
side
and
it's
going
to
use
a
Genesis.
That's
been
done
by
one
of
the
guys
on
our
on
our
team,
usually
like
Shandong
at
genesis.json.
You'll
see
that
more
clearly.
C
Yeah
and
there
we
go
hopefully
that
works
live
coding
is
always
a
bit
sketchy.
The
the
Wi-Fi
is
pretty
good.
Actually,
if
you
haven't
noticed,
there's
a
workshop
specific
Wi-Fi
network
that
you
can
access,
because
they're
the
global
Wi-Fi
isn't
working
that
well
so
yeah.
We
see
that
we
have
a
Json
RPC
server
started
because
we
started.
You
know
our
client
with
the
RPC,
RPC
and
giant
flag.
We
have
a
Genesis
that
we've
specified
and
the
data
directory
is
ethereum
JS,
which
we've
just
created.
So
that's
pretty
fairly
simple.
C
So
by
default,
when
you
run
the
ethereum
JS
client,
it's
gonna
consider
that
the
merge,
hard
Fork
has
been
activated
because
we've
specified
you
know
a
Genesis
after
that.
So
at
the
moment
it's
just
waiting
for
a
consensus.
Flyer,
client
connection,
without
that,
it's
going
to
be
not
going
to
be
able
to
you
know,
obviously
execute
blocks
because
it's
not
getting
getting
any.
So
this
is
exactly
what
we're
gonna
do
we're
gonna
start
the
lodestar
consensus
client.
C
So
the
the
first
thing
we
need
to
do
is
we're
going
to
need
to
specify
the
Genesis
hash
to
the
to
the
consensus
layer
client.
So
to
that
to
do
that,
I'm
actually
going
to
bring
up.
You
know
inferior
and
we're
just
going
to
query
the
hash
of
the
I'm
not
going
to
bring
up
info
actually
I'm
just
going
to
query
the
local
RPC
that
we
we've
seen
specified
here.
You
see
somewhere
up
here,
start
Json,
RPC
server,
localhost
8545,
so
I'm
just
going
to
do.
C
You
know,
requests
a
bit
better.
So,
let's
see,
if
I
can
recall
how
to
do
that
by
heart,
we'll
see
so
we're
just
going
to
send
a
standard
like
Json
RPC
request
to
get
the
data
of
the
you
know
the
very
first
block
in
that
you
know.
Exec
exit
execution,
client
state,
so
method,
then,
is
going
to
be.
What
is
it
it's?
It
get
locked.
A
C
Number,
if
you
see
me,
make
a
typo
be
sure
to
point
it
out
so
that
we
don't
break
our
execution
live
client
by
sending
in
like
bad
stuff
and
so
we're
just
gonna
specify
you
know
the
very
first
block
we
could
specify
earliest
as
well.
This
second
option
is
just
if
we
want
the
transactions,
we'll
we'll
say
yes,
but
it
doesn't
really
matter
all
that
much
then
we
need
to
specify
an
ID
I.
Think
we'll
just
go
with
one.
C
Can
you
see
properly
yeah
cool
big
enough?
So,
let's
see
if
that
works,
cool
yeah.
So
we've
got.
You
know
the
first
Genesis
block
we
should
expect
like
the
parent
hash
is
going
to
be
zero.
This
is
post,
merge,
sort
of
mixed
hash
is
zero.
It's
it's
unused
and
denounces
one
two,
three,
four,
not
sure
what
that
is,
but
that
is
probably
like
a
default
value
or
something
so
we're
just
gonna.
C
Take
the
hash
and
yeah
we're
just
gonna
copy
and
paste
that
so
then,
the
only
other
thing
that
we
need
is.
We
need
to
specify
like
an
initial
like
timestamp,
so
I'm
just
gonna
quickly,.
C
E
E
C
Start
the
consensus
client
here-
and
this
is
a
fairly
you
know-
long
command.
It's
running
with
Docker
like
I've
already
installed.
Little
Star
in
my
machine
I
didn't
want
to
do
that.
You
know.
E
C
B
C
So,
let's
see
if
this
works,
so
we
should
eventually
start
you
know
producing
blocks.
So
we
see
publish
block
that
looks
pretty
good
and
then,
if
we
go
back
to
the
execution
layer
client
it
should
have
picked
up
on.
You
know
the
consensus
client
starting
to
run
producing
blocks,
sending
them
back
to
it.
C
So,
let's
see,
if
we
yeah
it's
assembling
blocks,
build
block
looks
perfect,
so
we
we
are
seeing
that
we
have
a
local
running
with
a
bunch
of
newer
eips.
C
Now
one
thing
we
can
do,
we
have
a
test,
Suite
I,
think
for
like
it's
spec,
so
we
have
a
bunch
of
tests
here
that
we
can
run
to
see
if
the
you
know,
eips
have
been
properly
implemented,
so
I
won't
go
through.
All
of
them
feel
free
to
go
through
them
yourself.
So
EIP
like
3670,
is
like
the
EOS
code
execution,
the
code
validation.
So
if
you
try
to
publish
like
a
contract
code
that
doesn't
conform
to
the
eof
standard,
it
will
get.
You
know
rejected.
C
We
have
a
bunch
of
related
tests,
so
we
have
can't
exactly
recall
what
this
one
is.
Actually
a
bad
there.
That
label
here
just
fix
that
and
yeah.
So
we
can
try
and
see
if
we
can
run
the
test.
C
C
See
that
test
running
and
yeah
I'll
keep
that
running
while
I
keep
it
up.
Go
back
to
the
presentation.
C
All
right,
so
this
is
where
we're
going
to
start
like
the
more
interactive
and
I
feel
like
interesting
part
of
this
Workshop.
Where
I
mean
we
encourage
you
like
to
bring
actually
your
laptop
style
and
if
you
have,
if
you
don't
have
a
laptop
or
you
don't
feel
like
you
know,
coding
yourself.
I
would
really
encourage
you
like
to
to
meet
up
with
someone
or
to
bear
with
someone
who
actually
has
a
a
laptop
going,
because
I
feel,
like
that's,
probably
going
to
be
the
best
way
that
you
can.
C
We
can
show
you
about
the
mono
repo
and
if
people
have
like
different
degrees
of
of
skill
levels
or
familiarity
with
like
blockchain
in
general,
we
have
a
couple
of
like
suggestions
as
to
what
we
suggest
you
to
do
so,
if
you're
and
that
QR
code
is
the
link
tree.
I
was
mentioning
earlier.
So
it
has
links
to
all
all
of
these
things,
along
with
the
like
Shandong
test
net
instructions.
D
D
So
you
can
you
can
install
just
the
transaction
package
or
just
the
block
package.
You
don't
need
to
have
the
whole
mono
repo
as
a
dependency.
You
can
have
each
individual
each
JS
package.
D
C
Yeah
clothing:
the
model
repo
is
probably
the
way
to
go.
If
you
want
to
experiment
a
bit,
especially
since
some
of
these
packages
are
interdependent
on,
you
know
each
other.
But
if
you
were,
for
example,
building
a
set
of
tooling
and
you
only
need
to
build
blocks
from
data
or
build
transactions
from
some
piece
of
data
that
you
have,
you
could
only
import
like
app
ethereum
Block
in
that
ethereum
transaction,
and
that
would
be
you
know,
all
that
you
need.
You
don't
need
to.
C
You
know
import
the
whole
model,
repo,
it's
just
package
based
so
yeah.
What
we
have
like
sort
of
prepared
for
you
in
terms
of
like
paths,
if
you're
more
like
I,
was
a
beginner
but
like
if
you're,
more
novice
or,
if
you've
never
really
learned
about.
You
know
Merkel
Patricia
trees,
a
good
way
like
to
explore.
That
is
with
a
tutorial
that
have
been
written
like
two
years
ago
and
has
been
like
updated
recently,
and
it
basically
goes
through.
C
It
uses
our
tree
package
to
teach
you
about
the
very
fundamentals
of
that
data
structure.
So
it
just
starts
with
you
know:
putting
a
value
inside
the
the
Merkel
person
should
try
database
getting
the
value
Computing
a
hash.
Looking
how
you
can
you
know
make
proofs
from
these
hashes.
Eventually,
all
the
way
up
to
you
know
querying
data
on
the
blockchain
and
and
interacting
with
it
more
dynamically
in
a
way,
that's
more
similar
to
what
you'd
expect
in
the
real
world
context.
C
So
I'm
super
happy
to
help
you
as
well
answer
any
questions
on
trees.
It's
the
package,
I've
worked
the
most
on
and
the
more
I
guess
intermediate
track,
although
I
mean
Merkel,
perspectives
are
certainly
like,
not
super
easy,
so
we
could
have
put
that
in
their
intermediate
track
as
well.
You
can
experiment
with
like
rlp,
encoding
or
decoding,
so
this
is
the
serializing
algorithm
currently
used
by
ethereum,
and
we
cover
a
bit
of
that
in
the
Patricia
trees
tutorial.
C
But
if
you
want
to
experiment
with
like
oh,
what
does
a
an
area
containing
a
dog
and
cat
strings?
Look
like
when
you
are
LPN
code
them?
That's
the
package
you
would
go
for.
It
contains
two
methods:
rlp.encode
rlp.d
code,
super
simple,
and
you
have
a
bunch
of
helpers
like
to
convert
hex
to
Strings
and
stuff,
like
that.
Another
I
feel
like
exciting
thing
that
you
could
use
are
packages,
for
is
the
block
and
the
transaction
packages.
One
of
the
things
you
could
do,
for
example,
is
query.
C
You
know
just
like
we've
done
here.
We've
query
the
block,
so
a
good
exercise
would
be
to
recompute
the
hash
of
that
block
from
that
data.
We
have
helpers
that
can
do
it
for
you,
like
super
easily,
where
you
basically
just
paste
that
Json
object
and
it's
going
to
recompute
like
the
hash
or
a
block
object
for
which
you
can
get
the
hash,
but
it's
also.
It
can
also
be
interesting
to
just
take
those
fields
like
manually
and
try
to
recompute
the
hash
yourself,
and
we
have
all
the
helper
methods
you
would.
C
C
That
might
look
like
super
hard,
but
we
have
an
example
here
of
a
super
like
minimalistic,
e-ip
and
I'm.
Actually,
gonna
show
that
to
you
just
so
that
you
see
how
small,
like
potential
EIP
can
be
so
I
think
it's
18
for
yeah
right.
So
it's
adding
like
92
bytes
of
code,
removing
two
pretty
simple:
it's
in
the
IP
that
goes
into
Shanghai,
just
warms
the
coinbase
address.
C
So
if
you
take
this
as
a
as
an
example,
your
I
think
you're
easily
going
to
be
able
to
you
know
reproduce
at
least
the
scaffolding
for
an
EIP,
and
you
can
like
invent
this,
perhaps
not
so
useful,
but
like
easy
one
where
it
just
modifies
the
way.
Maybe
a
block
is
run
it.
Maybe
modifies
the
the
name
of
field
or
something
like
that
and
yeah
that
I
think
that
PR
can
serve
as
a
guideline
for
how
to
do
that
and
yeah.
Most
of
the
implementation
is
actually
like.
It's
basically
just
that
line
here.
C
In
addition
to
like
the
scaffolding
and
a
bunch
of
tests
that
are
just
confirmed
that
the
EIP
has
been
implemented
properly
in
terms
of
other
things
that
you
could
do,
you
can
run
the
local
client
as
we
you've
seen
us
do,
and
you
can
run
the
Shandong
at
testnet
with
lowestar,
as
the
consensus
claimed
so
yeah.
Now
it's
Off
to
the
Races,
as
the
return
always
says.
C
So
any
does
everyone
raise
your
hand
if
you
don't
have
a
laptop
well,
I
have
one
so
I
won't
raise
my
hand,
so
everyone
has
one
awesome.
So
was
everyone
able
to
scan
that
link
tree
thing
all
right
cool?
If
not,
the
link
is
just
linked,
linktr.ee,
slash
ethereum.js!
Let
me
just
bring
it
there.
C
So
do
I'm
wondering
how
to
best
like
structure
this
so
either
I
can
go
through
one
of
those
myself
for
those
who
want
a
more
follow
along,
but
I
think
what
would
be
helpful
is
maybe
if
we
just
help
everyone,
you
know
set
up
a
local
environment
and
if,
at
some
point
you
want
to
follow
with
what
I'm
doing
you
can
do
it
or
if
you
want
to
work
on
your
own
thing,
you
can
do
it
as
well.
Does
that
sound
good
to
everybody.
E
C
C
And
just
raise
your
hand
if
you
have
a
an
issue
of
setting
up
your
local
environment,
just
clone
the
model
repo
it's
linked
at.
So
if
you
click
on
internment,
yet
it's
going
to
bring
you
to
the
monorepo
itself.
D
D
C
C
Right
and
once
you've
clowned
molarapo
the
way
to
install
it,
we
use
npm.
So
just
npm
install
is
anyone
running
on
the
windows.
C
C
Okay,
the
workshop
Wi-Fi's
password
is
build.
It
22.,
lower
caps,
build
it
and
22
the
the
number.
E
C
Kilobytes
per
second,
it's
not
too
bad,
but
we're
yeah
we're
getting
there.
We
have
time.
We
have
time.
C
C
G
E
C
C
Just
look
at
that
and
search
actually
yeah.
Oh
okay,
yeah
yeah.
So
because
yes,
but
you're
going
to
see,
is
yeah
and-
and
you
know,
build
transactions
from
different
kinds
of
data,
so
you
can
look
like
you're
familiar
with
typescript
yeah,
so
you
can
look
up
the
pipe
screen.
You
know
the.
C
Yeah,
so
one
thing
that
I
would
suggest
you
do
is
maybe
like
query
pip,
okay
transaction,
where
you
opposed
the
IP
1559
transaction
and
then
try
to
you
know,
rebuild
them
or
what
would
be
sets
of
tools
and
make
sure
you
compute
the
right
hash
again,
and
you
know
stuff
like
that.
Yeah
all
I'll
reopen
that
yeah.
C
Okay,
so
I
think
you
just
entered
so
yeah
just
you
can
clone
the
ethereum
JS
motor
repo.
The
second
link
intermediate
Link
in
the
in
the
link
tree
that
you
see
here
and
then
yeah
just
make
sure
you're
on
the
you're
on
the
master
branch
that
should
be
default
and
then
yeah
just
pull
the
latest
and
npm
I've
to
install
the
model
repo.
That
should
be
all
that
you
need.
C
So,
just
just
so
I
that
I
do
something
that's
relevant
for
most
people
who's.
Thinking
of
doing
the
Merkel
Patricia
trees
tutorial.
C
Awesome,
okay,
cool
I
wouldn't
quite
recommend
it.
It
does
cover
some
of
the
stuff
that
were,
we
would
be
doing
in
Block
transactions
in
rlp,
but
it
just
guides
you
through
them,
rather
than
just
showing
you
out
there
who's
thinking
of
just
going
straight
intermediate
and
building
blocks
transactions,
all
right
and
who's.
Thinking
of
trying
to
implement
their
own
EIP
is
in
one
motivated,
all
right
awesome
and
what
about
running
the
client
or
running
the
Shandong
test?
Net?
H
C
C
Yeah,
so
this
is
the
folder
that
you
should
go
in.
If
you
want
to
do
that
tutorial
and
the
readme
is,
is
you
know
the
tutorial
itself?
What
we
also
have
is
a
set
of
examples
like
I
had
written
this
tutorial
in
JavaScript,
just
so
that
people
who
know
wanted
to
learn
about
ethereum,
didn't
know
about
typescript
didn't
really
have
to.
You
know:
I'll
learn
about
it,
so
those
are
like
GS
files
that
you
can
just
run
with
the
node.
C
C
Yeah
package
is
named,
try
so
once
you've,
let
me
actually
just
reinstall,
since
the
Shandong
thing
is
a
bit
a
bit
different.
C
To
install
successfully
cool,
no
issues,
you're
waiting
for
the
installation,
all
right,
cool
yeah,
it
takes
a
while
because
it's
building
every
package
so
yeah.
C
Are
you
trying
to
run
from
the
monorepo
itself?
Npm
run
test
yeah.
It
might
be
just
because
of
this
modules.
In
the
like
a
lot
of
the
a
lot
of
the
general
affairs
that
we
have
depend
on
that
those
sub
modules,
foreign.
C
C
Oh,
oh,
that
singular
test.
Okay,
let
me
give
you
an
example
of
running
a
an
individual
test.
I'll
just
go.
C
Okay,
the
the
the
principle
is
going
to
be
the
same
for
all
of
the
packages
themselves.
So
if
you
go
within
the
individual
package
that
you're
trying
to
run
the
test
in
just
do
npm
run
tape
and
tape
is
like
the
testing.
You
know
framework
that
we
use.
Then
you
do
double
I
think
those
are
called
Dash
in
English
I'm,
not
even
sure
then
test
to
look
at
the
test.
Folder,
and
then
you
just
select
the
file,
basically
that
you
that
you
want
to
run
right.
C
Do
that
and
it's
going
to
run
that
test
individually,
if
you
do
npm
run
tests,
it's
just
gonna
run
like
a
massive
Suite
of
of
tests,
including
like
integration
tests
that
depend
on
browser
integration.
Stuff
like
that,
and
that's
typically
like
super
long.
We
only
do
that
like
in
the
CI
once
in
a
while,
but
the
locally
it's
a
bit
tedious
so
and.
E
C
Then
you
see
the
the
result
of
the
test
it
passes,
so
let
me
close
that
up
all
right.
So
let
me
open
up
the
tutorial
again.
C
All
right
so
there's
you
know
a
bit
of
preliminary
info
that
you
might
want
to
read.
You
know.
Data
structure
of
ethereum
is
called
the
miracle
pituitary,
it's
a
basically
a
combination
of
a
myrtle
tree
and
a
picture
should
try.
A
try
is
a
data
structure
in
which
Keys
represent
the
path
leading
to
a
specific
node,
and
the
Myrtle
tree
is
a
structure
in
which
a
parent
node,
the
key
of
that
is
the
hash
of
the
all
the
trial
nodes.
C
Miracle
degree
is
interesting
because
if
you
want
to
prove
that
the
certain
value
is
part
of
the
data
at
the
large
marbled
restructure
that
you
have,
you
can
do
so
by
providing
a
bunch
of
like
sister
nodes,
we'll
see
that
super
clearly
in
the
tutorial
itself,
so
yeah
the
instructions
are
here,
they're
the
same
that
you've
just
ran
so
clone
them
on
the
repo
install
it
and
then
go
inside
of
that
try
package,
so
I've
been
going
through
these
like
fairly.
You
know
slowly
so
feel
free.
C
If
you're,
you
know
want
to
go
a
bit
faster
to
just
go
forward
and
don't
let
me
like
slow
you
down,
but
the
sort
of
first
example
we're
going
to
use
the
try
you
know,
library
before
is
creating
and
updating
a
base
drawing.
So
what
does
that?
Look
like
so,
first
of
all,
we're
importing
the
try
class
from
the
the
try
package
and
we
can
look
at
what
you
know
that
looks
like
it's
probably
like
try
file
yeah.
C
So
try
is
simply
a
class,
and
you
know
it
has
a
bunch
of
properties
that
you
would
expect
on
the
you
know.
Database
like
structure
it
does
use
like
a
checkpoint.
Db
is
a
as
like
a
database,
and
then
you
can
provide
options
for
the
tree.
So
some
of
the
options
are.
Do
you
want
to
use
this
specific
type
of
keys?
You
want
to
use
like
plank
keys
or
hashed.
Keys
like
are
what
is
used
in
ethereum.
Then
we
instantiate
database.
C
You
could
provide
like
your
own
database
here,
where
you're
instantiating
a
new
like
map,
DB
and
and
yeah
instantiating,
a
new
tree
when
we,
you
know,
construct
a
tree
with
the
tree
class,
and
you
can
see
you
have
a
set
of
methods
here.
You
can,
for
example,
you
know,
get
the
root
of
the
tree.
You
can
verify
if
a
certain
route
exists,
you
can
get.
Those
are
like
these
two
methods
or
the
ones
we're
going
to
be
using
the
most.
C
So
we
have
a
get
method
to
retrieve
a
value
by
providing
a
key,
and
then
we
have
a
put
a
put
method
which
stores
a
given
value
at
a
specific
key,
so
fairly
standard.
You
know
database
stuff,
but
this
is
going
to
give
us
insight
into
how
you
know
the
that
actual
data
structure
works
because
it's
not
like
a
simple
database.
C
So
let
me
go
back
to
the
tutorial,
so
the
first
thing
we're
gonna
do
is
like
instantiate
the
tree
so
I'll
go
to
example,
one.
F
C
So
yeah
to
run
a
specific
example:
you're
just
gonna
go
node
examples
and
for
example,
example:
one.
C
So
this
all
I'm
going
to
be
doing
here,
as
you
can
see,
is
instantiating
a
new
tree
with
you
know
the
the
try
package
from
the
monorepo
and
then
logging
the
root
of
that
tree,
and
this
is
going
to
give
us
the
the
the
root
of
the
tree,
which
is
you
can
look
up
in
the
Docks,
but
it's
basically
that
the
the
the
encoding
of
I
think
a
demptia
right,
rlp
encoding
of
an
empty
array.
C
So
yeah
we
see
like
pretty
fast.
We
see
we
output,
a
buffer
which
is
a
which
is
that
now
that
doesn't
tell
us
a
whole
lot,
but
we
could
look
up
in
the
docs
and
see
that
this
is
actually
exactly
what
we'd
expect
in
as
the
root
of
Genesis
like
root
of
the
try
like
data
data
structure.
C
So
then
we're
going
to
move
on
to
a
more
you
know,
a
more
interesting
test.
I'd
say
we're
gonna
we're
gonna,
try
to
just
put
a
value
in
it
and
see
if
we
can
actually
retrieve
it.
Another
thing
we're
also
going
to
be
able
to
see
is
how
the
the
route
you
know
has
been
updated.
Given
that
so
yeah,
what
do
we
do
here?
We're
creating
a
key
I
mean
a
try.
C
Natively
uses
buffers
so
we're
doing
like
buffer
from
for
for
all
of
these,
so
we're
having
test
key,
that's
going
to
be
your
key
and
we
have
this
value.
This
is
going
to
be
our
value
and
then
we're
doing
an
asynchronous
operation
like
putting
that
key
value
pair
inside
of
the
try
and
then
we're
going
to
try
to
retrieve
that
value
fairly
simple.
What
we
should
expect
here
is
so
what
should
be
the
value?
C
Well,
it
should
be
the
you
know:
the
encoded
version,
the
buffer
from
version
of
a
test
value
and
the
value
string.
We
should
expect
to
see
value,
and
if
we
don't
there's,
there's
been
an
issue
either
you
know
in
the
library
or
in
the
way
we've
used
it.
It
should
also
update
the
tree
root.
So
one
thing
I'm
gonna
do
is
I'm
gonna,
also
log.
C
And
what
we
should
expect
is
like
each
Miracle
Patricia
Street
like
each
state
tree
should
always
have
a
different
hash
if
it
differs,
and
if
it's
the
same
it
should
always
have
the
the
same.
So
let's
try
running
this
again.
C
So
what
do
we
have
here?
We
started
with
a
empty
try
route
yeah.
We
had
logged
that
before.
Actually
so,
the
try
route
before
you
know
is
the
same
with
just
the
same
thing:
twice
the
value
that
we've
retrieved
is
it's
this.
If
you
are
familiar
with
the
you
know
this,
just
the
hex
correspondence
for
all
of
the
all
of
the
characters
and
then,
if
we
convert
that
to
a
string,
we
get
back
this
value.
This
is
exactly
what
we
expect.
Then
we
see
that
the
try
route
has.
C
You
know
massively
changed,
as
you
would
expect
from
any
kind
of
hashing
if
it
differs
slightly
totally
different.
Random
result
right
that
clear
to
everybody,
does
that
feel
intuitive.
C
We're
always
so
a
normal
tree,
so
this
is
the
actual
Myrtle
Beach
tree,
like
data
structure
that
we'd
be
that
would
be
used
like
in
production
with
ethereum.
The
the
only
slight
difference
is
that
the
mergul
Patricia
trees
use
like
hash
keys,
so
instead
of
using
the
key
we'd
use
like
the
the
hashed
version
of
that
key,
and
this
is
only
to
balance
out
the
tree
so
that
there's
no
Vector
of
attack
where
you
always
update
like
values
in
a
similar
region
and
make
it
more
costly
for
nodes
to
run
operations
the.
C
C
So
if
you
have
a
key
of
like
you
know,
32
bytes,
then
you
would
Traverse
like
all
these
nodes
on
the
way
down
there.
Now,
Merkel
Patricia
trees
are
more
efficient
than
that
because
if,
if
they
know
that,
given
a
certain
path,
there's
only
one
possible
path
down,
they're
going
to
create,
what's
called
an
extension
node
which
extends
all
the
way
down
to
the
to
the
leaf.
So
this
allows
you
to
shortcut
unnecessary
paths.
C
What
you'd
see
if
you
didn't
have
that
is,
there
would
be
a
bunch
of
layers
in
their
Merkel
pituitary,
where
there's
only
like
one
specific
branch
that
has
a
value
and
then
you
go
down
and
there's
only
one
specific
Branch
so
for
like
sparse
trees,
meaning
like
trees
that
aren't
filled
like
with
data
all
over.
This
is
incredibly
more.
You
know
efficient
because
you
don't
have
to
store
like
all
these
unnecessary
nodes.
C
Is
about
yeah
there's
a
couple
of
additional,
like
notes,
Here,
that
you
might
be
interested
in
some
of
them
I
mentioned,
while,
while
doing
it,
it's
also
talking
a
bit
about
the
rlp,
you
know
encoding
function.
This
is
actually
not
up
to
date.
That
link
I
think
it's
probably
here
yeah
yeah.
So
there
are
some
very
nice
ducks
in
on
ethereum.org
for
developers
like
if
you're
looking
to
learn
a
bit
more
about
rlp,
you
would
just
go
there.
C
They
have
a
bunch
of
examples
and
you
couldn't
even
like
use
our
library
to
test
it
out
and
play
around
with
it.
So
before
values
or
so
there's
a
bunch
of
values,
you
could
want
to
store
in
the
miracle
Patricia
tree
right
and
those
need
to
be
serialized
before
they
are.
You
know,
put
inside
of
the
tree.
C
This
serialization
is
done
with
recursive
land,
prefix,
encoding
function
and
and
yeah
as
I
mentioned.
Keys,
also
go
in
additional
additional
transformation,
they're
not
used
like
raw
they're
used.
We
first
take
the
keca
256
of
the
cube
before
we.
We
update
the
tree
so
here
we're
basically
going
to
do
the
same
thing,
but
we
are
going
to
use
the
hashed
version
of
the
key
so
how
we're
going
to
do
that
is
we're
just
gonna.
C
You
know
import
the
kick
to
56
that
we
have
in
you
know,
ethereum.js
slash
util
package
and
the
only
difference
is
we
are
going
to.
As
you
see
here,
put
the
value
at
the
Keck
of
the
key
instead
of
the
key
itself,
so
everything
else
is
going
to
be.
You
know
exactly
the
same.
C
Yeah,
similarly,
we're
going
to
get
you
know
an
updated
tree
root
so
that
you
know
nothing
surprising
here.
It's
basically
just
you
know
we
we
had
an
alternative
key,
which
is
the
kick
of
the
key.
We
got
the
same.
B
C
Is
the
kabali
industry?
Okay,
so
the
the
values
themselves
aren't
hashed,
because
otherwise
we
wouldn't
be
able
to
retreat
them.
Since
you
know,
hashing
is
one
way.
The
only
thing
that
we
hash
is
I
mean
this
is
like
a
key
value.
You
know
data
structure,
the
value
we
keep.
You
know
native.
We
just
rlp
encoded,
for
you
know
serialization,
so
that
it's
compatible,
but
the
the
key
itself
that
we're
hashing.
C
The
main
reason
why
that
was
done
is
so
that
it
evens
out
the
tree
naturally,
so
it
mitigated
like
vectors
of
attack
where
you
could
have
people
like
constantly
update
like
a
part
of
the
tree
like
very
easily
and
now,
if
you
wanted
to
do
that,
you'd
have
to
like
pre-compute
a
hash
and
since
it's
like
non-deterministic,
well,
it's
deterministic,
but
you
can
like
predict
in
advance
what
the
hash
is
going
to
be.
C
Obviously,
you
basically
have
to
do
like
proof
of
work
to
like
Target
like
a
specific
part
of
the
tree.
It.
D
C
Yeah
yeah,
so
in
our
case,
like
keys,
are
always
like.
How
does
this
like
in
the
case
of
the
the
state
tree?
Keys
would
be
like
the
the
account
addresses,
but
yeah
The
Tech
Guy,
like
hashing.
Something
obviously
also
has
a
benefit
of
making
everything
equal
length,
which
you
want
in
like
data
structures
like
this.
C
All
right
so,
as
we
said
like
fairly
fairly
straightforward,
now
we're
going
to
do
something.
You
know
a
little
bit
more
interesting
now.
What
we've
seen
is
that
the
the
like
we've
used,
the
Keck
256
of
the
key,
but
there's
a
you
know,
there's
a
property
of
the
tree
that
we
can
just
use
in
order
to
do
that,
natively.
C
That
property
is
called
use
key
hashing,
it's
a
Boolean
that
defaults
to
false,
but,
as
you
can
set
to
true,
if
you
want,
when
playing
around
with
the
tree,
is
just
more
convenient
to
set
it
to
false
or
have
it
you
know
default
to
files,
just
because
you
you
don't
have
like
to
to
all
do
all
that
additional
computation.
It's
also
easier.
C
If
you
want
to
debug
what
a
value
you
know,
if
you,
if
you
only
have
the
the
hash
of
the
key,
you
can
never
know
like
what
was
the
actual
key
that
I
used
to
update
this.
You
cannot
retrieve
it
back,
which
it's
actually
an
issue
that
has
also
come
up
when
making
the
transition
from
Marvel
trees
to
Vertical
trees,
but
that's
a
different.
That's
a
different
topic.
C
I
think
it's
basically
the
same
thing,
but
just
using
we
use
key
hashing.
So
what
we
should
expect
unless
our
yusuke
hashing
Boolean
is
implemented
improperly,
as
we
should
expect
exactly
the
the
same
values
that
we
have
here,
including
the
updated
tree
root,
given
that
we're
using
the
same
yeah
testing
this
valued.
That
should
work.
So,
let's
see
and
yeah
as
expected,
we've
created
a
new
tree,
but
we've
updated
it
with
the
same
key
value
pair
and
we
are
getting
the
same,
updated,
try,
route.
C
Okay,
now
we're
going
to
do
a
a
different
operation.
So
among
the
operations
that
are
possible,
you
can
retrieve
a
value
you
can
update
the
tree
by
adding
new
values.
You
can
also
delete
values
from
the
tree.
So
let's
see
what
this
looks
like
the
as
I
as
I
kind
of
mentioned
before
every
tree.
That
is
similar.
That
has
all
the
same
data.
Should
you
know
compute
the
same
room?
That's
how
we
get.
You
know
the
security
properties
of
these
of
these
trees.
C
All
right,
yeah,
we've
created,
updated,
then
delete
using
the
weight.
Will
helper
method
get
it
again.
We
we
shouldn't
be
getting
a
value
when
we
try
to.
You
know
retrieve
that
key
I'm,
not
exactly
sure
what
we're
going
to
get
I'm,
not
sure
if
it
throws
or
oh
it
looks
like
yeah.
It's
going
to
be
null
fair
enough,
and
let's
see
about
that
all
right,
so
we
are
starting
out
with
the
M3
empty
Tri
World.
Here
it
starts
with
56
E8.
C
Then
we
are
updating
the
tree,
we're
getting
an
updated
tree
root
which
is
similar
to
the
like
unhashed
key
one
we
had
before,
and
then
we
are
deleting
that
value
again.
And
what
do
we
get
back
when
we
query
that
that
tree
for
that
key?
We
we
get
back
null,
which
means
like
empty.
No,
it's
not
there
and
the
tree
route
that
we
get
back
after
the
deletion
is
the
same
that
we
start
with
so
yeah.
I
kind
of
demonstrates
that
every
you
know
same
tree
is
going
to
have
the
same
root.
C
G
C
All
right
all
right,
so
there
are
four
kinds
of
nodes
in
the
Myrtle
Beach
streets.
So
there's
the
null
node,
which
is
the
one
we
just
queried
accidentally
by.
You
know
deleting
the
tree,
that's
a
non-existent
node!
You
get
back
now
when
you
query
for
something
that
doesn't
exist.
There
is
a
branch.
Now
what
a
branch
node
does
is
it's
basically
an
intermediary
node
that
points
to
a
bunch
of
child
nodes.
C
C
E
E
C
Yeah,
how
how
is
that
initial
route
created,
yeah,
good
question,
I'm
I,
think
it's
the
rlp
encoding
like
it
has.
Basically
still
you
know
it's
it's
the
hash
of
the
value
at
that
root,
because
it's
initialized
with
a
value
if
it
wasn't
initialized
with
a
value,
would
just
be
null.
You
know
initially
the
way
they're
defined
I'm.
E
C
C
Yeah
so
so
yeah,
we
can
actually
look
at
that
directly
in
the
code
we
have
we
set
empty,
try
route,
that's
like
a
specific,
like
constant
property.
When
so,
when
we
construct
when
we
initialize
the
new
tree,
what
runs
is
like
this
Constructor
function?
C
If
we
don't
provide
options
and
we
we
have
like
default
options
that
we
provide,
we
instantiate
the
database
and
then
the
very
next
thing
we
do
is
initialize
the
empty
Tri
rule,
which
is
exactly
the
thing
you
know
you're
asking
about.
This
is
actually
quite
simple.
So
what
it
is
is
the
rlp
encoding
of
an
empty
string
which.
E
D
E
A
C
All
right,
so
this
is
importing
the
encode
method
from
the
ROP
Library.
So
what
do
we
should
expect
to
get
back
from?
You
know
an
empty
string.
Oral
pin
coding
would
be
ox80,
which
is
you
know
the
buffer.
We
we
just
saw
before
so
I'm
gonna
have
to
move
out
of
that
repo
go
into
the
example
solder
and
then
run
this.
Oh.
E
A
C
D
C
Okay,
yeah
so
128.
We
we
got
back
the
decimal
value,
but
128
is
like
ox
80
in
decimals,
which
is
the
the
value
that
we're
using
inside
of
the
tree
to
compute
the
root
hash.
So
we
are
basically
just
to
to
compute
that
you
know
root
hash.
We
are
just
hashing
ox80.
So
if
we
take
the
kecought
hash
of
the,
let
me
look
back
at
the
place
where
we
were
using
KitKat,
so
I
don't
have
to
re-import
manually.
C
B
C
So
we
have
a
buffer
to
hex
util
in
the
package.
Now
the
way
my
testing
thing
is
set
up.
My
not
allow
me
to
import
that
he
yeah
so
I
would
need
to
do
buffer
to
hex
here.
Well,
since
I'm
now
running
on
a
like
JS
thing,
I
would
need
to
build
it
before
I'm
able
to
run
this.
So
I
will
not
do
this
here,
but
those
are.
C
Cool
any
other
questions
before
we
move
on
to
going
to
all
specific
kinds
of
nodes,
we're
good
everybody's
following
along
all
right
nice,
so
yeah
we're
just
going
to
start
with
creating
and
looking
up
null
node.
So
how
do
we
we're
not
actually
really
going
to
create
an
all
node,
we're
just
gonna
query
for
a
key
that
is
not
present
in
the
mergle
partition
tree.
So
it's
basically
the
simplest
like
test
case
you
could
imagine.
So
what
we're
going
to
run
is
at
2
to
a
right.
C
That
here,
yes,
we're
instantiating
a
new
tree.
We
are
trying
to
find
a
path.
You
know
to
the
to
the
key
test
key
and
we'll
see
what
kind
of
node
we'll
get
back
now.
What
you
will
see
now
is
that
we're
using
findpath,
which
is
going
to
provide
us
with
the
actual
node
and
then
all
the
object,
instead
of
just
providing
us
with
the
value.
C
So
if
you
want
to
query
the
three
four
actual
values
just
do
get,
but
if
you
want
to
get
more
information
as
to
you
know
what
the
path
is
and
what
the
node
looks
like
you
would
just
do
a
fine
path
so
we're
running
example:
eight.
This
provides
us
with
yeah
a
null
node,
as
we
would
expect.
We
could
change
that
to
pretty
much.
You
know
anything
and
we
would
get
back
now
as
well.
C
C
C
Basically,
a
way
to
bootstrap
the
free
so
that
it
starts,
you
know
with
something
you
could
Define
like
a
new
Mercury
data
structure.
That
uses
like
something
different,
obviously
from
rlp
encoding
and
also
has
a
different
like
root
hash.
You
don't
necessarily
have
to
use
it.
It's
useful
in
the
context
of
ethereum,
because
we
obviously
want
to
be
consistent
throughout
like
implementations.
But
it's
not
it's
not
a
necessary
part
of
the
data
structure
like
that
you
could
Define
It
Anyway
any
way
you
want
so
yeah.
C
Loud
is
a
bit,
you
know
boring
it's
not
as
interesting
and
the
ones
that
are
to
come.
It's
also
like
slightly
more
complicated
to
to
create,
because
if
you
think
about
how
you
know
these
kind
of
keys
work
right,
you
have
a
key
and
to
retrieve
the
value
for
it.
You
just
go
down.
C
Each
note
is
a
hex
value
right,
so
let's
say
the
next
part
of
the
key
is
like
seven,
you
go
branch
number
seven
and
then,
if
it's,
you
know
four
like
in
this
example,
you
take
branch
number
four
and
you
go
all
the
way
down
now,
since,
like
Miracle,
trees
are
like
optimized
with
extension
nodes,
you
wouldn't
get
a
branch
every
part
of
the
way
down.
What
you
would
see
is
you
would
start
at
seven.
Let's
say
you
only
had
like
one
of
the
keys,
you
would
start
at
seven.
C
It
would
give
you
straight.
It
would
go
you
straight
to
the
end,
because
there's
only
one
value
that
starts
with
seven,
so
it
would
like
kind
of
compress
the
tree
for
you.
So
if
we
want
to
create
a
branch,
though
that's
like
acts
as
an
intermediary
node,
you
would
wanna.
You
know
we
want
to
store
key
that
are
all
basically
in
the
same
spot
and
then
Branch
out
at
some
point,
and
that's
actually
interesting,
because
it's
super
easy
to
do
that.
You
know
with
what
we're
going
to
do
in
this
example.
C
But
if
we
were
using
a
hash
tree,
then
it's
basically,
you
know
impossible
to
do
that
voluntarily,
and
that
gives
you
a
sense
of
why
that
was
chosen
in
the
first
place
right.
Why
we're
choosing
to
Hash
keys
in
the
context
like
a
production,
you
know
database
in
ethereum
to
prevent,
like
dos
style
attacks
with
you
know,
just
putting
keys
are
always
in
the
same
spot.
C
C
E
C
Yeah
absolutely
yeah
yeah
so
and
also
like
RL
Bean
coding,
encodes
things
in
Exodus
mode,
so
we're
all
like
working
with
Native
like
hexadecimals.
Here
it
was
in
that
tree,
so
yeah,
if
we
like,
unlike
like
hashes
buffer,
is
going
to
be
it's
just
like
the
the
hexary
like
encoding
of
the
these
keys.
So
we
should
expect
these.
All
these
values
do
still
be
quite
similar,
and
that
is
what
we
see
here
so
right.
We
have
the
prefect
test.
Keys
come
in
for
all
of
them
and
test
key
is
basically
that
part.
C
You
know
of
the.
Let
me
zoom
in
a
little
bit
yeah
that
part
of
the
of
the
buffer.
Now
we
have
30,
which
is
a
0
and
41,
which
is
capital
A,.
A
C
Are
you
know
the
the
last
parts
of
it?
So
what
we
should
basically
expect
right
is.
Would
you
agree
that
we
should
expect
like
a
branch
node
at
79,
at
which
point
you
know
it
branches
up,
so
what
we
would
see
is
like
there's
going
to
be
a
value
at
79.
A
branch,
don't
you
know,
can
have
a
value,
but
then
there's
going
to
be
two
bats.
C
There's
going
to
be
path,
number
three
and
path:
number
four
like
in
indexes
of
the
array,
then
it's
going
to
go
down
all
the
way
to
you
know
a
leaf
node,
because
it's
basically
the
end
of
the
path
for
that
part
of
the
path
and
then
41,
which
is
going
to
be
the
another
part.
For
that
you
know
other
path.
Does
that
make
sense
to
the
body.
E
D
Yep,
that's
through
the
idea
of
the
the
Patricia
tree
is
that
you're,
following
the
sort
of
following
the
keys
along
that
path
and
everything
that
shares
shares
by
it.
C
Yeah
yeah
and
something
like
to
mention
here.
This
is
only
keys
right.
This
is
not
the
values
themselves
and
like
later
a
bit
in
the
tutorial.
We
see
how
you
know
the
hashes
of
every
like
parent
is
computed,
which
is
like
different.
You
know
from
this,
but
yeah.
So
if
we
had
like
also
a
a
key
address
T,
we
would
see
like
that.
That
would
be
only
74
because
that's
like
lowercase
D
is
74
in
HEX
and
we
would
see
a
branch
note
at
74.
C
There
would
be
value
already
there
and
then
there
would
be
like
nodes,
like
paths
to
all
the
way
down
to
you
know
79.
It
would
be
like
we'll
see
that
after,
but
it
would
be
like
an
extension
node
for
optimization
purposes,
and
then
you
have
well
branches,
as
we've
said,
to
30
and
and
41.
so
yeah.
What
we're
going
to
do
is
update
the
tree
with
all
those
keys,
we're
going
to
find
the
path
to
test
key
and
we're
going
to
see
what
that
node.
You
know
actually
looks
like.
C
C
We
query
the
the
node
that
lives
at
Key
test
key,
which
is
the
the
common
prefix
for
all
those.
So
what
we
see
so
this
is
index.
You
know
zero
one,
two
three
four,
which
correspond
to
numerical
values
like
just
plus
one
since
indexes
start
at
zero
and
actually
no
that's
not
true,
just
correspond
exactly
to
the
actual
values
and
and
we're
seeing
that
there
are
two
different.
You
know
values
here.
C
So
that
is
what
we'd
expect
we
have
like.
This
is
basically
like
empty,
so
like
null
nodes,
because
there's
no
path
at
that
point
like
at
Key,
zero,
there's.
No,
we
don't
have
any
anything
that
lives
at
zero
right.
We
don't
have.
C
Lives
at
one
we
have
nothing
to
lose
it
two,
but
starting
from
three.
We
have
an
actual
path
and
we
see
that
complete
path.
Here
we
also
have
the
same
for
41,
which
is
you
know,
index
4.,
and
then
we
have
nothing
all
the
way
down.
An
interesting
thing
is
we
also
have
a
value
already
here
at
address.
You
know:
that's
basically
test
key
and
hex,
so
a
branch
node
is
not
only
an
intermediary
node,
it
can
also
contain
values.
You
know
itself
in
the
case
of
keys,
which
would
always
have
the
same
length.
C
All
right
yeah,
so
that's
exactly
exactly
what
we
see
and
we
can.
We
can
take
the
value
of
that
node
and
see
if
we
can
like
the
value
here,
we
can
yeah,
we
can
parse
it
to
string.
Let
me
find
you
the
code,
so
it's
more
revelatory
of
what's
actually
going
on
so
yeah.
We
we
found
a
path.
We
found
a
node.
We
take
that
node.
We
look
at
the
value
at
that
specific
point
and
it
should
be
the
the
value
that
we've
put
at
test
key
now.
C
If
we
were
to
take
a
the
value
of
a
of
one
of
the
nodes,
that
is
a
child
of
that
parent
node,
we
would
get
also
like
test
test
value,
0
and
test
value
a
so.
It
is
what
we're
doing
you
know
a
bit
further
down
here.
So
let's
look
at
how
we're
you
know,
retrieving
that.
C
C
Is
that
somewhat
clear?
Breast
nodes
are
a
bit
trickier,
but
is?
Is
everyone
sort
of
following
along.
C
Think
we're
there's
a
bit
more
clarity
about
that,
after
so
I
think.
The
next
example
is
going
to
clarify
that
for
you
and
if
it
doesn't,
we
can
come
back
to
it
and
play
a
little
bit
more
with
it.
It
is
like
gang
like
nodes
and
how
they're
structured
and
how
they
they
operate
within
one
another
is
the
trickier
part
but
yeah
Branch,
nodes
and
extension
nodes,
which
are
you
know
somewhat
similar
in
structure,
are
the
more
complicated
part
of
that.
C
D
If
there's
only
one,
then
we
can
compress
it
down
and
call
it
an
extension
node.
But
here
where
there's
like
two
in
that
array,
you
just
automatically
have
the
rest.
Rest
of
its
siblings
are
empty
buffers
and,
like
I,
said,
if
there's
only
one
child
to
that
parent,
we
can
collapse
it
back
up.
But
if
there's
at
least
two
then
you're
going
to
have
an
array
of
16.,
regardless
of
how
many
actually
have
actually
have
a
leaf.
C
Yep
yeah
absolutely
so
this
clarifies
this
is
a
bit
like
in
in
the
other
example,
but
I
think
this
clarifies
you
know
what's
going
on,
so
it
might
look
a
bit
confusing
because
we're
using
very
similar
keys
and
values.
So
this
is
actually
the
values
and
they're
also
you
know
similar,
but
we're
not
really
concerned
with
this
similarity.
You
know
of
the
values
we're
concerned
with.
We
went
all
the
way
down
to
a
branch
node.
C
We
had
two
paths
that
were
defined
and
we
had
also
a
value
that
lived
there.
So
your
question
is
basically
well.
Why
is
it
an
array
that
lives
there
right?
So
the
area
contains
the
two
pieces
of
information
that
we
need
to.
Finally,
like
get
the
value
at
the
leaf
node.
So
this
is
pointing
you
know
to
a
node
and
it's
telling
you
well.
Actually
the
the
remaining
part
of
the
path
is
going
to
be
3
0.
C
C
You
know
that
whole
thing,
and
this
is
the
thing
that
if
you
parse
it
to
a
string,
you
would
get
like
test
value,
zero
and
test
value
a
and
it's
the
reason
why,
when
we're
trying
to
retrieve
you
know
the
values
here,
we
are,
you
know
taking
the
corresponding
indexes,
but
then
taking
the
first,
not
the
first
like
the
second,
but
index
number
one
this.
This
is
exactly
that's
the
value
now
we're
working
with
like
fairly
small
values,
so
the
values
are
directly
inside
of
the
tree.
C
If
you
had
very
large
values,
it
would
Point
like
back
to
another
node
that
would
have
an
encoding
of
the
of
the
value
that
will
actually.
C
D
C
Yeah
yeah:
let's
do
that?
Actually,
so
we
can
we're
gonna
create.
So
what
would
you
suggest
sql1
yeah?
Let's
do
that
it's
going
to
be
test
value.
You
know
I
want
as
well
and
actually
let
me.
C
Yeah,
so
we're
gonna
run
that
again
and
we're
gonna
all
that
we're
interested
in
at
the
moment.
For
you
know
this
example.
You've
suggested.
Is
that
the
branch
though,
like
what
does
it
look
like
at
that
point
and
then
it's
going
to
have
a
child.
That's
also
going
to
be
a
branch
note
right.
That's
what
we
would
you
know
expect,
so,
let's
try
I
need
to
save
it.
First,
let's
try
running
that.
C
All
right,
so
what
we
see
is
it's
actually
quite
similar
to
what
it
was
before,
but
instead
of
getting
an
array
we're
getting
a
larger
larger
buffer.
So
what
is
that
larger
buffer?
That
larger
buffer
is
now
there's
two
kinds
of
keys
in
vertical
trees?
That's
just
a
hash
that
points
to
a
different
node
right.
So
it's
not
about
you
know!
Path
path
is
still
like
path.
C
C
K
C
So
if
we
look
at
those
keys,
you
have
a
common
path
that
is
test
key
zero
and
then
you
have
a
slightly
like
longer
path.
That
is
that's
q1.
So
what
we
should
expect
again
is
a
branch
node.
At
that
point,
it's
going
to
contain
the
value
itself,
because
test
key
0
is
actually
defined.
You
know
as
a
valid
key
that
contains
a
value,
but
it's
also
going
to
continue
at
one
and
now
obviously
we're
dealing
with
like
text
conversions
of
this.
C
So
it's
not
going
to
be
at
the
actual
index,
one
it's
going
to
be
at
a
different
index,
but
for
we
do
see
that
there's
exactly
one
valid.
You
know,
branch
that
points
to
another
node
and
then
there's
an
actual
value
here
and
if
we
were
to
you
know,
convert
that
actual
value
to
a
string.
We
would
expect
to
get
back
whatever,
like
gar
badge,.
C
I
have
to
do
actually
branches
true,
and
then
this
would
be
the
remaining
part
of
the
path,
and
this
is
going
to
be
the
value.
So
if
we
do
to
string,
we
should
expect
to
retrieve
that
number
three.
You
know
thing
that
we
had
above,
let's
see
if
that
works
and
yeah
we're
getting
back.
You
know
number
three
well.
H
C
Not
necessarily,
this
is
just
because
of
the
the
actual,
but
very
well
like
if
I
choose.
E
J
In
that
scenario,
the
total
number
of
buffer
placeholders
are
fifteen.
One
five
is
that
right.
C
Yeah,
it's
actually
16..
We
have
16
elements
in
the
array,
I
believe
it
ends
up.
The
end
index
is
15,
but
it
starts
at
zero.
So
we
have
16.
C
C
So
zero
is
actually
like.
It's
encoded
as
like
two
hexary,
you
know
number
is
only
like
not
like
a
single
one,
so
we're
seeing
tree
because
that's
the
like
second
number
of
the
zero.
At
which
point
you
know,
we
have
a
value
like
directly
there,
but
we
have
we're
branching
out
so
I
think
if
I
created
like
another
one.
C
Yeah,
so
here
we're
getting
again
like
you
remember
how
we
were
getting
like
a
path
in
the
value
that
was
because
that
was
the
only
valued
F
now
we're
again
getting
a
hash
pointing
to
the
common
path
of
like
the
next
one.
It's
going
to
be
a
branch
note
again,
we
could,
you
know
again,
query
find
the
path
to
that
and.
C
Yeah
well,
there's
a
value
like
if
I
query
test
key
O2,
there's
going
to
be
again
a
value
here,
but
yeah
I'm
not
actually
sure
why
we're
always
at
this
index
I'd
have
to
look
at
the
the
way.
This
is
encoded.
I
suspect
it's
like
the
always.
The
the
latter
part
of
the
number
two
is
what's
used
here.
Instead
of
tree
itself,
I
can
recall
exactly
what
that
is,
but
yeah
we
in
the
normal,
like
setting
with
like
keys
and
stuff.
C
E
C
Yeah,
it's
not
lining
up
perfectly
too
yeah
exactly
so.
If
we
wanted
to
do
like
if
we
could
natively
like
compute,
you
know
buffers
and
hexes
that
it
would
be
much
easier
to
see.
What's
going
on
now,
we're
using
like
human,
readable
keys,
so
I
mean
they're
broken
down
to
that
they're.
You
know
they're,
converted
to
hex,
so
at
each
each
part
of
the
way
down
that
we
go.
It
doesn't
line
up
exactly
with
the
end
of
the
key.
C
There's,
often
like
one
next
like
character,
necessary
to
to
finalize
that
the
number
zero,
for
example,
all
right,
so
I'll
go
over.
C
D
I
I
think
maybe
open
up
to
just
like
general
questions
or
comments
or
anything.
You
know
we're
we're
building
this
for
you
guys.
So
if
there
are
things
that
are
not
working
or
confusing,
or
that
you'd
like
to
see
where
we're
very
open
to
feedback
and
suggestions
and
help.
C
Yeah
so
like
most
of
what
we've
done
so
far
has
been
like
working
on.
You
know
just
Merkel
Patricia
trees
themselves,
a
bit
further
down
in
that
tutorial,
like
I,
encourage
you
to
just
keep
going
at
home
and
ping
me
like
on
Discord
or
telegram
or
Twitter,
if
anything
like
doesn't
work
as
you'd
expect,
but
there
are
like
we're
working,
also
like
with
blocks
and
with
transactions
and
rlp
encoding,
which
is
quite
I,
feel
like
it's.
C
D
And
yeah
we're
we're
an
open
source
project.
You
can
find
us
on
GitHub.
You
can
find
this
on
Discord
and
chime
in
or
ask
questions.
C
Yeah
we
have
a
massive
number
of
external
contributors,
who've
helped.
You
know
over
the
years
the
repo
is
fairly
old,
I,
think
it's
like
six
years
old
or
perhaps
like
even
more
than
that.
Sometimes
I'll
work
on
a
part
of
the
code
and
I'm.
Seeing
like
the
get
blame
like
five
five
years
ago,
or
something
like
that.
So
it's
really
like
a
pretty
old
repo.
We,
we
are
extremely
open
to
external
contributors.
C
Like
sometimes
we'll
have
people
come
up
and
just
help
out,
and
then
we
we,
you
know
we
include
them
in
the
the
team
like
not
in
the
formal
like
team
itself,
but
we
do
like
chat
with
them
and
are
always
happy
to
help
people.
You
know
help
the
project
we're
working
on
our
future
projects
are
we're
trying
to
improve
the
client
thinking.
At
the
moment
we
only
have
full
sync:
it's
super
slow
and
you
know
you
know
that
would
never
use
that
you
know
in
production.
Obviously
we're
trying
to
do.
C
You
know
General,
like
optimizations
as
well.
So
if
anyone
like
is
competent,
that
that
we're
really
happy
to
like
get
you
started
on
that
or
improving
like
the
Json
RPC
endpoints,
we
don't
yet
serve
all
the
RPC
calls.
So.
D
That's
it's
an
excellent
place
to
start.
If
you
want
to
help
out
just
implements
a
new
RPC
endpoint
for
us.
C
Exactly
you
can
just
go
through
the
list
of
what
we've
implemented
and
just
you
know,
come
up.
You
know
with
easy
ones
that
you
want
to
implement
and
it's
a
good
way
to
get
started.
Learning
about
our
repo,
my
side,
I'm
working
more
on
R
D
for
vertical
threes
and
statelessness,
which
is
you
know,
sort
of
related
to
the
Merkle
tree
stuff.
We've
been
exploring
Scotty
works
on
ultralight,
amongst
other
things,
and.
E
C
That's
a
good
point:
yeah
I,
didn't
think
of
adding
that
to
the
link
tree
I.
Will
that
link
tree
linked
above
all
update
it
with
a
link
to
our
Discord,
so
that
then
you
can
come
in
it's
the
ethereum.js
Discord,
probably
fairly
easy
to
find
as
well,
but
I'll
link
it.
Nevertheless,
yeah.
L
I
feel
like
one
last
question:
I
had
a
friend
who
actually
worked
with
ethereum
India,
asking
who
was
like
telling
me
about,
like
he
also
used,
that
is
this
actually
interconnected,
just
for
a
3mds
or
it
can
be
like
interoperable
in
other,
like
I,
don't
know
proof
of
proof
of
History
like
Solana
or
something
like
that.
I
don't
know
if
you're
interested
in
nonsense,
but
he
was
telling
me
like
he'd
use
that
for
our
RCP
support
kind
of
the
thing.
How
does
it
work?
C
Yeah,
so
it's
interesting
question
so
there's
there
are:
we've
increasingly
made
the
our
packages
configurable.
C
So
one
of
the
things
we've
done
in
the
past
year
is
we
allow
you
to
provide
your
own
VM
or
evm
implementation,
so
you
could
have
a
chain
that
is
not
like
strictly
evm,
or
maybe
that
has
like
peculiarities
or
that
are
ECM
like,
but
not
like
strictly
the
same,
and
you
can
just
like
parse
that
in
when
you
instantiate,
for
example,
the
client
you
can
provide
your
own,
like
whatever
like
rules,
you
have
for
your
blockchain,
there's,
obviously
like
a
limit
to
that
like
there's
a
point
where
it's
probably
better
just
to
build
something
else
if
it's
like
super
different,
but
it's
still
quite
quite
configurable.
C
So
you
could
also
like
there
are
chains
like
seller,
I,
think
which
has
like
different
rules
for
computing
transaction,
hashes
and
stuff
like
that.
I'm
not
like
I
haven't
worked
with
that.
So
I'm
not
sure
how
easy
it
would
be
to
configure
it,
but
you
can
definitely
adjust
some
parts
of
the
code
and
provide
your
own
like
hashing,
algorithm
and
use
that
instead
same
thing
with,
like
the
Myrtle
Beach
trees
thing
we've
been
working
with,
you
could
provide
your
own
hashing
algorithm.
M
D
C
L
Happy
to
hear
that
yeah
yeah
there's
a
lot
of
information
today.
L
N
I'm,
like
that's,
why
I
guess
yeah
I
mean.
D
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
O
O
O
Welcome
to
the
ERC
lightning
talks:
it's
1pm
in
Bogota
in
case
you
are
still
a
little
bit
hungover
or
whatever
my
name
is
Tim.
Annette
is
currently
still
in
a
podcast
interview,
but
I
think
she
will
come
also
later
I'm
quickly.
Gonna
give
an
overview
of
what's
going
to
happen
in
the
next
I
think
we
have
like
one
and
a
half
hours.
O
You
can
already
see
a
bit
on
my
like
drawn
slides,
I,
don't
like
PowerPoint
that
much
like
what
will
be
the
what
will
be
essentially
like
the
the
the
content
of
of
this
entire
session.
We
have
lined
up
as
like
six
seven
speakers,
including
me.
O
We
are
going
to
Center
all
of
these
talks,
Around
The,
ethereum,
Magicians
and
specifically
we're
going
to
talk
about
ERC
proposals,
so
ethereum
requests
for
for
for
comments
right,
so
basically
everything
that
didn't
fit
into
Annette
and
Tim
by
course,
earlier
session.
I
think
like
it
was
about
two
weeks
two
days
ago
about
the
ethereum
core
roadmap,
so
how
this
works.
O
Each
speaker
has
roughly
15
minutes
and
then
we
have
a
usually
like
a
five
minute
break
where
we
can
set
up
the
next
speaker
and
maybe
there's
even
like
time
for
questions
I
guess
we
will
have
some
talks
about
timestamps
in
ethereum,
get
locks
from
Ronin
that
just
entered
the
room
by
chance.
We
will
have
some
talks
about
Soul
Bond
tokens
about
music
nfts
about
yeah
d-soc.
O
O
Before,
like
we
start
with
the
speakers,
I
think
I
wanna
I
Wanna
Give,
a
quick
talk
myself,
though
kind
of
kind
of
like
my
own,
like
lightning
talk
and,
and
it
I
want
to
make
it
about
kind
of
this
weird
thing
that
the
ercs
are,
which
are
essentially
just
like
immutable
contracts
that
are
almost
like
as
immutable
as
a
transaction
in
ethereum
and
the
problem
that
comes
with
it,
which
is
that,
like
we,
don't
really
know
how
to
upgrade
them,
and
you
know
throughout
this
whole
year
of
you
know,
bull
market
and
and
everything,
especially
in
the
nft
eco
nft
ecosystem.
O
I,
think
you
know
there
was
a
there
there's
starting
to
be
this
debate
basically
around
like
how
can
we
actually
do
Innovation
with
these
contracts,
if
you
cannot
change
them
anymore,
right
and
so
like?
O
What
can
we
do
about
it
and
I've
tried
to
kind
of
like
Express
that,
where
you
know
like
this
contract
this
this
document
this
proposal,
so
that
once
you
once
you
put
it
into
the
the
final
status,
then
it's
really
like
locked
like
this,
like
this
locker
and
we
can't
really
unlock
it
anymore,
and
so
we
have
to
find
ways
of
like
still
upgrading
it
and
that's
that's
what
I
I
want
to
try
to
motivate
that
actually
and
I
want
to
try
to
make
like
an
optimistic
case
of
why
it's
actually
cool
so,
but
first
of
all,
I
think
we
have
to
backtrack
a
bit
and
and
this
so
this
is
a
comment
from
I
believe
the
the
GitHub
thread
on
Erp
2612,
the
the
the
permit
standard
that
allows
you.
O
Basically,
it's
like
a
replacement
for
erp20
tokens
where,
instead
of
sending
the
approval
on
chain
and
like
kind
of
like
wasting
all
of
this
cars
for
the
transaction
envelope,
you
you
technically
could
sign
a
transaction
get
that
gives
the
spending
contract
the
permission
with
your
signature,
and
so
the
idea,
I
guess,
would
have
been
that
new
use
cases
are
kind
of
enabled,
and
that
also
that
also
we
can
save
a
lot
of
gas,
especially
like
considering
that
you
know
each
erp20
transfer
is
essentially
like
two
transfers
right
today,
and
so,
if
we
could
already
condense
that
to
one
I
think
the
gas
savings
would
be
quite
significant.
O
So
this
comment
is
actually
a
critique,
though,
on
that
standard
and
basically
it
I
I,
don't
even
like
fully
know
the
entire
history,
but
I
know
that
I
think
the
the
standard
has
like
some
issues:
it's
not
really
in
in
final
mode
either,
and
then
you
know,
like
many
companies
have
like
kind
of
diverged
from
it
and
and
they're
like
non-compliant
like
I.
O
Think
with
this
standard,
so
it
kind
of
shows
I
think
maybe
a
a
a
bear,
bearish
case
for
for
this
kind
of
standardization
approach
and
then
the
other
place
which
I
had
to
deal
with
myself
personally,
because
I
I
crawl
nfts.
O
This
is
the
interface
for
the
Zora
M
nft,
contract
and
m
stands
for
media
nft,
and
you
know
I
I
think
my
first
exposure
to
this
was
that
I
was
kind
of
like
disappointed
because
essentially,
when
you
call
the
token
URI,
like
the
regular
token
URI,
you
are
expecting
a
Json
and
but
what
I'm
getting
back
is
the
media
file,
and
so
I
have
to
actually
have
to
actually
go
to
the
Token
metadata
URI.
And
that's
where
the
metadata
is
right.
O
This,
like
custom
logic
around
it,
but
on
the
other
hand,
I'm
also
empathetic
with
that,
because
in
the
regular
nft
the
media
file,
which
has
been
like
traditionally,
the
image
is
literally
in
a
Json
object
that
we
call
metadata
so
I
I
mean,
in
my
opinion
that
says
a
lot
about
how
we
think
about
nfts
and
that
we
see
the
image
or
like
the
media,
that
is
attached
to
the
nft
kind
of
like
as
metadata
to
something
that
is
the
nft.
O
That
is
kind
of
like
a
maybe
like
a
financial
instrument,
then
or
whatever,
and
so
I
I
think
it's
actually
beautiful
that
they
that
you
know
that
they
made
the
case
that
we
should
actually
use
the
token
URI
to
embed
the
media
file
directly
and
to
Center,
really
the
nft
around
the
media
file
and
not
make
the
media
file
a
mere
metadata
field.
So
foreign.
O
And
apart
from
all
of
this,
like
pessimism,
I
think
there's
there's
another
good
reason
for
submitting
and
and
being
active
on
this
forum,
and
it's
because
you
get
a
ton
of
exposure
to
to
your
ideas.
So
this
is
a
threat
here
that
I
made
I
think
around
in
in
April,
and
it's
about
like
a
specification
for
soul,
bound
tokens
or
we
now
call
them
account
bound
tokens,
and
this
threat
has
gotten
9000
views
and
if
you
would
sort
by
the
replies,
it's
actually
the
top.
O
The
top
controversial
threat
on
the
entire
forum
for
the
for
the
entire
year,
apparently
so
I
mean,
while
that
is
concerning
to
me,
because
apparently
a
lot
of
people
have
opinions
about
this.
It's
also.
O
On
the
other
hand,
it
was
a
like
a
beautiful
chance
of
of
receiving
feedback
and
also
like
of
receiving
constructive
feedback
which,
with
which,
without
that
this
standard
wouldn't
wouldn't
have
gone
where,
where
it
went
today,
so
I
initially
started
this
as
a
non-transferable,
token
specification,
and
basically
now
we
have,
we
have
like
moved
into
consensual
minting
and
into
like
yeah,
basically
like
having
the
the
signature
being
checked
by
both
the
sender
and
the
receiver,
and
you
know
we
are
actively
talking
about
all
of
the
Privacy
challenges
of
Soul
Bond
tokens,
and
so
this
has
really
become
basically
like
a
space
where
this
entire
standard,
all
the
silver
and
token
things.
O
O
Basically,
these
slides
are
all
a
Eve
magicians,
blog
post,
essentially
and
I
need
to
find
a
bit
more
right,
but
so
the
so
so
basically,
one
of
the
but
kind
of
like
one
of
the
one
of
the
problems
of
the
EIP
standards
process
is
that
it's
it
it's
it's
truly
permissionless
and
it's
open
to
everyone.
O
Essentially,
because
you
you
can
just
go
to
like
the
you
know
like
github.com
ethereum
eips
and
you
can
submit
your
own
EIP
and
as
long
as
you
are
complying
to
the
the
formatting
rules
and
you're,
like
you
know,
you're
like
receptive
to
the
to
the
feedback
of
the
EIP
editors
and
you're,
not
like
mean
to
them
or
whatever
you,
you
will
actually
get
your
document
merged
and
that
document
will
show
up
on
eips.etherium.org.
So
that's
really
cool
and
that's
really
a
strength.
But
it's
also
a
weakness
and
I.
O
Think
this
I
guess
it's
like
a
bit
of
a
famous
cartoon
in
the
in
the
in
the
standards
community,
at
least
where
you
know
like
there's
like
the
this
XKCD
comic.
You
know
where
there's
like
14
competing
standards
for
a
use
case
and
then
there's
this
one
guy
saying:
hey,
that's
crazy,
like.
Why
do
we
need
force
in
standards?
We
should
have
one
standard
that
has
all
of
the
that
addresses
of
the
use
case
and
suddenly
we
have
like
15
standards
right.
O
O
On
one
side
we
have
like
the
strength,
the
openness
and
also
this
like
yeah,
it's
almost
like
a
Spam
problem
or
whatever,
but
I
wanna,
I,
wanna,
I,
wanna,
still
motivate
and
I
wanna
I
wanna
say
that
I
I
find
this
actually
awesome
and
I
find
it
awesome,
because
I
think
that
there's
a
difference
between
a
a
temporarily
emergent
consensus
and
a
consensus
that
is
more
like
spontaneous
and
probably
like
from
this
kind
of,
like
you
know,
like
group
or
a
committee
of
experts,
and
so
I
I've
tried
to
visualize
that,
with
the
two
different
kind
of
approaches,
the
two
different
extremes.
O
So
to
say
where
you
know
on
one
side,
we
have
more
like
a
market
driven
adoption
where
the
individual
kind
of
makes
the
decision
by
themselves
they
they
do
all
of
the
due
diligence
and
and
they
come
to
the
conclusion
that
they
want
to
use
the
standard
and
then,
on
the
other
hand-
and
this
is
maybe
true
for
yeah,
like
more
I-
think
like
groups
that
have
to
make
decisions
rather
quickly
and
and
like
yeah
like
close
to
time.
I
think
you
have
this.
Basically,
this.
O
This
spontaneous
committee
consensus
where
you
know
51,
can
basically
overrule
the
49
and
I
and
I
want
to
make
I
I
just
want
to
kind
of
make.
This
argument
that
you
know.
O
I
I
believe
that
the
temporarily
continuously
emerging
consensus
is
actually
the
the
cooler
one,
the
the
one
that
has
like
a
that
ends
up
having
like
a
stronger
signal
over
time
and
that's
because
I
I
mean
there's
one
hecky
way
of
just
like
proving
that
and
that's
that,
if
you
consider
like
how
organizations
are
run
today,
then
it's
probably
mostly
in
like
this
51
51
consensus,
style
right
and
then
on
the
other
side.
You
have
this
totally
chaotic
evolutionary
kind
of
thing
that
that
is
the
market.
O
That
somehow
also
figures
out
like
what
is
the
best
decision,
but
completely
different
and
not
by
talking
to
each
other
and
so
I,
I.
Think
and
I
mean
by
no
means
is
this
Financial
advice,
but
I
I
would
always
bet
on
the
market
and
not
on,
like
an
individual
committee
actually
and
and
so
I
I
think,
that's,
that's,
actually,
the
better
the
better
approach
and
and
and
also
I
mean
I
guess
it's
also.
O
And
so
so,
the
question
is,
though,
like
how:
how
can
we
overcome
this
this
this
immutability
of
of
contracts,
and
how
can
we
actually
still
innovate
on
those
standards?
O
And-
and
this
is
especially
true
with
with
all
of
the
like
this-
you
know
all
of
the
eyeballs
that
that
have
have
like
went
into
the
nft
space
and-
and
you
know,
kind
of
this
difficulty
of
of
innovating,
with
the
standard
and
and
I
mean,
sadly
also
with
being
non-compliant
to
the
standard
and
just
trying
to
grow
externally
from
standards
and
and
so
I
think
immutability
does
not
necessarily
mean
stagnation,
I
I
think.
O
Actually
there
is
now
we
are
starting
to
see
a
pattern
emerged
where
people
are
starting
to
really
upgrade
the
standard
and
they're
doing
it
in
a
way
where
they
are
basically
like
yeah,
basically
bolting
kind
of
this
one
lock
to
the
other,
almost
like
a
like,
like
in
a
I,
don't
know
on
these
bridges
that
sometimes
you
can
see
as
a
tourist
kind
of
thing,
so
so
I
think
over
the
last
half
a
year.
That
has
really
happened.
O
So,
for
example,
we
now
have
a
standard
event
for
emitting
a
an
event
when
the
metadata
is
updated
in
in
an
nft
standard,
and
that's
the
one
on
the
top
right.
It's
the
4906
that
essentially
just
emits
an
event.
We
now
have
a
very
interesting
standard
for
that,
basically
splits,
the
user
and
the
owner
into
two
different
groups
and
I
think,
especially
with
you
know,
with
d-soc
kind
of
making
us
aware
that
there
are
only
that
that
there
are
like
subsets
of
ownership.
O
Where
kind
of
ownership
represents
this
bucket
of
right
and
then
you
know
you
can
have
fructose
and
your
kind
of
users
and
abusers,
and
so
on
this.
This
is
starting
to
become
really
really
interesting
right.
We
have
like
different
kind
of
roles
that
could
interact
with
the
nft
and
then
this
could
have
like
different
economies,
and
so
that's
I
want
to
give
a
shout
out.
O
That's
4907
and
then
I
guess
maybe
like
a
a
more
Infamous
one
is
the
is
the
royalties
one
and
it's
the
2980
81
and
that's
basically
an
optional,
an
an
optional
royalties
location
mechanism
for
nfts
that
is
implemented.
I.
Think
in
in
many
nft
marketplaces
and
and
again
I
I
just
want
to
highlight
that
I
think
it
is
definitely
possible
to
upgrade
these
things
and
like
we
are.
We
are
doing
that.
I.
O
Just
think
that
probably
the
time
Horizon
that
we're
looking
at
this
and
where
you
know
we're
like
drawn
to
being
a
bit
more
pessimistic,
I,
think
maybe
we
or
I
mean
personally
maybe
I
have
to
be
more
patient
and
just
like
trust
in
the
process
and
yeah
I
guess:
I
have
five
more
minutes,
so
I'm
also
gonna,
of
course,
I'm
gonna
shill
a
a
standard
that
I
did
myself,
which
is
the
minimum
Soul
Bond
token,
and
it
works
in
the
exact
same
way
where
basically,
we
are
extending
and
even
breaking
the
EAP
721
interface
and
essentially
we're
allowing
people
to
lock
an
nft.
O
And
then
we
also
have
this
view
function
that
allows
you
to
always
check
whether
a
token
is
locked
and
the
purpose
for
this
is
that
that,
if
you
were,
if
you
were
to
just
use
like
the
plane,
721
standard,
which
actually
it
has
a
kind
of
like
a
small
line
in
it,
where
it
says
like
that
these
nfts
can
also
be
they
can
be
used
as
a
reader
like
a
read-only
registry.
The
problem
is
that
indexes
and
wallets,
and
so
on,
wouldn't
really
recognize
it,
because
a
computer
cannot
reason
from.
O
Let's
say
you
know
the
transfers
rewarding
to
you
know.
This
thing
is
like
locked,
because
it
could
also
be
that
you
have
done
like
something
else
like
something
something
else
wrong.
You
know,
and
so,
therefore,
the
error
might
be
referring
to
something
else.
So
I
I
personally
think
that's
useful
and
that's
final
now
also,
and
it's
building
on
721
yeah
I
mean
now
I'm
at
17
minutes.
The
next
we're
gonna
have
the
next
speaker.
O
M
Do,
you
have
a
because.
G
P
Okay,
thank
you
for
coming
here.
So
I,
it's
a
yo
I'm,
going
to
present
a
very
simple
proposal
and
kind
of
to
explain
it.
I
wanted
to
show
a
demo
and
I
wanted
to
show
it
in
real
time,
but
the
Wi-Fi
make
me
so
made
me
realize
that
I
should
probably
have
it
already
done
and
show
you
the
result.
P
So,
basically,
the
proposal
is
to
improve
so
what
I'm,
building
I'm
building
a
indexer,
so
that
kind
of
take
all
the
event
of
a
contract
and
contract
the
state,
which
is
our
most
a
smart
contract
system
under
State
for
the
claim
for
yeah
for
basically
having
that's
all
about
it,
and
most
projects
use
a
backend
which
is
at
odd
with
the
vision
of
of
decentralized
application.
P
So
yeah,
my
idea
was
simply
let's
index
in
the
browser
and
of
course
it
doesn't
work
for
everything
because
of
the
scale
of
some
of
these
of
these
systems.
So,
for
example,
if
you
wanted
to
index
or
the
nft,
you
could
do
in
the
browser,
but
it
will
take
a
while.
P
But
for
some
other
case
it
actually
worked
very
well
and
so
I
was
doing
so.
I
have
this
game,
so
the
whole
state
of
the
game
is
actually
here.
So
you
have
all
the
fleet
is
this
game
in
space
you
have
planet
and
fleets
again,
there's
two
main
things
and
it's
like
I
think
this
state
is
around
seven
megabyte,
but
it's
not
actually
I
didn't
Implement
a
full,
so
I
have
an
index.
I
have
the
same
index
of
running
on
the
graph
and
I
didn't
finish
to
implement
it
fully.
Here.
P
That's
why
I
expect
maybe
to
get
to
20
megabytes
of
State
and
I
can
on
a
normal
Network
I,
don't
know
what
normal
means,
but
it
cannot.
P
It
took
five
seconds
to
think
the
whole
thing
and
if
you
can
obviously
but
I
made
an
assumption
that
in
my
in
my
game
there
it
is
notion
of
time
so
every
event,
so
the
state,
the
the
contract
will
kind
of
lazily
update
per
time
and
I
think
it's
quite
a
common
thing
in
it's
my
contract
and
unfortunately,
when
you
fetch
the
logs,
which
is
a
mechanism
by
which
you
index
and
manage
to
get
back
the
state.
P
All
this
event,
basically
with
you,
don't
have
access
to
the
timestamp
at
which
they
open.
It's
just
some
reason.
They
didn't
so
to
add
that
so
there
is
a
blockage
block
number,
but
there
is
no
block
timestamp
and
so
my
game.
Actually,
when
I
I
need
the
timestamp
and
so
because
I
don't
have
the
timestamp
in
the
logs
I
get
like
20
000
events
here
and
what
I
need
to
do.
P
Then
I
need
to
request
20
000
times
depending
I
mean
a
bit
less
because
you
can
have
same
event
an
event
in
the
same
block.
But
you
I
have
to
request
that
on
top
and
because
it's
a
in
browser
indexer
it
use
eip119393,
which
is
like
the
the
wallet
interface
and
I,
cannot
do
bat
request.
I
have
to
do
all
these
requests,
and
so
I
have
this
version.
We
actually
still
running
from
last
time
and
sometime
here.
I
would
because
the
RPC
is
not
a
piece
that
time
so
the
RPC
of
metamask.
P
Because
again
you
have
it's
a
juicy
static
web
page.
There
is
nothing,
no
back-end
and
it
all
only
rely
on
the
fact
that
the
user
have
a
eip1193
wallet.
P
In
that
case,
it's
metamask
and
if
you,
if
you
look
at
my
settings,
It's
actually
an
RPC
somewhere
else,
but
so
it's
still
querying
all
of
these
to
get
the
timestamp
while
the
other
one
had
been
finished
a
long
time
ago,
and
only
actually,
you
see,
580
request
is
actually
300,
because
the
other
one
now
is
just
to
get
the
latest
block
and
nothing
is
really
happening
in
that
game
right
now,
while
this
one
is
still
like
fetching
the
the
state,
so
it's
going
to
reach,
probably
20
000
to
sync
or
maybe
even
more
yeah.
P
So
so
the
proposal
I
wanted
to
show
you
a
kind
of
a
really
example.
But
the
proposal
is
is
basically
to
add
this
to
the
Json
object.
So
it's
a
very
simple
change.
You
can
do
in
a
in
your
node,
so
in
goatorium
or
what
whatever
and
so
actually
finally
enough,
like
team
pushed
me
to
go
to
the
core
Dev
meeting
the
other
day
and
actually
I'm
going
to,
and
so
we
are
doing
interesting
discussion
about
it,
but
so
I
kind
of.
P
You
must
so
what
I
could
do
is
that
I
could
add
the
timestamp
to
the
to
the
event
itself.
But
obviously,
when
you
do
your
contract,
you
know
that
there
is
a
block
information,
so
there's
no
need
to
add
the
timestamp
to
the
event.
P
It's
just
a
waste
of
gas
and
time
is
an
important
aspect
of
many
smart
contracts
and
block
number
cannot
be
a
replacement
for
them
and
the
reason
why
is
because
block
number
timings
can
change
across
chains,
but
also
there
is
no
guarantee
that
a
single
chain
will
not
keep
it
and
you
could
probably
emulate
an
average
block
time
using
smart
contract
itself,
but
it's
kind
of
a
ugly
work
around
and
black
block
times
them
already
easily
available,
like
the
block
cache
or
the
block
number
and
another.
P
So
I've
been
discussing
about
a
few
people
here,
but
this
is
extra
data
you
have
to
put
in
in
the
log
object,
but
it's
small
and
the
alternative
is
to
to
fetch
all
of
these
anyway.
P
P
So
when
I
mentioned
them,
I'm
not
saying
I,
don't
want
them
actually
I
want
them,
but
I
feel
they.
They
will
not
replace.
P
Thank
you
so
yeah.
P
Basically,
when
alternative
is
to
add
batch
about
API
for
Erp
1193,
it
was
actually
part
of
the
conversation
initially,
but
it
was
dropped,
but
I
think
it's
it's
a
valid
one
to
have,
and
but
my
opinion
it
doesn't
offer
the
same
Advantage
as
having
the
Block
timestamp
in
the
log
and
another
EIP
that
I
didn't
see
yet
is
to
have
a
great
graphql
API,
so,
basically
an
alternative
to
eip1193
and
with
graphql
you
can
ask
what
you
want,
which
make
it
more
efficient
as
well
for
transferring
data.
P
So
if
you
don't
care
about
the
timestamp,
you
don't
need,
and
actually
this
one
could
really
by
actually
solving
the
first
one.
So
this
one
is
really
an
alternative,
but
I
I
don't
see
any
reason
to
just
add
another
one,
especially
I.
Think
graphql
is
not
reported
in
all
the
node
implementation
today
and
so,
as
I
say.
I
went
to
the
call
Dev
and
we
had
the
feedback
and
the
main
feedback
was
that
hey?
P
There
is
no
point
to
do
it
because
we
are
going
to
make
the
logs
not
being
accessible
after
a
certain
time,
and
so
the
argument
was
like
you
will
never
have
that
many
log
and
so
requesting
the
timestamp
anyway
won't
matter,
and
so
my
reply
is
that
so
it's
an
easy
change,
so
my
next
section
would
be
to
make
a
PR
I
guess
for
goiterium
and
and
the
number
of
log
actually
can
still
be
significant.
P
P
If
we
we
don't
have
access
to
past
logs,
how
do
we
are
going
to
index
in
a
decentralized
manner?
Because,
of
course,
if
you
have
a
backhand,
you
know
you
solve
your
problem,
but
we
we
don't
want
to
have
a
backend
right.
You
want
to
be
able
to
use
tornado
cache
from
your
browser
without
relying
for
with
only
relying
on
your
node
and
so
so
I
think
I.
P
Don't
know
for
me
that
I
would
like
to
to
have
discussion
as
a
community
how
we
can
so
solve
that,
like
I
know,
there
is
work
on
the
around
like
right
now
over
portal,
since
portal,
Network
and
so
but
I
think
it's
important.
We
we
understand,
like
the
point
of
view
of
application
developer,
that
don't
want
to
be
involved
with
our
application
once
it's
launched
and
another
thing
yeah
so
I
mentioned,
like
most
systems,
are
already
rely
on
the
log
events.
P
So
we
need
this
system
anyway,
and
even
some
EIP
have
been
using
it
to
kind
of
speed
up
the
the
need
or
kind
of
minimize
the
gas
cost
which
is
eip1155,
like
you
can't
query
the
balance
of
all
the
token
that
the
user
owned
from
the
smart
contract
and
so
you're
always
a
smart
contract
to
be
more
efficient,
and
it's
because
it
has
been
the
result
of
everybody
acknowledging
that
we
use
logs
and
event
to
reconstruct
the
state,
but
that,
interestingly,
one
of
the
things
about
in
the
code
of
meeting
was
that
that
was
not
the
vision
initially.
P
But
now
we
evolve.
We
understand
what
we
need
and
so
I
think
yeah
that
I
I
would
land
with
right
with
like
yeah,
let's
discuss
about
how
to
solve
this
being
able
to
rebuild
the
state
from
from
the
client,
it's
kind
of
all
for
me,
yeah
any
question.
P
P
So
the
first
version
of
the
game,
the
first
Alpha
I,
didn't-
have
an
indexer
using
the
log
and
I
was
fetching
all
the
data
and
it
is
not
actually
is
not
efficient
either
because
especially
list
of
things
and
and
you
are
wasting
gas
to
support
that
in
many
cases
like
so
this
is
what
I
mentioned
eip1155
not
having
access
to
the
balance,
and
we
could
also
think
about
yeah,
seven
to
one
innumerable
extension,
which
add
actually
a
lot
of
gas
costs
overall,
so
I
and
I
think
from
what
we
have
seen
everybody
like
even
to
to
do
that
role.
P
So
I
think
that's
what
we
should
do
and
minimize
the
role
of
the
yeah
minimize
the
gas
costs
we.
Basically,
that
was
when
we
minimize
the
things
that
happened
on
the
Chain.
If
we
can
do
it
of
Shane,
but
these
assume
we
have
a
system
to
retrieve
it.
That's
why
I
think
it's
important
to
discuss,
because
maybe
the
conclusion
is
like.
Oh
actually,
we
cannot
and
we
have
to
pay
gas
to
do
that,
but
I
hope
it's
not
the
case.
Q
Thank
you:
okay,
hi
everyone,
I'm,
Annette
and
I
would
like
to
quickly
just
say
hi
to
you
and
I'm,
sorry
for
being
late,
I
was
recording
podcast,
so
I
just
ran
downstairs
from
a
recording,
but
I
would
love
to
welcome
you
guys.
Q
On
this
session
it's
been
a
pleasure
to
host
this
one
with
Team,
who
is
a
huge
like
who
is
yeah,
no
wait,
you're
very
involved
in
the
nft
ecosystem
and
I'm
just
going
to
quickly
introduce
myself
so
I'm
in
it
and
I
used
to
work
or
I
used
to
create
the
nft
standards.
The
WTF
documentation
for
all
nft
related
erc's
I
did
a
huge
research
on
that
I
wrote
many
articles
which
are
up
on
my
medium
I'm.
Q
Sorry,
I
don't
have
a
slide
because
I
wasn't
really
not
thinking
about
this.
Also,
this
session,
we
like
put
this
together
when
I
was
literally
on
my
flight
down
to
the
Bogota
from
Europe.
Q
So
this
was
like
extremely
last
minute
and
I'm
so
grateful
for
you
all
to
be
there,
as
this
was
like
totally
like
last
minute.
We
literally
put
it
up
like
a
couple
days
ago
and
I'm
just
going
to
probably
quickly
just
tell
you
a
little
bit
about
like
erc's,
especially
is.
There
was
a
lot
of
misconceptions
between
like
what
is
EIP
and
what
is
ERC
and
I'm.
Q
Just
going
to
use
my
article
that
I
released
coupled
weeks
ago,
you
know
like
September
14,
which
was
like
a
month
ago,
which
was
the
guidelines
on
how
to
write
an
IP
so
I'm
just
going
to
quickly
guide
you
through
this.
A
specialized
I
noticed
that
there
isn't
many
misconceptions
of
like
what
the
heck
is
like
AP
and
what
the
heck
is
like
ERC
and
what
is
like.
The
difference
between
AIP
and
ERC.
Q
So
EIP
stands
for
ethereum
improvement
proposal
and
it's
sort
of
like
a
standard,
or
it's
like
a
way
how
standards
or
like
improvements
or
like
the
ethereum
itself
gets
improved.
There
are
many
categories
of
eyepiece
itself.
One
of
them
is
the
ERC
ear
systems
for
ethereum
requests
for
comments
and
that's
sort
of
like
the
main
thing,
and
the
erc's
are
also
the
application
layer
aips.
Q
So
if
you
guys
are
building
anything
like
the
application
layer,
like
decentralized
application,
if
that's
not
a
like
a
familiar
word
with
you,
so
that's
what
ERC
stands
for
and
then
oh
my
gosh,
what
I'm
even
gonna
talk
about
I'm
sorry
I
did
not
like
prepare
anything
for
this,
but
what
I'm
just
going
to
talk
about
is
probably
just
check
out
the
wiki.
There
are
many
cool
things
in
the
wiki
itself,
but
there
are
many
cool
standards.
Also
ERC
1155
is
probably
my
favorite
ERC.
Q
Is
that
something
that
people
ask
me
for?
Oh,
my
gosh
I'm
talking
so
random.
Sorry,
but
also
huge,
could
also
attempt
to
like
putting
this
session
up
until
like
inviting
you
all
to
speak
and
to
have
a
lightning
interview.
You
guys
all
opportunity
to
just
tell
us
a
little
bit
about
your
ERC
itself
and
especially
I'm
very
excited
about
the
development
that
steam
has
been
sort
of
like
pushing
from
the
cell
bound
token
perspective,
but
also
from
like
a
is
from
nft
standards.
Community.
Q
We
just
started
like
a
in
like
I,
don't
know
two
years
ago,
I
think
many
different
communities
emerge.
One
of
them
was
the
music
nft
Community,
which
is
a
very
huge
one
and
I'm,
not
sure
if
we
have
somebody
from
music
NFTA
industry.
Here,
okay,
we
have
the
two
speakers
there
awesome.
Q
Thank
you
guys
for
presenting
music,
and
if
this
here,
it's
amazing,
to
see
a
music
NFD
space
involved
as
well
from
the
standards
perspective,
but
then
also
the
soul,
bound
tokens
which,
for
me
feels
a
little
bit
controversial
like
are
salmon
tokens
even
like
nfts
itself.
I
would
say,
probably
not
even
but
that's
maybe
too
controversial,
take
and
then
like
a
bunch
of
different.
Q
No
I'm
like
talking
so
Random
but
I
would
say
just
go
to
my
medium
and
then
you
can
like
find
a
bunch
of
like
other
stuff.
There
yeah,
my
recent
article
was
unlike
do's
and
don'ts
of
the
AAP
writing
or
like
how
to
write
AP,
which
I
highly
recommend
you
all
to
check
out.
I
can
like
share
the
QR
code
afterwards
with
like
the
article
itself.
If
anybody
is
interested
in
that,
but
then
yeah
definitely
check
out
the
wiki.
Q
That's
where
you
can
find
all
information
I,
don't
think
so
I,
if
I
have
like
cell
bound
tokens
there,
because
I
literally
had
no
time
to
like
maintain
the
wiki
lately,
because
I
just
learned
another
mind
like
a
month
ago,
but
I'm
very
happy
to
see
more
people
to
get
involved
in
the
community
and
like
taking
like
sort
of
taking
care
of
my
baby
and
like
pushing
it
forward
and
I'm.
Q
Very
grateful
for
even
like,
as
I
see,
Ian
there
from
Zora,
and
he
was
one
of
the
first
people
who
got
involved
with
the
NFC
standards
community.
And
he
was
like
very
happy
to
like
answer
all
the
questions
and
like
in
like
get
engaging
the
discussions
in
the
community
and
I'm
extremely
grateful
for
you
all
to
have
you
there
until
just
like,
speak
up
and
like
represent
the
AP
itself
and
like
improve
the
ecosystem
from
the
ERC
like
the
ERC
ecosystem
and
like
building
up
on
the
nft,
erc's
and
I.
Think
yeah
we
have.
Q
All
of
them
should
be
like
the
NFC
related
erc's.
So
thank
you
all
for
taking
the
baby
that
I
basically
created
the
nft
standards
Wiki
in
the
community
I'm
like
I'm
building
up
on
and
to
all
of
you
for
like
showing
up
to
this
session
and
representing,
and
especially
this
was
like
extreme
last
minute,
like
guys
like
wow.
Thank
you.
G
O
You
thank
you
Annette
and
yeah
next
speaker,
please,
Raul
Raul
is
actually
going
to
talk
about
a
standard
that
I
have
co-authored,
so
I'm
very
excited
about
this.
O
R
Hello:
everyone
I'm
gonna
start
my
timer,
so
I
have
a
reference
point
here
yeah.
This
is
my
first
time
actually
talking
at
Defcon.
This
is
my
second
Devcon
I'm
super
happy
to
be
contributing
back
and
sharing
knowledge
and
the
sparking
debate
and
ideas.
So
thanks
for
having
me
and
thanks
Tim
for
organizing
this
as
well
Annette,
so
today,
I
wanted
to
talk
about
eip4973,
Badges
and
de-financializing
towers
and
Beyond
as
well.
So,
firstly,
a
little
bit
about
me.
R
My
name
is
Rahul
I'm,
co-founder
of
this
little
baby
company
that
we
started
called
autospace
and
I've
been
in
the
crypto
ecosystem.
Since
2016.
I
started
off
with
my
journey.
Also
with
music
I
was
building
nfts
to
assetize
music
royalties
back
in
2017
did
not
work,
then
moved
on
to
SoundCloud
got
fomo
with
those
and
I
got
back
to
crypto
full
time
now,
so
I
think
I
want
to
start
with
how
this
year
had
started
actually
like.
R
We
think
that
there's
this
paper
called
decentralized
Society
and
it
centered
our
attention
on
this
notion
that
web3
centers
around
expressing
transferable
Financial
assets,
rather
than
encoding
social
relationships
of
trust.
When
everything
is
transferable,
things
can
be
sold
to
the
highest
bidder.
So
you
know
we
wanted
to
challenge
that
and
that's
that's
what
that
problem
is
what
gave
to
this
idea
and
working
with
Tim
on
this
EIP.
R
What
we
call
account
bound
tokens
not
to
be
confused
with
soul,
bound
tokens
or
you
may
be,
but
semantically
speaking,
we
kind
of
you
can
Define
this
as
non-transferable
tokens
bound
to
an
account
and
then
our
goal
here
was
to
really
it's
very
semantic,
based
again
like
to
create
special
ownership,
Deeds
or
creating
like
permission
Primitives,
but
really
to
create
a
new
ownership
experience
through
this
primitive.
You
can
read
more
about
this.
We
have
written
a
more
extensive
article
on
this.
R
However,
ever
since
we
started
we
saw,
we
noticed
this
account
on
tokens
debate
had
kind
of
like
exploded.
You
know,
there's
sold
out
tokens,
there
was
Community
bound
tokens,
ens
name
bound
tokens
now
human
bound
tokens.
R
What
we're
actually
seeing
is
this
non-transferable
tokens
is
a
spectrum
and
you
you
can
Define
what
is
being
bound
to
and
what
is
that
binding
strategy,
and
you
can
kind
of
this
is
this-
is
where
the
explosion
of
ideas
are
topic
and,
as
a
builder
I
feel
like
some
of
the
nfts
nft
spec
is
kind
of
over
optimized
for
what
we
actually
express
our
ideas
through.
R
So
we're
kind
of
like
craving
for
new
tools
and
new
new
instruments
to
kind
of
like
build
our
ideas
right
and
at
autospace
we,
we
call
something
smaller,
something
simpler.
R
We
call
them
badges,
which
is
powered
by
eip4973,
accountable
tokens,
so
I
want
to
dive
right
into
it
like
because,
because
ever
since
Soul
bound
tokens
was
kind
of
like
really
a
Hot
Topic,
it
kind
of
did
sparked
like
a
lot
of
hot
debates
or-
and
it's
it's
debates
are
great
like
because
it
really
helped
us
intellectually
navigate
the
space
and
like
get
like
a
pluralistic
opinion
from
various
parties.
One
of
the
first
things
or
concerns
they
put
out
like
I
think
was
permanence.
R
R
What,
if
I
lose
access
to
my
key
wallet
or
I,
want
to
like
I
mean
to
my
wallet
or
do
I
want
to
change
my
wallet
and
lastly,
this
more
popular
active
debate
about
like
verifiable
credentials
and
abts
on
Chain
versus
off-chain
identity.
So
lots
of
things
very
simply
put
there
we've
written
again
lots
of
detail
on
this,
but
I
can
kind
of
summarize
this.
These
were
the
design
decisions
that
helped
us
the
input
into
erp4973
so
permanence.
R
When
we
talk
about
in
general,
what
we
baked
into
it
is
burning
and
dissociation
from
the
so
the
owner
of
the
Soul
bomb,
token
or
accountable
token
can
dissociate
from
from
the
token
itself
and
then
lack
of
consent.
Non-Transferable
tokens
through
or
commonbond
tokens
cannot
be
air
dropped.
R
They
have
like
good
use
cases
and
it's
really
we're
in
the
early
stages
of
kind
of
like
the
debate
and
application,
so
I'm
kind
of
excited
of
what
would
actually
come
out
of
this
next
year,
so
like
on
a
very
high
level
like
I'm
oversimplifying
this,
but
like
you
can
see
the
key
differences
like
if
you
look
at
like
various
angles
or
various
Dimensions
right,
if
you
like,
a
transferability,
consent,
removal,
issuance
exploration
and
fungibility,
but
I
think
I
want
to
bring
Focus
to
where
consent
and
issuance
that's
that's
really.
R
What
we
wanted
to
like
did
not
want
to
compromise
on
there
when
it
came
to
a
non-transferable
token
design.
So
let's
Dive
Right
In
like
so.
This
is
the
erc4973
at
a
glance
you
could
just
npm
install
that
very
easy.
So
that's
a
very,
very
light.
Interface
right,
like
it's
just
expresses,
so
we
can
kind
of
like
dive
into
what
this
actually
does.
So,
firstly,
this
top
section
right.
This
transfer
event
balance
off
on
or
off.
This
is.
R
This
was
mainly
to
ensure
backward
compatibility,
backward
compatibility
to
nft
in
general,
so
we
actually
implement
the
ierc
721
and
my
metadata,
so
one
of
the
things
that
building
this
EIP.
Actually
it
was
super
amazing
learning
experience.
We
actually
didn't
have
the
transport
event
first,
and
then
we
were
kind
of
missing
all
these
stuff,
like
etherscan,
was
not
showing
the
log.
Events,
for
example,
or
metamask,
was
not
showing
the
the
the
interesting
metadata.
So
we
we
actually
started
using
the
transport
event,
which
is
such
a
simple
change.
Everything
started
working
automatically.
R
You
know
like
the
support
the
interoperability
actually
came,
came
for
free
and
that's
one
of
the
reasons
we
went
back
to
the
transfer
it,
although
in
a
non-transferable
event
token
you
can
argue
that
transfer
has
no
makes
no
sense,
but
this
was
one
of
the
design
decisions
that
we
learned
like
to
kind
of
Ensure
backward
compatibility
and
the
next
one,
and
this
is
really
the
where
the
consent
really
comes
into
play.
R
So
if
you
see
the
function,
there's
like
three
three
parameters:
right
like
the
from
the
URI
and
the
signature.
So
we
call
this
the
take
flow,
so
you
cannot
actually
mint
in
a
compound
token,
unless
it's
two
parties
involved.
So
it's
like
a
peer-to-peer
fully
mutually
consented
protocol
right.
So
you
can
think
about
this
as
like:
okay,
Alice,
designs
and
ABT,
described
by
aspect
which
is
hosted
by
the
token
URI
Alice
then
wants
to
issue
the
ABT
to
Bob.
R
Alice
can
only
do
that
if
this,
if,
if
he
signs
using
aip712
signature
and
provide
that's
capturing
her
consent,
so
now
that
one
party
consent
is
established,
Bob
can
now
take
the
SVT.
He
would
then
basically
authenticate
by
providing
the
circuit
URI
the
signature
from
Alice
and
then
prove
that
I
can
take
this,
so
this
is
in
Auto
space.
We
actually
call
this.
The
allow
list
flow
so
I'm,
just
like
adding
people
to
an
allow
list.
I'm
like
signing
people
for
to
a
badge
and
the
give
flow,
is
actually
its
inverse.
R
It's
it's.
When
the
when
Alice
designs,
an
ABT
Bob
wants
the
ABT
so
signs
it
and
then
Alice
can
now
give
the
ABT
to
ball.
So
this
in
all
the
space
we
call
it
the
airdrop
flow.
So
if
you,
if
you
give
a
badge
you
can
just
like
basically
I
want
this
and
100
people
say
I
want
this.
You
can
actually
do
an
airdrop
through
through
an
account.
H
R
Token
and
the
last
bit
is
this
one:
it's
the
unequiv.
This
basically
means
complete
dissociation
from
the
account
balance
token,
so
only
the
owner
of
the
token
can
dissociate
so
that
these
are
like,
basically,
the
fundamental
building
blocks.
That
kind
of
like
help
those
create
this
very
bare
minimum,
very
simple,
very
highly
functional,
highly
utilitarian,
EIP
4973
and
then
Auto
space.
R
R
So,
moving
on
to
the
other
side
of
what
that
the
topic
I
wanted
to
chat
about
as
well,
which
is
the
financialization
right
at
Auto
space
where,
like
the
badges,
we
see
this
in
like
six
six
areas,
how
we
can
use
a
non-transferable
token,
a
membership
model,
non-financial
rewards
and
recognition,
onboarding
quests
to
end
with
the
badge,
assess
the
reputation,
more
nuanced
governance
models
and
then
unlock
access
permissions
of
these
batch
holders,
but
I
want
to
bring
attention
to
this
script.
R
This
bit
of
that's
non-financial,
rewards
and
recognition.
I
mean
I
think
we
can
all
agree
that
the
ecosystem
is
like
hyper
financialized
and
we
want
to
challenge
that
status
quo.
Like
you
know
you,
if
you're
in
a
position
of
wealth
and
influence,
you
can
buy
tokens
and
if
your
community
is
basically
to
design
their
governance
on
a
one
token,
one
vote
system,
so
person
of
influence
can
basically
assert
their
entire
influence
through
that
power.
So
it's
basically
plutocracy
right.
R
So
we
want
to
challenge
that
and
we
want
to
move
towards
more
towards
the
one
human
one
vote,
but
for
us
we
see
the
one
account
one
vote
as
a
necessary
step
to
kind
of
get
to
one
human
one
goal,
and
then
this
is
really
Fresh.
Off
The
Grill
right.
This
happened
like
a
few
days
ago.
R
The
mango
markets,
the
hacker
exploited
mango
for
100
million
hacker,
turns
around
opens
to
return
the
funds
and
he
used
32
million
of
those
votes
to
say
yes
to
his
own
proposal,
because
he
had
those
and
then
executed
that
proposal
and
I
think
we
can
do
better
than
this
right
like
it's
a
that's
a
no-brainer
I
feel,
but
really
the
takeaway
that
I
wanted
to
kind
of
here
have
here
is:
let's
move
away
from
the
one
token
one
vote
system
and
away
from
plutocracy
and
I.
R
Think,
let's,
let's,
let's
explore
new
forms
of
governance.
I
think
it
is
no
one-size-fits-all
I
think
we're
in
a
stage
where
the
ecosystem
is
growing
so
so
fast
and
we
as
Builders
we.
We
definitely
need
more
instruments
at
our
toolkit.
We
need
to
spark
debate.
Yeah
apply
rigor,
get
feedback,
so
I'm
glad
that
I'm
kind
of
like
getting
a
lot
of
that
here
and
they've
gone.
So
that's
that's
a
lot,
that's
it
and
that's
a
Dali
otter.
We
are,
we
don't
work.
We
just
create
these
value
orders.
R
Most
of
the
time
we
are
as
surprising.
My
team
is
surprisingly
good
at
creating
daily
orders.
You
can
scan
this
it'll.
Give
you
more
information
about
us,
yeah,
that's!
That's!
It.
O
F
Hey,
can
you
elaborate
a
bit
on
the
account
through
the
recovery
part.
R
Yeah,
absolutely
so
so
one
of
the
things
that
account
recovery,
it
actually
came
up
pretty
actively
in
the
debate
like
hey
if
I
have
badges.
In
my
account,
if
you
have
non-transport
work
tokens,
what
if
I
want
to
rotate
my
keys,
then
how
do
I
do
this
and
that's
one
of
the
criticisms
that
were
pointed
at
sold
down
tokensen
initially,
quite
frankly,
I
feel
this
is
a
this
is
not
a
soul,
bound
problem
or
a
soul
bound
token
problem.
This
is
a
entire
protocol.
R
One
is
a
proactive
recovery
and
a
reactive
recovery,
but
we
are
offloading
this
to
the
community
in
our
protocol,
at
least
so
it's
basically
like
moving
from
moving
your
phone
like
if
you're
import,
you're,
putting
your
number
from
one
phone
to
the
other,
so
you're
actually
doing
a
proactive
action,
so
you
have
to
kind
of
like
prove
that
you
are
the
owner
of
this
account
and
the
account
that
you're
porting
over
to
but
the
way
we're
thinking
about
this
is
you
can't
transfer
these
tokens,
but
you
can
burn
all
the
tokens
as
the
owner
of
the
current
account
and
you
can
get
it
reissued
through
the
the
issuing
authority,
which
is
generally
the
communities
or
Dows.
R
The
other
aspect
is
reactive
recovery,
which
is
where,
like
I
lost
everything,
then
you
know
that's
a
tricky
one.
You
have
to
establish
with
your
like
your
dial,
for
example,
that
hey
I'm
the
same
person
behind
this
new
wallet
like
you
have
to
re-issue
it
and
one
of
the
models
we
are
looking
at.
There
is
reassurance,
but
the
community
perhaps
can
revoke
those
badges.
So
that's
that's
how
we're
kind
of
thinking
about
it.
Thanks.
K
Okay,
just
a
quick
thing
regarding
recovery
through
burning
and
then
reissuing.
It
would
be
awesome
if
there
was
a
way
to
do
that.
Atomically
yeah
right.
But
the
other
question
was
what
is
the
status
of
the
EIP?
Is
there
a
time
to
still
make
breaking
changes,
or
is
it
already
like
so
widely
adopted,
and
this
kind
of
relates
to
the
stagnation
discussion
but
I
think
it's.
R
Yeah,
that's
a
good
question.
I
should
have
actually
put
the
stats
on
it.
I
mean
people
are
already
using
it.
R
We've
seen
I,
don't
know,
maybe
like
a
150
300
hits
on
probably
somewhere
on
GitHub,
so
we
are
actively
thinking
about
backward
compatibility
when
we're
adding,
but
the
EIP
is
in
review
stage
at
the
moment,
yeah
when
and
now
we're
kind
of
talking
about
expiration
as
a
as
to
be
baked
into
a
badge
where
you
can
give
like
a
30-day
expiration
badge,
for
example,
especially
if
you're
like
joining
a
dial,
you
get
guest
badge.
R
For
example,
you
know
you
can
do
some
interest
action,
so
expiring
badge
is
something
we're
looking
at,
but
yeah
like
we
are.
This
is
one
of
the
forums
we're
hoping
to
get
feedback
on.
Like
you
know,
where
should
we
park
it?
Should
we
get
feedback
or
have
invest
in
extensions
and
like
because
there's
a
lot
of
utility?
This
can
deliver
in
its
current
form.
You
know,
and
then
it
would
be
strange
to
perhaps,
like
you
know,
stretch
this
timeline,
because
I
think
I've
seen
aips
go
for
years.
R
O
Yeah
I'm
just
gonna,
while
the
next
speaker
Sweetman,
is
going
to
set
up
the
the
laptop
and
so
on
I'm.
Just
gonna
walk
you
through
the
rest
of
our
timetable,
which
is
by
the
way
here.
So
next
up
is
sweetman.eath
and
he's
going
to
talk
about
music,
the
music
nft
engineer.
Then
we
have
Andres
who
is
going
to
talk
about
web3
the
web,
3
music,
nft
multiplayer
problems,
I'm
very
excited
about
that
I!
Think
it's
like
it
comes
out
of
water
and
music
research.
O
Then
we
have
Ian
who
is
going
to
talk
about
Rich
content
types
in
nfts
and
then
finally,
we
have
Francisco,
who
is
going
to
talk
about
a
like
a
very
recent
EIP
called
5267
I
think,
which
I
think
it
defines
the
domain
separator
of
EIP
712
so
yeah.
If
you're
familiar
with
that
I
guess
it's
you,
you
kind
of
understand
what
this,
if
not,
then
I
recommend
going
to
erps.etherium.org
and
reading
up
on
it.
Yeah.
Okay,
just.
S
T
O
While
we
are
setting
this
up,
I'm
just
gonna
talk,
yeah,
okay,.
S
Audio
function,
okay
got
a
little
background.
Music
I'll
keep
going
just
so
that
it's
not
just
me
up
here.
Talking.
S
S
First,
the
problem
you're
going
to
see
QR
codes
throughout
this,
the
ones
on
that
side
are
from
musicians
in
Latin
America.
If
you
want
to
support
creators
here
in
Latin,
America
scan
that
buy
the
nft
support
local
creators
on
this
side,
you'll
see
cc0,
music,
nfts,
100,
free
mint
on
different
chains
and
so
they'll
be
scattered
throughout.
If
you
want
some
nfts
momentum,
the
problem
don't
worry.
The
same.
Qr
codes
are
going
to
be
a
little
bit
hidden
in
here.
S
S
Up
top
you've
got
Zora
creator
in
the
middle
you've
got
catalog
and
down
at
the
bottom,
you've
got
sound
you'll
notice
that
they
each
have
different
metadata,
but
honestly,
there's
no
real
differentiation
between
the
metadata
of
a
music
nft
and
a
normal
nft.
In
most
cases
over
here
on
this
side,
you'll
see
the
music
metadata
standard.
This
includes
the
same
attributes
as
a
normal
nft,
in
addition
to
attributes
that
matter
for
music
attributes
like
lossless
audio
attributes
like
BPM
attributes
like
duration.
S
Next,
the
opportunity
another
set
of
nfts-
oh
yeah,
the
last
one
I'm
sorry
I,
didn't
I,
didn't
shout
out
the
Creator,
so
the
last
Creator
this
first
nft
is
caspiel.
We've
got
Colombo
in
the
audience
manager
of
cast
peel,
and
so
that
nft
is
from
a
musician
named
caspiel
who
dropped
on
Zora
Creator,
and
that
is
a
music
video
of
her
latest
music.
S
Video
reflejo
and
all
of
my
music
nfts
are
cc0
from
a
musician
named
Sagrado
based
out
of
Mexico,
my
favorite,
because
he
does
everything
cc0
this
next
one
over
here
we've
got
another
Zora,
nft
I
think
we've
got
tranky
in
the
audience
who
helped
a
Buenos.
Aires
Creator
named
well
created
a
platform
called
unun,
and
so,
if
you
scan
this
it'll
take
you
over
to
Unum
to
Mint
some
music
nfts
from
local
Buenos
Aires
creators,
and
this
one
is
another
one
from
Sagrado,
and
this
one
I
believe
is
on
polygon.
S
Last
one
was
optimism
this
one's
on
polygon,
the
opportunity
we
have
an
opportunity
right
now
to
standardize
music
metadata
right
now
it's
been
in
discussions.
You
might
have
heard
about
telegram
groups.
You
might
have
heard
about
different
chats
that
are
scattered
amongst
the
music
nft
ecosystems.
Maybe
you've
talked
with
Hi-Fi
Labs
about
their
music
nft
standards.
Maybe
you've
talked
with
Zora
there's
a
lot
of
different
standards
out
there.
We
have
not
really
reached
consensus
and
I
find
that
awesome,
because
there's
no
gatekeeper,
there's
nobody,
that's
telling
us.
S
S
How
you
can
help
again,
the
music
metadata
standard
is
not
something
that
we're
gonna
have
Sony
or
Warner,
or
some
record
label
is
going
to
come
down
and
say.
This
is
how
it
is.
It's
going
to
be
bottom
up
from
the
engineers
that
are
building
from
the
creators
that
are
choosing
what
platforms
to
build
on
each
of
us
as
individuals
is
choosing
which
memes
we
want
to
propagate
in
order
to
make
the
mess
the
best
metadata
win.
The
final
set
of
nfts
we've
got.
S
This
is
a
catalog
nft
from
a
Creator
named,
hey
Bella,
who
is
also
based
here
in
Colombia
in
Medellin,
and
this
one
is
an
arbitrim
nft,
the
same
nft
by
Sagrado
spread
the
memes
all
the
ethereum
Wizards,
all
of
you
Builders.
We
are
building
it's
important
that
we
propagate
proper
music
metadata
when
we're
building.
If
we're
giving
these
musicians
poor
metadata,
we're
setting
them
up
for
failure
in
the
long
term
as
Spotify
as
iTunes
as
these
other
big
platforms,
the
future
tapes,
the
spin
amps
are
indexing
music
nfts.
S
If
we're
not
putting
beats
per
minute.
If
we're
not
putting
keys,
if
we're
not
putting
the
credits
on
chain
we're
missing
out,
and
so
what
I've
been
working
on
is
I
cloned
the
Zora
metadata
render,
which
is
an
architecture
that
allows
us
to
decouple
the
ERC
721,
the
erc1155,
all
the
tokens
we
know
and
love
from
the
metadata
that
they
represent,
and
so
we
have
a
full
music
metadata
standard.
S
That's
fully
on
chain
deployed
on
ethereum,
mainnet,
polygon,
mainnet,
optimism,
mainnet,
arbitrim
mainnet,
as
well
as
test
nets
for
all
those
Chains
It's
live
the
contracts
are
verified.
It's
fully
running
on
a
platform
that
I
built
called
decent,
and
so
what
I'd
like
to
ask
the
community
here,
I'm
not
very
familiar
with
the
IPS
I'm,
not
really
familiar
with
what
we
do
as
a
community.
The
formal
way
I'm
really
used
to
building
with
the
musicians
on
the
ground.
S
I,
don't
know
if
we
need
an
EIP
for
like
proper
music
metadata
for
us
to
get
aligned.
I,
don't
know
if
we
just
need
to
talk
with
the
Zoras
to
properly
plug
in
the
music
metadata
render
into
the
Zora
stack
so
that
musicians
can
use
it.
Maybe
it's
just
me
writing
an
EIP
with
Hi-Fi
labs
and
getting
it
plugged
in
there
there's
a
lot
of
different
ways.
We
can
propagate
this
meme
out
into
the
ecosystem.
S
I,
don't
really
know
what
to
do
and
I'm
not
going
to
claim
that
I'm
like
the
king
of
all
this
I
just
would
like
to
have
the
conversation
more
and
so
I'd
like
to
ask
for
help
in
propagating
these
music
metadata
memes.
So
we
can
help
musicians
adopt
this
technology,
so
that
musicians
can
start
leveraging
these
web3
rails
that
make
us
and
the
technology
that
we
love
so
powerful
and
groundbreaking,
and
like
fundamentally
changing
the
world
that
we
know
and
love,
that's
it
Viva
La
Musica.
S
These
are
all
the
music
nfts
that
I
showed
throughout
and
then
these
are
a
lot
of
musicians
that
are
based
in
Argentina
and
Buenos
Aires
in
Argentina,
as
well
as
Colombia
that
I
work
with
on
a
regular
basis.
And
so,
if
you
want
to
talk
to
some
musicians
that
are
based
here
in
Latin
America
and
you
want
to
like
get
their
thoughts
or
help
them
out
or
talk
to
them
about
the
music
nfts
that
they're
making
I've
attached
all
their
Twitter
handles
above
so
please
reach
out
to
them.
S
R
Hi
I
was
wondering
like
how
what
was
your
process
in
navigating
to
to
the
EIP
like?
How
did
you
gather
information
about
like
music
metadata
is
a
very
complex
structure
right
like
and
there's
not
having
consensus
over
metadata?
This
sounds
like
a
classic
music
industry.
To
be
honest,
so
I
was
wondering
like
how
was
your
process
to
getting
to
the
the
stage
and
the
EIP
generally
to.
S
Be
clear,
there
is
no
EIP
right
now.
This
is
this
is
a
bunch
of
blank
data
I
copied
I
took
a
screenshot
of
eip721
and
I
blanked
out
the
data
to
just
kind
of
like
put
the
meme
in
your
head
as
something
that
we
can
do.
I,
don't
question
back
to
you.
Do
you
think
this
is
something
we
could
do
with
an
EIP?
Or
does
this
feel,
like
you
say,
like
the
music
industry?
Is
too
decentralized
for
us
to
come
up
with
an
eip4
music
metadata
standard,
I.
R
Think,
yes,
there
is
one
part,
that's
probably
up
for
like
off
Chain
versus
on
chain
I.
Think
if
you
have
that
perimeter
very
clearly,
I
think
this
is.
This
is
exciting.
S
Yeah
in
in
an
attribute,
I
didn't
talk
about
all
of
these.
All
of
these
decent
nfts
100
of
them
metadata,
is
on
chain.
So
one
of
the
awesome
Parts
about
l2s
is
it's
incredibly
cheap
to
store
all
metadata
on
chain,
and
so
we
can
store
that
entire
music
metadata
on
chain
for
less
than
a
penny,
and
so
musicians
that
are
based
in
Latin.
America
cannot
afford
to
do
transactions
on
each
mainnet,
but
by
offering
them
these
rails
to
be
able
to
create
music
metadata.
S
I'm
very
open
to
it
I'm
I'm
here
in
the
community
I,
my
entire
life
is
music
nfts,
and
so,
if
the
community
decides
that
we
want
an
EIP
I'm
about
it,
I'm
I'm
very
much
of
the
belief
that
I,
don't
I,
don't
want
to
say
like
this
is
the
way
I
like
hearing
like
the
music
metadata
standard.
I
didn't
come
up
with
that.
That
came
out
a
catalog
and
I'm
just
propagating
that
Meme,
because
it's
in
my
opinion,
the
best
meme
yeah.
K
No
I
I
think
a
great
first
step
would
be
to
public,
like
it
seems.
You've
done
a
lot
of
research
to
publish
that
in
some
written
form,
maybe
in
the
ethereum
editions
form
to
just
kind
of
keep
it
make
it
visible,
and
someone
else
can
then
maybe
pick
it
up
and
formalize
it
and
learn
EIP.
That
would
be
very
valuable
and
I
I
want
to
offer
a
counter.
I.
Don't
think
that
you
specifying
something
and
standardizing
something
would
be
like
imposing
your
view
of
things
in
the
world.
K
It's
just
offering
an
option
right
and
whether
that's
adopted
or
not
depends
on
on
the
on
the
rest,
like
you've
said,
but
having
an
option
that
is
there
and
specified
and
like
standardized,
is
extremely
powerful
and
I.
Don't
think
it's
imposing
anything
in
any
way.
U
Hey
it's
quite
funny,
because
obviously
I
wrote
they
bought
a
music
report.
Yesterday
they
came
out
on
this
subject.
Have
you
not
read
it
yet?
I
have
not
interested
because
there's
definitely
points
of
conflict
between
how
we're
seeing
this
and
for
me,
having
worked
like
Russell
has
inside
the
Beast,
as
it
were.
U
One
of
the
biggest
issues
in
music
industry
comes
around
multi-party
consensus,
around
data
points
and
also
conflicts,
and
that's
always
been
my
hesitance
about
putting
everything
on
chain,
because
it
it
makes
things
much
more
complicated
to,
and
it
also
creates
friction
around
how
much
you
can
actually
trust
something
versus
if
it's
housed
somewhere
else
in
some
kind
of
on-chain
registry
that
can
be
updated
by
multi-parties,
and
so
that's
why
my
feeling
on
this
has
always
been
that
music
nft
data
should
be
minimally
viable
and
contextual.
U
S
What
are
your
thoughts
on
the
the
metadata
render
architecture
that
zores
put
out
where
the
Creator
is
able
to
there's
a
trusted
party,
a
role
that
is
able
to
go
back
in
and
update
that
metadata
when
they
choose?
Does
that
make
a
difference,
or
you
still
think
the
best
solution
is
fully
off-chain.
U
Is
the
challenge
right
and
then
you've
got
different
marriage
providers
Publishers
producers,
all
these
people
who
are
part
of
this
Rich
soup
of
influence
that
creates
a
piece
of
art.
At
the
moment
the
music
industries
were
in
a
pretty
nice
place,
but
it's
usually
being
one
person
putting
something
out
but
gets
complicated
as
soon
as
like
that,
expands
right
and
I.
Think
like
it's
really
important
that
as
we're
thinking
through
this,
we
need
to
be.
You
know,
thinking
for
like
Mass
adoption
and
how
to
deal
with
that.
G
O
We
yeah,
if
you
are
taking
more
questions,
we
have
two
more
minutes.
Yes,
okay,
yeah
tranky,.
V
This
is
more
just
a
comment
about
whether
or
not
you
want
to
do
like
an
EIP
or
something
I
was
in
a
talk
yesterday.
That
was
like
see
something
called
like
c
a
I
p.
It
was
kind
of
over
my
head.
I'm,
not
gonna,
lie.
E
V
Captain,
but
it
was
a
different
type
of
like
Improvement
proposal
sort
of
like
Coalition
about
self-related
like
l2s,
and
things
I
mean
and
addresses,
so
it
could
be.
They
have
the
GitHub.
That's
like
set
up
so
I.
Think
an
initial
interesting
step
could
just
be
Fork
their
GitHub
and
turn
it
into
like
a
music
metadata,
IP
thing,
mmip
or
something
I,
don't
know,
but
yeah.
Just
a
suggestion.
S
Yes,
so
here's
the
catalog
standard
and
you're
talking
about
cap
19
is
like
cross
chain
assets
in
here
we
have
references
to
other
types
of
assets
and
so
you'll
see
in
fields
like
artwork.
You
have
a
URI
and
a
mime
type,
which
is
very
normal,
but
then
you
also
have
this
nft
field
which
can
link
to
other
nfts
and
that
follows
the
cap
19
standard
of
cross
chain.
So
you
can
actually
link
different
nfts
like,
for
example,
all
the
nfts
I
just
made
from
Sagrado
are
derivative.
S
Nfts
of
an
original
nft
I
did
not
link
the
original
nft,
and
that's
a
downside
on
me
and
I'm
going
to
publicly
say
that
like
I
could
obviously
do
better,
but
the
standard
is
already
up
to
date
so
that
if
we
want
to
link
other
assets
within
our
nfts,
we
can,
and
so
when
we're
thinking
about
composing
nfts
as
music,
that's
built
on
top
of
stems
or
music
that's
built
on
top
of
other
music
or
a
remix.
That's
built
on
top
of
music.
That's
built
on
top
of
stems.
S
V
Mainly
referring
to
the
structure
they
have
like
on
GitHub
for
like
organizing
Community,
like
input
so
I
think
just
like
forking
the
GitHub
they
have
would
be
a
great
place
to
start.
If
you
were
trying
to
like
start
the
process
of
figuring
out
how
to
like,
you
know,
just
like
coordinate
between
a
lot
of
people
forking,
their
repos
seems
like
a
good
place
to
start
just
start
housing
that
information
in
some
place.
O
And
next
up
is
Andres
and
we
are
staying
actually
in
music,
and
now
we
are
talking
about
the
web.
3,
music,
multiplayer
problems
and
I'm
very
excited
about
that
talk
as
well.
M
W
G
G
O
W
Hey
not
a
lot
of
experience
presenting,
but
here
we
are
so
we
started
off
a
few
months
ago,
a
in
the
whatever
music
Dao
researching
about
splits,
and
we
basically
got
two
or
three
main
conclusions.
Some
of
them
are
very
obvious.
Some,
probably
not
that
much
one
is
that
a
blockchains
can
serve
as
a
login
as
a
log
of
information
and
hopefully
look
into
the
future
even
like
a
global
jurisdiction
notary
system
with
a
legal
validation.
W
The
second
one
is
that
a
blockchains
have
the
the
abduction
architecture
is
a
based
on
a
single,
a
singular
point
of
connection
or
entry
for
the
user,
and
the
third
one
is
that
a
splits
protocols,
as
we
understand
them
in
blockchain,
are
focused
on
distribution
of
funds,
but
us
creators
think
about
splits
more
on
visual.
W
So
what
is
the
problem?
The
problem
is
copyright
right.
We
all
know
it's
the
problem
and
it
is
the
solution
and
copyright
law
has
been
used
and
has
been
abused,
but
it's
still
the
only
a
or
the
or
the
most
widely
used
form
of
monetization
of
intellectual
property
right
and
if
we're
looking
to
the
Future,
where
each
time
we
have
less
and
less
a
jobs
available,
we
have
a
growing
Creator
class.
W
We
need
to
keep
copyright
as
one
of
those
essential
ways
of
monetization
for
creators
and
the
the
copyright
industry
is
big,
is
played
with
with
problems
but
to
narrow
them
down.
W
It
is
mainly
a
human
problem
like
it
always
is,
and
it
is
that
people
do
not
register
their
intellectual
property
as
close
to
the
moment
of
Genesis
as
possible,
which
is
actually
the
the
best
way
to
protect
intellectual
property,
and
so-
and
this
is
maybe
because
creators
think
that
registering
or
then
speaking
about
legal
aspects
in
the
moment
of
creation
kills
the
Bible
so
that
actually
gives
birth
to
a
lot
of
problems.
I,
like
I've,
been
up.
W
You
know,
like
I've,
had
problems
with
a
processes
in
which
I
have
been
in
a
studio,
I'm
a
music
producer.
So
I
have
been
in
a
studio,
We've
made
a
hit
song.
Everybody
is
super,
excited
right.
W
The
process
as
it
is
done
it
is
that
a
at
least
in
music
creators
get
together
in
a
studio
and
they
songwrite
they
beat
make
they
record,
and
then
they
they
bounce
off
the
audio
program,
which
is
a
a
WAV
file
or
an
MP3,
and
then
that
MP3
gets
shared
among
the
the
co-creators
and
it's
either
emailed
to
us
or
it's
WhatsApp,
and
we
can
listen
to
the
music
or
what
we
made
and
vibe
to
it,
and
hopefully
the
next
day
know
if
what
we
did
was
whack
or
if
it's
a
hit
record
right.
W
So
personally,
I
have
been
in
those
situations
and
I
have
been
muscled
out
or
cut
out
of
hit
records
because
the
more
Savvy
people
will
head
out
and
register
the
the
copyright
of
the
song,
and
this
is
a
story
that
kind
of
like
repeats
itself
endlessly
in
in
music
making.
So
what
would
the
ideal
process
be?
W
The
ideal
process
B
would
be
to
register
to
have
a
mechanism
to
register
the
IP
as
soon
as
possible.
Right.
In
a
nutshell,
a
in
a
nutshell,
it
would
protect
the
creators
and
hopefully,
in
consensus,
be
able
to
register
this
IP
in
consensus
right.
So
we
have
a
solution
right.
We
have
temp
temporarily,
called
it
a
copyright
wallet
and
a
copyright
wallet.
W
It
allows
it's
a
tool,
basically
it's
a
tool
that
is
inserted
in
the
job
to
be
done.
It's
a
you
know
like
a
small,
sharp
tool
that
is
inserted
in
a
job
CB
down
process,
and
it
allows
for
in
multiplayer
mode,
deploying
registry
time,
stamping
or
registry,
on
the
blockchain
of
that
intellectual
property.
W
W
W
The
same
way,
the
a
a
a
chat
with
you
know
like
have
access
to
to
listening
to
a
voicemail
or
or
a
shared
audio.
The
mobile
wallets
of
the
participants
would
receive
that
audio
and
they
will
receive
a
notification
too
accept
or
deny
their
participation
in
the
in
the
in
that
creative
process.
And
if
there
is
consensus,
then
a
smart
contract
is
deployed
and
the
non-transferable
nft
is
minted.
W
So,
and
before
we
go
to
Future,
iterations
I
would
like
to
obviously
I
think
this
is
time
better
spent.
W
If
we,
if
we
open
up
a
discussions,
because
I
mean
this
could
be
a
a
tool
that
obviously
expand
and
is
composed
on,
but
I
would
like
to
basically
just
open
the
two
questions
to
see
if,
if,
if
we
can
get
to
a
technical
solution,
because
the
question
that,
like
the
questions
that
we
have
is
in
the
main
question
we
have
is,
does
this
really
need
to
be
a
wallet
or
can
it
be
a?
W
Can
it
be
built
in
a
simpler
way.
O
U
V
Thanks,
maybe
we
could
go
back
to
the
previous
slide.
V
W
Yeah,
that's
a
good
question
and,
and
the
answer
would
be
a
either
we
one
of
two
answers:
I'm
guessing
the
the
Dynamics.
The
current
Dynamics
are
more
of
like
you
songwrite
and
you
fixate
on
a
on
a
recording
immediately
right
just
because
the
tools
are
available.
So
people
are
not
writing
songs
with
their
guitar,
but
they
just
fix,
like
they
just
record
them
immediately,
and
that
is
just
because
we
have
the
tools
to
do
it.
W
Unlike
before
we
used
to
like
Write,
Sheet,
Music
or
or
write
song
lyrics
on
paper,
so
but
the
but
I
guess
the
the
answer
to
that
would
be.
We
could
either
do
two
Registries
or
just
split
percentages,
because
at
the
same
time
you
know
like
writing
and
mastering
is
basically
a
master
like
or
like
recording
is
like
a
50
50
Endeavor
right,
so
we
could
split
from
just
one
big
chunk
of
100
of
ownership
or
mint.
You
know
specifics.
S
So
is
the
biggest
reason
we
want
it
to
be
a
wallet
so
that
we
can
have
that
kind
of
signature
based
approval
like
like
the
question
from
Dan
in
the
last
talk
of
deciding
when
the
metadata
would
get
to
be
updated
or
if
a
piece
of
work
can
be
included
into
a
movie
or
if
the
rights
could
be
included.
Like
you
have
that
signature
step
from
each
of
the
participants.
Is
that
the
reason
kind
of
thinking
of
it
as
a
wallet
or
what?
S
What's
the
reason
to
have
a
wallet,
be
the
mechanism
for
controlling
the
rights?
So.
W
That
is
one
reason
a
and
the
other
reason
is-
and
this
is
very
personal-
you
know
like
looking
into
the
future.
What
I
think
that
would
happen,
or
would
would
happen,
would
make
sense
if
it
would
happen,
is
that
this
contract
is
like
the
master
contract
of
all
the
IP
that
is
derivative
from
this
original
registry.
W
So
from
this
original
registry-
and
we
spoke
about
it
briefly
on
Twitter,
we
could
also
have
some
form
of
progress
nsts,
where
everybody
is,
for
example,
we
go
into
the
studio,
and
then
we
somebody's
gonna
come
and
feature
a
song
right
that
it
was
not.
He
was
not
or
she
was
not
in
the
studio.
On
the
on
the
first
day
of
the
recording,
then
there's
a
way
of
tracking
the
progress
of
the
intellectual
property.
W
Obviously,
you
could
go
like
even
deeper,
with
a
Content
ID
mechanisms
and
whatnot,
but
but
I
think
that
this
smart
contract
would
probably
evolve
to
be
like
the
master
contract,
where
you
would
mint
the
one
of
one
of
the
song
or
the
10
editions
of
the
the
video
and
all
the
derivative
works
and
the
cruel.
The
value
in
one
contract.
Basically,.
U
Hey
something
I'm
very
interested
in
is
easing
time
as
a
constraint
to
force
kind
of
consensus
between
a
group,
and
this
feels
like
it
could
be
quite
good.
That
could
be
quite
interesting
to
bring
into
this
that
I
actually
wrote
something
about
this
in
like
February
or
something
about
making
multi-seq
wallets
in
a
similar
sort
of
way.
But
when
I
was
when
I
did
that
design
I
was
I
proposed
that
you
have
like
a
time
period
that
can
be
defined
in
which
data
can
change,
and
at
that
point
is
finalized
and
boom.
U
It
goes
and
that's
that
how
do
you
feel
about
that
in
terms
of
like
the
this
workflow?
Like
you
know,
do
you
see
that
you've
got
multiple
parties
kind
of
putting
their
information
in?
Do
you
think
that
should
be
locked
down
at
certain
point
or
how
are
you
thinking
about
time
as
a
concept
within
within
this
kind
of
a
formalization.
W
I
wish
right
yeah
we
wish,
but
if
the
tool
is
available,
that
might
be
an
incentive
right
and
if
we
fulfill
the
promise
of
value
through
these
specific
type
of
a
creative
product,
then
we
might
be
able
to
take
it
a
step
further
because,
right,
you
know,
like
20
years
ago,
split
like
splits
were
non-existent.
Basically,
Publishers
and
record
labels
were
the
ones
actually
doing
the
paperwork,
but
it
has
evolved
in
the
creative
mind
that
they
own
their
their
their
creation
said
that
they
want
to
be
a
part
of
split.
W
So
more
and
more,
you
see
like
producers
and
artists
and
songwriters,
be
like
okay,
like
let's
you
know
like.
Let's
show
me
the
splits
right
or
let's
negotiate
the
splits,
hopefully
as
soon
as
possible,
and
this
is
kind
of
just
like
inserting
it
in
that
moment
of
you
bounce
the
song
you
share
it.
Is
there
consensus?
How
do
we?
How
are
we?
You
know
like
splitting
the
ownership
of
this?
W
Let's
log
it
on
the
blockchain
and
and
it
should
serve
as
a
proof
of
work
in
case
there's
like
legal
challenges
on
on
on
the
process.
I
Yeah
I
have
a
question
so
I
understand
this
or
I
my
mind
tries
to
abstract
this,
like
the
concept
of
self-sovereignty
in
intellectual
property.
But
then
I
see
this
like
conflict
between
the
existing
structures
and
the
structures,
the
social
structures
basically
and
standards
that
would
have
to
evolve.
I
If,
This
Were
to
actually
come
and
have
any
chance
at
becoming,
like
the
dominant
form
of
of
you,
know,
managing
creative
IP
I'm
wondering
how
you
see,
like
the
end
game
of
this
playing
out,
how
how
can
this
actually
win
out
over
the
structures
that
we
have
right
now,
which
are
very
strong
power
structures.
W
A
global
copyright
database
right
if
that
makes
sense,
it
has
been
tried
several
times.
I
know
a
lot
of
people
are
accepted
into
that
or
I
don't
know
if
it
if
it
even
it's
a
good
idea,
but
but
there
has
been
efforts
in
you
know
like
like
just
sharing
the
information,
but
the
power
struggle
between
Corporation
makes
it
makes
it
impossible
right.
They
don't
want
to
just
have
that,
be
one
entity,
and,
and
that's
that
and
that's
where
the
efforts
have
died.
N
Thank
you:
are
these
splits
renegotiatable
at
a
certain
period
after
a
set
time?
What
does
that
look
like?
What's
the
current
kind
of
discourse
regarding
that?
Yes,.
W
So
copyright
law
actually
states
that
you're
right
in
of
an
idea
is
immutable.
Nobody
can
take
that
away
from
you,
so
a
hypnosis
can
buy
the
the
Bruce
Springsteen
catalog,
but
you
know
like
Merck
could
never
say
he
sang
those
songs
right,
even
though
he
he
owns
the
financial
exploitation
of
of
the
IP.
G
O
Think
I
really
liked
what
you
there
was
like
this.
One
quote
that
you
said
like
copyright
is
immutable,
that
it's
definitely
something
I,
think
we
can
probably
all
take
home
and
think
about
for
a
while.
Next
up
is
Ian
and
Ian
is
going
to
talk
about
rich
content
type
types
in
nfts
and.
G
G
O
O
Thank
you
warm
Applause
for
Ian.
X
Thanks
for
having
me
Tim,
it
was
wild.
We
met
at
youth
Berlin
a
while
back
and
see
you
back
in
the
space
yeah
I'm
gonna
give
a
quick
talk
on
canonical
media
and
EIP
content
type,
so
the
notes
are
basically
I'm
just
going
to
split
through
Json
and
talk
about
it.
The
notes
in
Json
are
on
GitHub.
X
If
you
have
questions
beyond
the
talk
or
you're
watching
it
recorded
make
a
GitHub
issue,
probably
the
easiest
way
to
respond
and
I'm
just
going
to
open
a
conversation
about
kind
of
what
we've
done
previously
in
organization
at
Zora,
What,
I've,
Done
personally
for
certain
nft
projects
and
rendering.
So
if
you
go
to
the
original
EIP
721,
the
metadata
schema
is
pretty
lightweight.
You
have
a
name
description
and
image.
X
It
was
designed
an
era
of
crypto
punks,
crypto
kitties,
where
you
tracked
ownership
and
the
image
just
kind
of
showed
a
cute
item
or
like
the
thing,
and
then
that
became
more
and
more
important
with
time.
I
think
it
was
left
pretty
open-ended
for
people
to
build
out
from
here
and
I.
Do
like
that
idea
of
a
very
minimal
standard
and
people
can
run
with
it,
but
I
think
at
some
point.
That
standard
can
also
be
improved.
So
an
example
is,
and
I've
had
co-workers.
Ask
me
this
all
the
time.
X
Well,
unfortunately,
the
metadata
standard
just
as
image,
so
what
people
have
done,
openc
kind
of
added
animation
URL
to
show
an
animation
which
could
be
a
web
page,
gltf,
audio,
a
bunch
of
random
grab
bag
of
content
and
the
great
part
about
an
image
is,
if
you
want
to
render
it
as
a
consumer,
you
just
pop
it
into
an
HTML
image
tag
or
you
put
an
image.
Viewer
images
are
pretty
well
defined
on
how
to
render
animations
get
a
lot
more
complex.
X
What
we
could
do
is
we
could
convert
the
presentation
into
an
HTML
viewer
and
upload
the
HTML
viewer
that
becomes
pretty
cumbersome
and
a
little
bit
difficult,
because
the
original
content
is
a
PDF.
It's
not
the
HTML
viewer
and
the
way
Zora
approached
this
with
the
Zora
protocol
in
2020
that
I
didn't
really
work
on
that
was
before
my
time
was
to
separate
this
concept
of
metadata
and
content.
Content
was
one
thing.
Metadata
was
another.
X
So
if
we
were
to
Mint
a
presentation,
it
would
be
the
PDF
and
then
the
metadata
is
defined,
also,
incredibly
simply
as
name
description,
mime
type
inversion.
The
mime
type
is
useful
for
rendering,
as
I
said,
you
need
to
have
some
idea
of
what
you're
going
to
render
before
and
fetching
it
from
the
server
just
to
figure
out
what
the
mime
type
is
is
a
little
bit
frustrating.
X
The
token
metadata
URI
is
name
description,
mime
type
text
plane,
so
that
tells
the
Zora
platform
to
render
a
text
plane
image
of
that
text,
plane
of
that
nft
and
I,
don't
think
there
have
been
a
lot
of
platforms
that
support
this.
So
when
you
try
to
look
at
an
open,
C,
good
luck-
and
that
brings
me
to
my
next
point
of
thinking
about
going
back
in
Computing
history
of
what
people
have
done
to
solve
this
problem.
This
is
a
multi-part
form
data.
X
It's
used
for
email,
kind
of
and
used
when
you
upload
files
in
a
classic
web
form,
it
has
content
type
and
it
has
certain
set
of
attachments.
You
can
kind
of
think
of
this
as
an
email
attachment,
so
I
think
having
content
type
is
quite
important
content
like
maybe
we
can
talk
about
that
a
little
bit
later
and
then
the
body
of
that
exact
content.
X
Here
you
have
an
example:
sorry
got
out
of
weight,
so
an
example
of
what
we
could
do
is
add
a
new
field
to
the
metadata
standard,
either
through
a
secondary
proposal
mechanism
or
the
EIP
standard.
That
represents
what
we
just
talked
about
and
there's
a
lot
of
details
here
to
unpack.
So
one
of
them
is
maybe
you'll
want
to
include
the
content
directly.
Should
it
be
body
or
should
it
be
encoded
in
a
data
URI?
X
In
that
case
the
content
type
is
redundant,
but
when
you
have
an
external
pinned
file,
you
really
want
that
content
type
for
rendering
it
just
makes
life
so
much
easier
from
a
platform
and
indexing
standpoint.
If
you
have
a
really
obscure
file
type,
let's
say
somebody
loves
to
upload
Illustrator
files.
You
could
use
an
indexer
to
find
every
illustrator
file
with
a
very
simple
content,
standard
and
I.
X
Think
the
idea
here
is,
you
have
a
token
ID
represented
by
a
file,
and
the
metadata
describes
that
file
as
that
file,
when
you
need
to
have
a
file
with
your
nft
is
the
highest
resolution,
the
most
the
highest
resolution.
The
most
well-known
version
of
that
an
example
is
Zora
was
brought
on
to
work
with
the
Warhol
Foundation
to
Mint
one
of
the
original
computer
nfts,
and
it
was
made
on
an
Amiga
with
a
beta
version
of
software.
X
An
art
collector
is
really
frustrated
that
the
nft
was
a
tiff
file,
but
it
was
built
with
the
Zora
protocol,
meaning
it
did
support
tip
files.
However,
nobody
else
did
so.
What
we
had
to
end
up
doing
is
use
the
external
URL,
which
is
the
openc
extension
to
link
to
something
to
link
to
the
Tiff
and
then
switch
the
image
URI
to
become
a
PNG
that
renders
everywhere-
and
this
is
after
back
and
forth
with
conservationists
and
with
different
protocols
as
to
what
they
expect
the
nft
to
be.
Now.
X
If
we
were
to
use
the
content
standard,
we
could
Define
the
image
that
renders
as
a
preview
with
ipfs,
and
then
we
could
use
the
Amica
mime
type
or
just
a
binary
blob
with
some
notes
around
it.
In
the
description
to
refer
to
the
original
media
and
I.
Think
that
would
help
conservationists
feel
better
that
the
nft
is
representing
what
it
really
represents
and
not
needed
to
be
converted
into
a
new
format
to
be
an
nft.
X
X
So,
if
mirror
currently,
what
they
have
is
they
have
a
Content
field
and
it
goes
to
an
are
we
file,
which
is
a
custom
content
type
they
defined?
It's
quite
and
Rich
has
a
lot
of
information,
but
it
has
the
body,
the
author,
information,
signature,
information
and
stuff
they
use
to
run
their
platform.
X
If
we're
coming
at
this
from
a
perspective
of
an
indexer,
this
is
not
very
helpful.
We
could
try
to
expand
that
content
field,
but
that
could
be
any
file
type,
as
I
said
before
it
could
be
some
binary
blob
or
it
actually
could
be
useful
Json.
So
if
it's
defined
as
Json
or
maybe
an
extension
to
Json,
you
could
use
that.
X
But
the
ID
here
is
would
be
the
markdown
and
if
Mirror
Has
extra
information,
they
could
use
their
own
fields
to
refer
to
that
information
within
the
content
file
or
outside
there's
a
way
you
can
actually
add
Json
headers
to
markdown
files.
So
you
know
the
file
itself
is
an
abstraction
is
really
powerful
in
this
case.
X
X
Don't
work
for
security
reasons
here,
it's
slightly
better,
but
also
links
don't
work
due
to
security
reasons.
The
sandboxing
on
an
iframe
is
actually
pretty
difficult
to
work
with
If
This
Were
A
markdown
file.
You
could
just
run
it
through
whatever
markdown
renderer
or
even
provide
a
link
and
just
show
the
preview
image
associated
with
the
nft.
X
It
is
a
part
of
the
Ringer's
art
blocks
collection
and
it
is
a
follow-up
limited
time
Edition
where
funds
went
to
charity,
and
it
was
a
very
large
seg,
megabytes
and
megabytes.
Svg
and
I
believe
manifold
helped
with
the
mint
and
the
original
file
for
image
was
an
SVG,
but
that
SVG
broke
wallets
and
people
were
not
happy
because
an
SVG
is
text
and
for
you
to
encode
text,
you
actually
have
to
turn
the
SVG
into
some
sort
of
bitmap
format
and
then
convert
it
again
and
resize
it.
X
So
it's
really
difficult
to
resize
an
SVG
and
most
marketplaces
pass
through
the
SVG,
but
this
particular
scg
was
so
large.
It
started
breaking
stuff,
so
what
they
had
to
do
is
they
actually
had
to
update
that
and
change
the
image
to
a
PNG
that
did
render
well,
but
it
was
a
12
21
000
by
43
000,
pixel
PNG,
which
also
caused
some
problems,
because
Marketplace
has
taken
the
PNG
or
whatever
image
file
resize
it
to
reasonable
size
and
display
it.
X
So
what
we
could
do
now
with
this
particular
proposed
standard
would
be
to
include
the
optimized
image
that
renders
well
within
marketplaces
and
then
have
the
canonical
content,
be
the
super
high
resolution
file
the
artist
intended.
So,
if
you
own
that
to
your
wish
to
display
it,
you
can
then
download
that
original
file
and
work
with
it
as
you
will,
and
if
you
were
to
take
the
content
type,
you
could
then
encode
the
image,
SVG,
XML
and
then
a
URI
and
then
optionally
include
a
shot
256
if
you're
using
airwe.
X
That's
actually
a
really
nice
way
of
verifying
that
the
file
is
what
it
is,
because
airweave
doesn't
use
content
addressable
hash,
so
the
the
link
to
ipfs
for
every
file
is
unique
per
file,
but
for
our
weave
it's
different.
So
the
idea
here
is
the
sha-256
is
a
really
standard
way
for
a
very
long
time
of
verifying
that
a
file
matches
a
file
and
can
be
included
in
this.
So
overall.
X
The
idea
of
this
proposal
is
to
add
in
a
Content
field,
and
the
idea
with
content
is
it's
quite
simple:
it
doesn't
have
any
underscores
and
it's
the
first
time
I
think
there's
going
to
be
some
proposal
or
thought
process
around
creating
nested
structures
in
the
metadata,
but
I
think
it's
quite
useful
because
content
underscore
type
content
it
just
doesn't
like.
We
already
have
Json.
We
can
Nest
this,
but
type
URI,
shot,
256
and
potentially
potentially
body
for
those
that
want
to
directly
put
plain
text
in
but
I
feel
like
a
URI.
X
Encoding
is
also
usually
a
fine
option
and
I'd
love
to
hear
what
different
creators
of
Standards
or
media
have.
Another
thought
was,
you
could
have
some
sort
of
attachments.
Associated
say
you
have
an
image
that
a
product
you're
selling
as
an
nft
and
you
have
a
slideshow
I,
recently
worked
with
the
team
to
show
a
product
and
the
slideshow
had
five
images.
You
could
theoretically
include
this
as
attachments
in
your
and
then
that
would
be
rendered
as
like
a
generic
attachment
on
media
I.
X
X
Where
you
have
this
media,
how
do
you
render
it
well
on
a
Marketplace
or
in
another
context,
I
think
that's
out
of
scope
for
this
particular
Focus
and
the
media
canonical
is
to
have
a
standard
or
primary
authoritative
body
on
a
subject.
So
the
URL
is
the
authoritative
idea
of
what
that
nft
is,
and
it's
left
up
to
interpretation
of
the
Creator
or
the
platform,
to
figure
out
how
to
best
Express
that
and
use
it.
X
X
I
have
a
GitHub
of
these
files,
and
this
is
my
Twitter
zoom
in
a
little
bit
and
then
the
one
last
thing
is:
there
was
an
on-chain
version
of
this
EIP
content
type
that
used
mime
content,
URI
and
hash,
and
this
is
kind
of
the
inspiration
for
the
off
chain
version
of
this
proposal.
Unchained
ideas.
If
you
have
dynamically
generated
SVG,
it's
more
composable,
it's
easier
just
to
return
a
struct
but
I
think
now
kind
of
working
on
more
projects
and
finding
more
examples.
X
The
off
chain
example
is
more
compelling
and
you
can
still
generate
a
Json
blob
on
chain,
including
the
content
field,
so
it
kind
of
works
both
ways.
I
just
think
this
is
a
better
start
to
the
approach,
a
way
to
approach
this
project
then
including
a
new
getter
function
as
an
EIP
within
the
solidity
world.
This
is
all
off-chain
metadata.
B
Hi
I'm
Marcus
nice
to
meet
you
if
this
was
implemented
as
an
EIP.
What
do
you
think
the
second
and
third
order
effects
of
this
would
be.
X
I
hope
the
very
first
thing
is
indexers
platforms
would
include
it
in
minting,
so
manifold
actually
does
really
try
hard
to
include
a
lot
of
metadata.
They
do
image
image
underscore
URL
image
includes
the
hash
and
the
URL
and
the
content
type
and
some
other
data,
so
I
think
kind
of
thinking
with
them
to
figure
out
what
their
needs
are.
X
Oh
here
is
a
solidity
contract
and
what
I
typically
have
advised
creators
to
do
is
actually
explain
it
and
link
in
the
description,
the
ipfs
URL
of
the
canonical
media,
it's
Packy,
but
it
seems
to
have
worked,
and
that
would
kind
of
remove
that
and
allow
for
use
users
to
see.
X
Like
a
link
and
I've
seen
artists
on
Twitter
talking
about
using
unlockable,
media
and
openc
to
include
the
source
files,
and
if
the
artist
is
comfortable,
they
could
just
include
the
source
files
and
it
would
be
a
link
or
some
sort
of
description
on
pla
marketplaces.
And
since
this
is
relatively
easy
to
implement
once
a
few
start,
I
think
it
would
start
spreading.
T
Hi,
hello,
congrats
for
the
project,
so
content
type
is
a
response
header
on
HTTP
right
thinking
about
you
know
the
second
order
effects.
Have
you
thought
or
worked
on
the
request
headers
equivalent
like
the
accept
and
then
having
some
specific
wildcards
such
as
Text,
slash
and
then
wild
card.
X
So
the
one
problem
when
you're
indexing
is
that
a
lot
of
times
ipfs
is
really
slow.
People's
servers
go
down
if
you're
able
to
get
the
metadata
on
the
client
a
lot
of
people
hot
link
directly
to
an
ipfs
Gateway
and
pulling
the
content
type
out
of
the
headers
really
allows
for
a
better
set
of
expectations
when
you're
indexing
and
rendering
the
nft.
But
your
question
is
to
kind
of
use
the
HTTP
response
conversation
to
define
the
Mind
type
rather
than
put
it
in
the
metadata.
T
Yeah
sure
so
there's
the
content,
negotiation
step
right
so
and
then
you
have
from
the
accept
request.
Header
and
more
often
you
have
like
some
sort
of
wild
card
there.
Okay,
so
that
can
help.
You
know
more
generic
applications
to
accept,
let's
say
image,
slash,
column,
wildcard,
something
so.
X
I
think
a
lot
of
the
off
off
chain
nfts
go
through
a
decentralized
Gateway
provider
and
those
Gateway
providers
are
not
very
like
you're
out.
The
control
of
the
server
retrieving
decentralized.
Media
is
out
of
the
control
of
the
user
in
most
cases,
so
you
can't
rely
on
a
server
negotiation,
you're
thinking
of
a
world,
maybe
where
there's
a
server
that
is
connected
to
the
URI
of
the
nft
and
that's
becoming
a
lot
less
common,
because
that
means
you're
now
having
a
centralized
point
of
failure.
X
So
the
idea
here
is,
if
you
put
it
in
the
Json
there
at
least
be
some
intentionality.
If
you're
on
some
weird
version
of
ipfs
like
node,
that
doesn't
understand
the
media,
it's
serving
or
there's
a
bug
in
it.
You'll
still
have
something
that
kind
of
works
or
have
an
expectation
of
what
the
original
intention
was.
G
Thank
you.
Do
we
have
more
questions,
maybe
one
last
question:
okay.
Otherwise,
yes,
okay,
we
have
fun.
M
Here
you
define
the
content
type
inside
the
Json
to
like
save
some
uploads.
Could
you
define
the
data
in
the
collection
as
well.
X
That's
actually
a
great
question
that
I
didn't
have
time
to
address,
but
Mir
and
Zora
and
a
few
other
platforms
have
editions
and
I
think
utilizing
a
singular
nft
metadata
in
the
contract.
Uri,
which
is
an
openc
extension,
is
a
really
effective
way
to
handle
that
and
right
now,
I
know
most
platforms
that
do
additions,
support
the
contract
URI
so
for
dead
ringers
and
for
Zora
editions.
The
contract
URI
is
actually
generated
on
chain
and
sometimes
we'll
put
an
ipfs
depending
on
how
big
the
content
is,
and
that
includes
image.
X
It
includes
animation
if
every
single
thing
in
the
collection
is
the
same,
and
we
use
that
internally
in
our
infrastructure
to
give
a
preview,
if
there's
no
mints
yet
or
like
what
that
whole
collection
is
supposed
to
be,
there's
no
standard
around
it.
But
this
would
also
slot
quite
well
within
the
contract
metadata.
If
you
wanted
to
have
a
canonical
contract
content
field,
it
should
just
work.
G
O
J
K
Yeah
so
sorry
we're
gonna
move
on
from
nfts.
Now
it's
gonna
be
about
erc20s,
which
are
boring
now,
but
okay,
I'm
correction
I'm,
not
from
openc
I
work
at
open,
Zeppelin,
maintain
and
develop
open
sampling
contracts,
which
obviously
maintains
many
ERC
implementations.
And
so
this
is
a
really
important
topic
to
me.
K
So
this
EIP
that
I'm
going
to
be
talking
about
is
really
quite
tiny,
but
I
want
to
use
it
more
as
an
excuse,
maybe
to
talk
about
the
process
of
building
an
EIP
and
what
the
kind
of
steps
that
I
think
one
should
follow.
So
because,
like
eip1,
which
it's
not
here,
but
maybe
you've
all
seen
it
kind
of
defines
the
series
of
stages
like
draft
review
last
call
and
final.
But
it
doesn't
really
say
what
should
happen
in
each
of
those
stages.
K
So
the
problem
at
hand
here
is
the
erc20
permits
anyone
that
has
used
a
amm,
a
decentralized
exchange.
Before
knows
that,
in
order
to
do
a
token
exchange,
you
need
to
approve
first
and
then
transfer,
and
this
EIP
permit
is
one
way
of
foregoing
the
initial
approved
transaction
and
replacing
it
with
a
signature
that
allows
you
to
allows
you
to
do
it
all
in
just
one
transaction
by
just
including
the
signature
in
the
first
transaction.
K
So
this
saves
gas,
it
is
one
less
transactions
and
agent
uses
the
signature
instead,
but
it's
kind
of
weird.
If
you
use
an
exchange
or
an
aggregator,
you
don't
really
see
it
as
being
used
very
often
I
think
main,
maybe
it's
just
like
usdc
exchanges
supported,
but
there
are
many
other
tokens
that
have
this
and
don't
so.
K
K
Which
is
a
special
kind
of
signature?
It's
a
signature
not
of
a
blob,
which
is
what
we
see,
often
most
most
usually
but
of
a
kind
of
typed
data
structure.
So
it's
kind
of
important
because
it
allows
you
to
get
more
structure
to
it.
K
In
the
case
of
permit,
you
will
include
the
amount
that
you're
allowing
you
will
include
and
expires
timestamp
and
a
nons
and
so
on,
and
this
is
an
important
standard,
because
wallets
can
Implement
support
for
it
and
show
the
structured
data
to
the
user
in
a
nice
way.
One
of
the
important
things
in
this
EAP
is
the
notion
of
a
domains.
So
when
you
make
an
approval
for
say
usdc,
you
don't
want
an
attacker
to
take
that
signature
and
kind
of
send
it
to
die
right.
K
You
know
want
an
attacker
to
reuse
the
signature
in
a
different
domain,
so
every
signature
has
this
domain
separator
inside
of
it.
That
makes
sure
that
the
signature
is
only
valid
in
one
domain.
So
this
is
the
right,
so
the
decentralized
exchange
has
no
way
of
knowing
given
some
arbitrary
token.
What
domain
they
want
to
use
and
I.
Think
yeah.
I
think
that
is
the
reason
why
this
hasn't
been
really
adopted.
K
So
you
will
see
that
the
erc20
permit
ERC
defines
a
getter
that
gives
you
the
hash,
but
really
the
712
RPC
endpoint
requires
the
entire
domain
object
and
there
is
really
no
way
to
find
it
here.
So
this
is
where
eip5267
comes
in
now
we
will
see
now
it's
a
very
simple
function
that
literally
just
allows
you
to
obtain
the
domain.
This
is
the
domain
object
that
you
will
need
to
pass
into
the
712
sine
RPC
call
and
and
as
you
can
see
like
it's
extremely
simple
now.
K
What
was
also
at
the
back
of
my
mind
is
that
this
was.
This
is
not
also
a
failure
of
the
spec
12
2612
so
permit,
but
it
was
also
in
a
way
of
failure
of
the
process,
because
if
the
2612
authors
had
kind
of
gone
all
the
way
and
kind
of
talked
to
decentralized
exchanges
and
thought
through
what
it
would
entail
to
adopt
that
they
would
have
realized
that
this
was
missing.
K
So
I
didn't
only
want
to
tackle
the
technical
problem
here,
but
also
think
about
how
can
I
carry
out
the
process
for
the
CIP
to
make
sure
and
and
other
erc's
to
make
sure
that
the
sort
of
failure
of
the
process
doesn't
present
itself.
K
K
What
needs
to
happen
in
order
to
get
it
to
final,
so
some
of
the
things
that
I've
done
and
that
I
would
recommend
you
all
do
when
you
build
your
VIPs,
so
you
should
reach
out
to
all
interested
parties
and
like
applications
and
companies
and
projects
that
you
think
will
be
using
this
and
really
you
should
be
kind
of
bothering
them
to
give
you
feedback
to
look
at
it
and
give
you
feedback
so
I've
reached
out
to
one
inch
and
unit
Swap
and
kind
of
seen
try
to
get
from
them.
K
Is
this
useful
to
you?
Would
it
does
this
solve
a
real
problem
from
for
you
and
generally,
the
answer
in
this
case
has
been
yes
in
the
ethereum
magician
threat.
There's
also
been
a
couple
of
interesting
comments
and
common
questions.
I
have
taken
some
of
the
questions
and
documented
them
as
part
of
the
EIP
as
well,
and
also
some
concerns
that
have
arised.
K
So
many
of
those
concerns
in
the
case
of
this
EAP
were
about
the
backwards
compatibility
section,
which
is
here,
but
most
of
the
discussion
of
the
ethereum
admissions
threat
made
me
realize
that,
even
though
I
wrote
this
section
kind
of
thought
about
it,
there
really
are
many
more
unanswered
questions.
K
So
I
wanted
to
do
some
more
work
to
figure
out
the
real
backward
compatibility
story
so
another
another
thing
that
I've
started,
doing,
which
I
think
is
a
really
good
exercise,
is
to
implement
it
and
not
only
like
the
solidity
part
of
it,
but
also
the
many
parts
of
the
stack
again
so
I've
just
started
this
EA
repository
with
the
implementation
and,
most
importantly,
a
little
app,
which
is
just
a
front-end
app,
which
is
what
I
imagine
that
a
the
central
X
exchange
will
kind
of
be
doing
behind
the
scenes.
K
And
here
I'm,
putting
myself
in
the
shoes
of
I
am
the
UI
for
one
inch,
and
this
is
what
I'm
going
to
be
doing
and
just
kind
of
really
figuring
out
if
it
works,
if
I
can
actually
produce
the
signatures
that
they
will
need
to
produce
and
also
to
use
this
to
figure
out
the
backwards.
Compatibility
story
and
I
still
need
to
develop
this
a
little
bit
further,
but
I'm
hoping
that
I'm
going
to
come
up
with
a
good
and
kind
of
comprehensive
answer.
K
Then
I
can
then
go
back
in
the
EAP
and
document
it
there
to
make
sure
that
it
really
answers
the
concerns
that
were
raised
in
the
ethereum
Edition
thread.
So.
K
I
think
yeah,
that's
it
again.
It
was
very
quick,
but
these
are
some
of
the
things
that
I've
been
experimenting
with
in
order
to
get
this
to
a
final
stage,
I
think
there
are,
we
see
many
eits
that
take
more
of
a
fast
track
and
get
to
a
final
stage,
which
is
you
know
it's
better
in
a
way,
because
we
know
that
these
processes
can
be
long
and
it's
really
annoying.
K
But
then
you
get
to
a
final
stage
and
it
doesn't
necessarily
mean
anything
if
it
hasn't
been
thoroughly
tested
and
then
you're
really
going
to
run
into
some
issues
when
say
open,
Zeppelin
implements
it
and
people
start
deploying
it,
and
you
realize
oh
this,
this
isn't
really
enough.
So
then
you
need
to
start
thinking
about
like
a
follow-up
EIP
and
it's
all
really
much
more
complicated
than
it
should
be.
If
we
do
things
better
before
we
get
to
a
final
stage
so
anyway,
those
are
some
of
my
ideas.
Thank
you.
K
Happy
Tuesday
questions.
If
any,
yes,.
H
Hey
really
cool
first
comment:
it
reminds
me
of
like
the
Amazon
six
page,
written
narrative
way
of
you
have
to
like
sharpen
your
point
or
your
case,
and
then
you
go
around
and
get
feedback
from
people
and
then
incorporate
that
in
a
fact,
at
the
end
of
the
document
to
like,
because
you
know
other
people
have
those
concerns
or
objections.
So
that's
really
awesome.
Do
you?
Can
you
just
speak
a
little
bit
more
about
that
process
and
how
you've
followed
up
with
people,
maybe
on
this
one
or
something
in
the
past?
H
So
it's
one
thing
for
somebody
to
say
it
looks
great,
maybe
give
some
feedback
on
The
ethereum
Magician's
posts,
but
really
an
eip's
success
or
failure
is
like
people
using
it
like
you
just
spoke
to
so.
Have
you
have
a
good
example
of
like
following
back
up
with
protocols
and
actually
getting
them
to
implement
the
EIP
as
part
of
your
kind
of
is
Dev
work?
If
you
call
it
yeah.
K
So
good
question
I
haven't
thought
about
that
too
much
yet,
but
one
of
the
things
that
I
personally
struggle
with
is
that
I
feel
like
I'm
in
a
bit
of
a
conflict
of
interest
position
because
of
being
on
opens
up
and
contracts
maintainer.
It's
like
it's
going
to
be
really
easy
for
me
to
put
this
into
contracts
and
make
people
use
it,
but
I
don't
want
to
force
it
down
people
so,
for
example,
one
thing
that
I
could
do
and
now
that
I'm
thinking
about
I
think
it
would
be.
K
A
great
idea
is
to
talk
to
this
one-inch
developer.
That
I
talked
about
and
maybe
try
to
get
them
to
to
walk
me
through.
Do
they
really
see
the
do
they
like
really
see
themselves
implementing
this,
and
maybe
what
is
the
timeline
and
kind
of
yeah
just
trying
to
get
more
concrete
data
on
on
their
plans
and
try
to
try
to
get
them
to
commit?
O
More
questions
feedback,
maybe
people
that
have
used
this
or
or
712.
G
O
Yeah
and
that's
essentially
it
that
was
the
ERC
lightning
talks
from
The,
Magicians
I
hope
you
all
liked
it.
You
can
find
each
and
everyone,
hopefully
on
the
East
magicians
forum
and
I'm,
looking
forward
to
all
of
the
posts
that
are
coming
out
of
these
discussions.
I'm
I
want
to
thank
you
all
for
participating
like
so
much
in
this
conversation
and
I
I
really
appreciate
that
we
were
having
like
a
back
and
forth
between
the
audience
and
and
the
presenters
and
so
on
and
yeah.