►
Description
Join us for a day of content dedicated to exploring what’s possible using Web3 technology like Filecoin, IPFS & Ethereum.
A
Hi,
I'm
alan
I'm
an
engineer
at
political
labs
and
this
talk
is
about
nfts
and
the
off-chain
side
of
them
and
how
they
can
be
stored,
decentralized
on
ipfs
and
filecoin
for
a
long
time
for
the
long
haul.
So
I'm
kind
of
new
to
nfts.
I
guess
kind
of
all
are
really
when
I
found
out
about
them
and
I
started
getting
interested
interested.
I
was.
A
I
was
really
happy
to
see
that
ipfs
was
already
being
used
to
store
them
working
for
protocol
labs
and
having
worked
on
ipfs
quite
a
bit,
it's
really
nice
to
see
it
being
used
in
the
world
so
for,
for
example,
I
can
just
pull
up
any
any
kind
of
market
nft
marketplace.
For
instance,
just
this
one
check
on
activity
and
wow.
Look
at
that
just
so.
This
is
these.
This
is
just
like.
A
Nfcs
have
been
created
or
bought
quite
recently,
and
if
I
click
through,
I
can
just
have
a
look
down
hopefully
down
here
and
if
I
click
through
to
view
transaction
on
evascan
and
then
do
a
little
bit
of
spelunking
in
the
in
the
ethereum
blockchain
pull
up
the
contract.
Whoosh
scroll
down
here.
Put
that
in
there
do
a
query
and
look
hey
it's
an
ipfs.
A
This
is
an
ipfs
hash,
hey,
rad,
okay,
so-
and
I
can-
I
can
literally
just
put
that
in
in
my
browser-
and
this
comes
up
as
in
in
my
browser
here-
and
I
can
just
click
through
to
see
that
nft
in
all
its
high-res
high-res
glory
so
fun
times
all
right
so
back
to
the
slides.
Where
are
we?
A
Why
why
why?
Why
are
these
nft
stored
online?
Okay,
that's
well!
First
of
all,
it's
kind
of
prohibitively
expensive
to
store
big
big
data
like
that
on
chain
in
ethereum,
at
least
and
and
ipfs
has
some
really
nice
properties
for
off
chain
data
that
we
we
can
get
into
in
a
little
bit
but
yeah.
That's
that's
super
bad!
A
So
anyway,
as
as
I
learned
a
little
bit
more
about
nfts,
I
came
to
realize
that
the
developers
enabling
nft
creators-
so
these
are
kind
of
nft
marketplaces
like
foundation
like
super
rare
like
like
zora,
they
all
really
really
cared
about
users
being
able
to
access
their
data
should
they
ever
disappear.
So
if
they
just
went
poof,
they
didn't
want.
A
All
of
these
fantastic
nfts
to
just
fade
away
because
they're
enough
teeth,
they're
things
that
their
artwork,
that
people
have
created
that
people
have
bought
and
they
shouldn't
just
disappear
into
into
nothingness.
So
that
would
that.
A
So
ipfs
ibfs
can
solve
this
problem
and
actually
fits
this
bill
really
well.
So
it's
not
all
that
surprising
that
it's
being
used
already,
but
in
case
you're
kind
of
new
to
ipfs.
Let
me
explain
by
going
over
a
few
basics.
Okay,
so
I've
got
this.
This
random
nft
that
I
found
a
picture
of
some
mountains-
that's
sort
of
generated!
It's
really
pretty.
I
love
it.
I'm
gonna
put
this
this
data
in
my
ipfs
node.
A
So,
for
example,
if
I
put
this
this
nft,
if
I
import
it
into
my
ipfs
node,
then
I
get
back
a
cid
which
stands
for
content.
Identifier
and
cids
are
a
kind
of
cryptographic
hash
and
they
address
the
content,
not
its
location.
So
that
means
that
any
given
cid
will
always
refer
to
that
same
piece
of
content
or
if
we
flip
it
round
to
a
different
way.
A
If
the
content
change
changes,
then
the
cid
would
have
to
change
as
well,
and
so
the
idea
is
that
once
you've
got
this
cid
or
what
what
what
typically
happens
is
that
that
cid
or
a
url
to
a
gateway,
an
ipfs
gateway
with
with
that
cid
in
it
is,
is
what's
stored
on
chain.
A
But
if
that
wasn't
stored
on
chain
and
just
a
regular
url
to
any
old
website,
any
old
like
google
drive
or
whatever,
then
that
could
be
problematic
and
that's
problematic,
potentially
because,
like
the
owner
of
that
content
could
just
delete
it
or
like
the
domain,
could
expire
and
or
like
the
hosting
could
expire
and
never
renewed,
and
then
then
the
nft
would
be
lost
forever
or
or
possibly
even
worse.
A
You
like
that
nft
could
be
altered,
so
you
might
have
this
fantastic
image
of
a
of
a
kitten,
a
cryptokitty
perhaps
that
you've
bought
and
and
then
whoever
owned
that
perhaps
came
along
and
and
defaced
it
and
made
it
into
a
dog
crypto
doggy,
perhaps,
and
that
would
not
be
cool
for
you,
you'd
be
pretty
angry.
So
that's
that's
not
good.
A
The
other.
Another
good
reason
is
that
maybe
this
url
is
just
not
accessible
from
within
your
country
or
within
your
workplace.
Maybe
you
actually
need
a
peer
who
that
is
actually
a
bit
closer
to
you
to
be
able
to
serve
it,
because
you
literally
just
can't
request
stuff
outside
of
that
boundary,
okay.
So
how?
How
does
that
work?
Well,
so
I
have
that
content.
I've
imported
it
into
my
ipfs
node.
If
someone
else
requests
that
data
by
its
cid
then
they'll
receive
it.
A
The
the
the
idfs
network
is
such
that
you
will
search
the
network
and
eventually
find
someone
that
has
it
and
then
try
and
connect
to
them
and
when
you
have
connected
to
them,
you'll
receive
that
data,
and
so
now
two
nodes
can
serve
that
content,
which
is
super
cool,
and
so
I
kind
of
like
this.
So
a
third
node
comes
along
and
asks
for
the
cid,
but
both
of
those
nodes
can
now
serve
that
request
and
send
that
data
to
that
third
node,
that's
cool
and
it
what
it.
A
What
it
means
is
that
this
original
node
can
actually
just
go
away
so
gone
and
and
that
data
will
still
be
retrievable
from
the
other
nodes,
and
so
this
is
the
awesome
power
of
peer-to-peer
networking
you
might
have
heard
of
it
all
right
caveats.
Yes,
there's
two
caveats:
okay,
the
first
one.
First
one
is
kind
of
interesting,
but
I'm
kind
of
obvious,
but
if
all
of
the
nodes
that
have
that
content
like
go
away
if
they're
simply
not
available,
then
there's
no
one
to
serve
that
content
to
you.
A
So
you
you
can't
get
it
there's
no
way.
So
that's
kind
of
obvious
caveat.
The
second
caveat
is:
is
it's
garbage
collection?
So
we
have
this
thing:
an
iphone
called
garbage
collection
and,
depending
on
your
configured,
garbage
collection
rules,
it
might
run
at
like
a
certain
time.
It
might
run
when
your
configured
repost
storage
limit
is
here
maybe
you've
just
been
ipfs
catting
loads
of
data
and
you've
used
like
a
terabyte
of
data
and
an
ipfs
eventually
goes.
Okay,
that's
the
limit
here.
A
Let's
do
a
gc
round
and
it
will
just
do
that
or
it
can
be
run
manually.
So
you
can
actually
invoke
ipfs
gc
from
the
command
line
or
you
can.
If
you've
exposed
the
http
api,
you
can
hit
it
over
http
and
tell
it
to
do
a
gc,
so
so
yeah,
if
you
add
stuff
to
ipfs,
then
it
will
stay
there
and
it's
not
it's
not
eligible
for
gc.
A
But
if
you
just
try
and
get
stuff
from
the
wider
network
and
pull
it
in,
then
it's
not
automatically
kind
of
it
doesn't
automatically
become
ineligible
for
garbage
collection.
So
what
you
need
to
do
is
tell
ipfs
that
the
content
is
not
garbage
and
it's
a
super
rare
nft
and
it's
not
trash
it
shouldn't
be
thrown
away,
and
in
ipfs
that's
referred
to
as
pinning,
and
if
you
don't
pin
the
data
then
it
will
eventually
be
garbage
collected.
A
So
what
that
means
is
that,
even
if
the
content
is
super
super
popular,
then
it
can
still
eventually
exit
the
network
because
well
either
nodes
could
just
disappear.
Who
have
that
content
or
those
who
did
have
that
content
might
slowly
garbage
collect
and
eventually
nobody
has
it
and
that's
and
that's
bad
and
then
so
in
general.
A
These
two
caveats
are
why
developers
use
a
third
party
service
like
pinata,
like
textile,
like
fleek,
to
store
their
content,
and
the
reason
is
that
these
services
actually
have
nodes
that
are
publicly
available
and
they
stay
online,
24
7.
and
obviously
they
pin
the
content.
A
So
it
doesn't,
it
doesn't
disappear,
it
doesn't
get
garbage
collected
cool,
so
that's
caveat
number
two,
all
right
nft.storage
is
something
that
we've
been
working
on
and
it's
a
place
where
you
can
store
your
nft
data,
decentralized
on
ipfs
and
filecoin,
and
it's
and
you
can
store
it
safe
in
the
knowledge
that
it
it
will
be
there
tomorrow
and
it
hopefully
goes
way
some
way
to
solving
that
permanence
problem
and
it's
free
it's
free
for
as
long
as
we
can
make
it
free
for
as
long
as
we
can
keep
keep
this
thing
going
and,
and
one
of
the
big
parts
of
it
is
that
things
should
be
easy.
A
So
so,
let's,
let's
check
out,
how
does
it
work?
Well,
you
you
upload
your
nft
data
to
nfc,
dot,
storage,
simple
right
and
then
what
happens
is
that
nfc
storage
stores
that
data
on
ipfs
names?
A
Okay,
so
so
far
so
good,
but
what's
different
from
like
a
regular
pinning
service
well
behind
the
scenes,
nft
storage
is
actually
negotiating
deals
to
store
your
data
with
miners
on
the
file
coin
network
and
the
filecoin
network,
incentivizes
miners
to
store
data
and
they
get
paid
to
store
data
and
they
also
typically
get
paid
for
like
when
data
is
retrieved.
So
it's
a
it's
a
win-win
situation
for
them.
Okay,
so
why?
Why
is
that
good?
A
Well,
if
nfc,
the
storage
just
goes
away
and
then
all
of
the
like
nodes,
the
ipfs
nodes,
the
nft.storage
happens
to
be
pinning
to
went
away
and
all
of
the
ibfs
nodes
who
ever
fetched
that
content
also
went
away.
So
all
of
the
ipfs
nodes
they
just
disappeared
for
whatever
reason
everything
garbage
collected
content
or
they
just
vanished
from
the
network.
Then
the
miners
will
still
have
the
content.
The
miners
are
super
incentivized
to
keep
storing
the
content.
A
They
get
penalties
for
stopping
storing
content
before
the
deal
term
is
finished,
so
you
can
just
think
of
these
miners
as
just
another
set
of
ipfs
peers.
They
are
built
on
the
same
technology
as
ipfs
and
they've
got
super
strong
incentives
to
continue
storing
the
data
so
hooray
we
had
a
public
launch
for
nft.storage
a
few
weeks
ago.
The
url
is
nfc,
dot,
storage,
dot
storage
is
a
top
level
domain.
He
knew,
and
so
you
should
go,
go
take
a
look.
A
We
have
a
simple
http
api
and
it's
expressed
as
an
open
api
schema.
If
that
doesn't
mean
anything
to
you,
then
I
guess
you
could
well.
You
should
know
that
it
allows
us
to
generate
nice
documentation,
websites
like
this,
which,
which
is
cool,
because
you
can
just
use
it
from
the
browser
without
even
doing
any
code.
So
that's
one
of
the
benefits
at
least
there's
an
official
client
that
we
built
in
js.
It's
got
some
typescript
types.
A
It's
got
nice
api
docs
and
we've
literally
just
launched
a
new
metadata
api,
which
should
make
minting
nfts
even
easier
than
it
was
before
and
you'll
do
that
with
erc1155
compatible
metadata,
so
you'll
be
following
standards.
At
the
same
time,
all
the
best
practices
baked
in
so
that's
that's
very
cool.
A
A
Great,
that's
brilliant,
but
then
we
were
like.
Well,
maybe
shall
we,
let's
just
do
that,
so
we
did
so.
We
chose
like
some
of
the
big
languages
and
just
generated
some
clients
with
tools
that
we
found
on
the
internet.
So
they
might
be.
They
might
be
a
bit
clunky.
It's
a
machine
built
them.
A
They
might
I
don't
know
your
mileage
may
vary,
but
if
you
are
using
that,
then,
if
you're
using
one
of
these,
then
then
like-
let
me
know
or
if
there's
problems
then
open
an
issue
open
pr,
be
I'd,
be
really
interested
to
hear
from
people
who
are
using
one
of
these
generated
clients
to
see
what
their
experience
is.
A
So,
okay,
that's
that
bit
of
the
talk
all
right,
so
I'm
gonna
do
a
little
demo
of
the
js
client
to
show
you
what
what
it's
like
to
store
nft
data
on
ipfs
and
filecoin.
So
here
we
go.
This
is
live
coding,
so
this
could
go
all
completely
and
utterly
wrong,
but
we're
gonna
give
it
a
go
anyway.
A
So
what
I've
done
is
I've
installed
the
the
client?
It's
it's
nfl
storage
on
npm,
I'm
importing
a
couple
of
things,
so
they've
got
the
client.
We
also
got
some
web
apis
that
we're
exporting
as
well
for
use
in
node.js
and
have
them
natively
but
yeah.
So
this
is
the
default.
We
don't
need
to
do
anything
there,
but
what
we
do
need
to
do
is
we
need
to
go
and
get
a
token.
So,
let's
head
on
over
to
the
nft.storage
website,
okay,
so
I'm
already
logged
in
here.
A
Let's
move
you
out
of
the
way.
If
I
check
out
my
api
keys
here,
I've
deleted
all
my
current
ones,
so
I'm
just
going
to
create
a
new
one,
I'm
going
to
call
it
demo
and
create
the
key
here
it
is.
A
I
will
delete
this
after
the
demo
so
steal
my
api
key
head
over
here.
Paste
it
in
here
lovely
job
all
right.
So,
let's,
let's
talk
about
this
a
little
bit
all
we're
doing
here
is
we're
instantiating
the
client
passing
it.
On
our
token,
we
don't
need
to
pass
that,
but
just
the
actual
completeness
and
we're
gonna
read
a
file.
This
is
not
the
file
we're
gonna
read.
This.
Is
this
file,
but
I
put
this
yeah
here
we
go.
A
Store
this
is
my
favorite.
This
is
my
favorite
meme
on
the
internet,
hello,
yes,
this
is
dog
just
for
example.
Example,
processes.
B
A
That
so
this,
what
we're
going
to
call
here
is
the
store,
blob
api.
This
is
the
simplest
api
that
nft
storage
exposes.
It
just
allows
you
to
store
raw
data
and
get
back
a
cid
that
you
can
use
in
in
your
minting
process.
If,
if
you
so
please,
so
what
we're
going
to
do
is
call
storblob.
A
So
we've
read
the
file,
we're
creating
a
new
blob
because
store
blob
requires
a
blob
to
be
passed
to
it,
console.log
the
cid
and
then
we're
going
to
call
the
status
api
which
allows
you
to
check
in
on
the
status
of
a
nft
that
you've
uploaded
before,
and
that
means
checking
out
the
pin
status,
see
if
it's
pinned
yet
or
not
and
see
the
size
of
the
thing,
but
you
can
also
see
what
file
coin
like
information
about
filecoin
deals
that
have
have
been
made
with
this
particular
cid.
A
You
can
see
like
which
miners
have
have
your
have
your
data
and
what
the
current
status
of
that
deal
process
is
cool.
Okay,
so
I'm
going
to
save
this
and
in
theory
I
should
this
should
be
good
to
run.
Yes,
this
is
dog.
This
is
good,
so
let
me
go
node
blah
blah
hit
that.
A
Okay
right
so
first
log
line
is
that
cid,
so
the
cid
for
this
this?
This
is
yes,
hello.
This
is
doug
and
then
the
second
one
is
the
status
object
that
we
queried
for
so
we
get
the
cid
back
again.
This
second
property
is
the
deals.
The
file
coin
deals
that
this
particular
cid
is
included
in
now.
One
thing
to
note
is
that
usually
you
will
see
like
as
soon
as
you
upload
something
this
will
not
be
populated.
This
is
something
that
I've
actually
uploaded
a
while
ago,
and
so
it's
had.
A
I've
had
a
chance
to
make
it
into
file
coin
deals,
which
is
why
I'm
showing
you
this
particular
item,
but
but
here
we
go,
we've
got
5.2,
so
we've
got
three
deals
here,
and
this
is
being.
These
deals
have
been
done
on
mainnet
falcon
mainnet
this.
This
is
the
miner
that
this
deal
was
made
with
the
current
status.
So
initially,
when
you
upload
stuff,
you'll
get
you'll,
get
a
an
object
with
status,
maybe
cued
to
say
that
it's
it's
being
queued
up
and
what's
what?
What
kind
of
is
interesting?
A
Is
that
we're
kind
of
batching
up
these?
This
data
in
it,
so
it
will
be
queued
up
and
then
eventually,
we'll
make
a
big
deal
with
the
miner,
with
lots
of
lots
of
data.
A
So
that's
the
deals.
I
don't
know
if
there's
anything
more
interested
in
there
and
we've
got
the
network
in
there
because
we
have
test
nets
and,
and
then
it
allows
us
to
make
deals
with
with
miners
that
are
running
crazy
experiments
and
stuff
on
on
different
networks.
So
we
also
get
the
size
of
the
thing
we
get
the
the
pin
status
and
yeah
that's
the
status
api.
A
But
this
is
like
the
simplest,
the
simplest
most
simplest
api
we
have,
and
actually,
if
you,
if,
you've
ever
kind
of
minted
nfts
before
you'll
you'll,
know
that
an
nft
you
actually
kind
of
want
both
the
assets.
A
So
the
thing
that's
being
minted,
like
the
the
thing
that
the
artist
has
created
or
whatever
it
is
that's
being
minted,
but
also
you
kind
of
need
a
metadata
json
file,
so
you'll
need
to
store
on
ipfs
kind
of
at
least
two
things
so
the
asset
as
well
as
the
metadata.json,
and
what
that
would
mean
if
you're,
using
the
store
blob
api
you'd,
have
to
do
two
calls.
A
You'd
have
to
do
them
sequentially
because,
typically
from
the
metadata
json
file,
you
want
to
reference
the
the
the
asset,
and
you
can
only
do
that
by
having
to
see
idea
of
the
asset.
So
you
need
to
upload
it
first
and
then
it's
just
it
just
gets
a
bit
complicated.
So
we
have
this.
We
have
a
metadata
api
which
allows
you
to
more
easily
create
a
metadata.json
file
from
some
data.
A
So
what
I'm
gonna
do
is:
okay,
I'm
gonna
try
and
do
some
proper
live
coding,
and
so
we're
gonna
do
store.
A
Smaller
we've
got
our
our
yes,
this
is
dog,
and
so
our
metadata
api.
What
we
call
is
just
we
call
a
store,
a
store
function
and
that
we
have
some.
Obviously
we
have
some
touchscript
types
for
this,
so
we
get
some
really
good
information
about
this
function
that
we
are,
we
are
adding,
and
so
you
pass
that
a
object
and
that
object
will
is
what
will
what
this
kind
of
the
js
form
of
your
metadata?
A
Well,
there
we
go
so
and
then
I
think
the
minimum
the
minimum
you
can
have
is
is.
Is
these
items,
and
so
I'm
not
gonna.
I'm
gonna
pass
it
a
file,
because
what
what
the
api
does?
Is
it
just?
It
checks
that
the
data
you're
giving
it
is
actually
image.
The
image
has
to
be
a
an
image
or
a
video.
So
what
we're
going
to
do
here
is
we're
just
going
to
say.
A
Pass
the
the
file
name
in
for
for
creating
a
new
file,
so
I
can
choose
so
I
can.
I
can
read
this
file
with
this
file
name,
but
I
can
call
it
whatever
I
like
in
the
file.
So
that's
that's
cool
and
that'll
be
persisted.
I'm
just
gonna
give
it
a
type.
A
We
get
back
our
metadata
and
what
we'll
do.
A
Is
let's
log
out
the
metadata.url,
and
this
is
the
url
to
the
metadata.json
file
that
we
created?
So
what
happens
behind
the
scenes?
Is
that
the
store
method
takes
this
object
and
where
we
put
actual
file
or
blob
objects
in
properties,
what
it
does
is,
it
will
do.
One
shot
request
to
nft.storage
and
nftl
storage
will
unpack
that
information.
A
It
will
store
all
of
the
files
and
and
send
you
back
a
basically
a
json
object
like
this,
but
with
these,
these
files
replaced
with
ipfs
urls
to
that
that
content
which
is
stored
on
on
ipfs,
and
so
here
we
go
so
I'm
gonna
log
out
the
metadata.url
I'll,
also
log
out
the
metadata
data.
A
This
is
the
actual
data
that
you
would
typically
see
in
a
metadata
json
file,
just
to
show
that
that
that
url,
that
that
file
to
url
conversion
that
this,
this
message.url
property
is
basically
what
you'd
store
in
when
you're
minting
your
nft.
So
here
we
go.
A
Okay,
rad,
okay,
so
we've
logged
out
this
the
url.
This
is
what
you'd
see
when
you
store
on
chain
and
this
references
this
well.
This
is
a
javascript
version.
You've
got
like,
but
this
is
a
url
object.
But
if
you
to
string
on
that
url
object,
then
you
get
this
this
this
string
here
and
so
what
what
we'll
do
now
is
we'll
just
log
out.
Let's
look
at
that:
let's
just
log
out,
we've
got
an
embed
function.
A
What
this,
what
this
function
does
is
it
gives
us
back
that
same
that
same
object
here,
but
instead
of
having
urls
that
are
just
the
ipfs
urls,
this
will
actually
replace
those
with
gateway.
Your
ipfs
gateway,
url,
so
it'll
be
typically
a
dweb.link
url.
So
let's
just
rerun
that
to
get
those
gateway,
urls.
A
Here
we
go,
and
so
this
becomes
clickable.
I
can
just
open
this
and
it
should
open
in
my
browser
hooray
and
that's
my
that's
my
dog
brad
I
can
also
I
should
also
be
able
to
if,
if
I
grab
this,
I
should
hopefully
be
able
to
go
so
another
gateway
different.
It's
the
same
but
different
any.
You
should
be
able
to
fetch
content
from
ipfs
from
eddie
any
http
gateway,
so
it
doesn't
matter
which
one
you're
using-
and
this
is
my
json
file.
A
A
I
think
that's
about
it
for
the
live
coding.
I
can't
believe
it
all
totally
worked
right.
Let's
stop
here
for
a
second
and
we'll
head
on
back
to
the
slides
cool.
So
aside
from
nft
dot,
storage,
there's
there's
some
other
things
I
wanted
to
just
quickly
tell
you
about.
If
I
have
time
so
we're
gonna
be
starting
our
save
the
nfts
initiative
and
and
what
that
means
is
we're
gonna
crawl,
the
ethereum
chain
from
genesis?
A
A
So
so
none
of
these
nfts
that
have
been
created
so
far
like
none
of
them
will
hopefully
ever
like
disappear
off
the
internet
again
we'll
we'll
upload
stuff,
that's
ipfs,
ipfs
already,
but
also
things
that
are
on
your
and
the
end
of
urls
to
things
that
aren't
ipfs
or
decentralized
at
all.
So
we'll
do
that
and
we'll
do
it
for
not
just
ethereum
we're
gonna,
also
gonna
see.
A
If
we
can,
we
can
save
nfts
on
other
blockchains
and,
of
course,
what
we'll
do
is
we'll
try
and
visualize
that
data
on
entry
to
storage,
we're
gonna,
create
a
new
nft
checker,
there's
a
there's
already
an
nfc
checker,
but
this
would
be
a
new
one
and
it
will
show
you
the
the
health
of
unft
in
in
terms
of
like
how
how
many
providers
on
ipfs
there
are
for
your
nft
and
how
many
and
obviously
we'll
show
you
that
information.
A
I've
already
showed
you
about
the
falcon
deals
that
your
nfc
is
on.
So
how
how
well
how
well
stored,
is
your
nft,
I
guess
in
the
long
term,
and
and
obviously
we'll
try
and
make
those
metrics
available
to
developers
over
some
sort
of
public
api,
so
they
can
do
what
they.
What
they're
pleased
with
the
second
thing?
The
second
and
final
thing
before
I
leave
is
about
this.
This
brand
new
website
and
so
storing
nft
data.
A
The
off-chain
stuff
is
just
like
a
small
part
of
a
much
bigger
process
of
actually
minting
an
nft,
and
so,
if
you
actually
want
to
do
something
like
that-
and
you
have
no
idea
what
you're
doing
like
like
me,
then
this
this
brand
new
website
should
help
you
out
with
that,
and
so
it's
got
like
step-by-step
tutorials
and
how-tos
and
code
samples
and
and
like
references
for
the
erc,
schemas
and
stuff
and
like
what
like
the
concept
of
d-apps
in
general
and
stuff
like
that.
A
So
and
and
the
best
thing
is
that
the
tutorials
here
actually
use
nft
storage.
So
you
get
all
of
those
those
good
practices
all
kind
of
baked
in.
So
you
should
check
this
out.
This
is
brand
new.
This
is
this
was
launched
like
yesterday.
It's
just
some
stuff,
that's
still
under
construction,
it's
completely
new,
but
you
should
go
check
it
out
and
please
any
feedback
you
have
on.
It
is
greatly
appreciated.
So
that
is
all
of
the
words
that
I
have
to
say.
A
For
now,
you
should
go
out,
go
and
check
out,
nft.storage
and
and
nftschool.dev
that's
the
school
that
I
just
talked
about,
but
yeah.
Thank
you
very
much.
B
For
nft
storage
is
the
metadata
fully
immutable,
or
can
that
be
amended
over
time?
If
you
were
to
add
more
properties,
and
just
the
question
is
around
just
that-
and
there
are
a
couple
of
other
threads
around
it.
But
maybe
this
is
a.
A
Quick
answer
yeah:
this
is
a
conversation
we've
had
previously
and
right
now
there
is
no
mutability
iqs
in
general.
A
That's
not
not
great
for
immutable
immutability,
for
the
reasons
that
I
that
I
mentioned
earlier,
but
yeah
we've
been
having
conversations
and
we
want
to
kind
of
come
up
and
build
this
this
thing
out
and
well,
I'm
not
sure
how
how
necessarily
how
that
would
work
for
metadata,
adding
properties
to
that,
but
in
general,
like
having
kind
of
ipfs
collections
of
things,
would
be
really
useful
and
we're
trying
to
build
that
out.