►
Description
To register to the Faber Web3 Hackathon got to https://faberweb3.devpost.com.
A
B
B
Yeah,
it's
I'm
I'm
in
here
in
I'm
in
australia.
In
case
you
couldn't
tell
from
the
accent
it's
10
o'clock
here:
10
p.m,
but
good
morning
to
everyone
over
in
europe-
or
I
don't
know
what
time
it
is
in
america-
probably
super
late
there
I
don't
know
I
I
I.
A
Yeah
I
was,
I
was
saying
on
the
on
the
start
of
the
session.
Yesterday
we
have
people
from
46
nationalities
crossing
16
time
zones,
so
some
people
are
definitely
asleep.
Others
are
kind
of
midway
through
the
afternoon.
Others
like
me,
have
just
are
just
starting
the
day
and
some
others
like
you
there
there
are
some
people
from
australia
participating
in
yakutan
as
well,
so
some
are
are
kind
of
in
their
kind
of
early
evening
or
late
evening.
So
I
think
this
is
going
to
be
fun
ali.
B
To
your
session,
I
will
just
I
don't
think
I
can
share
the
screen.
I've.
A
B
Should
be
able
to
go
now,
amazing,
thank
you.
So
much
welcome
all
righty
cool,
so
g'day
good
morning
afternoon
evening.
Everyone
thanks
for
tuning
in
today
from
wherever
you
are.
Let
me
know
in
the
chat,
I'd
love
to
hear
where
you're
from
it's
kind
of
one
of
those
really
unique
things
about.
You
know
virtual
hackathons,
that
we
can
tune
in
and
participate
from
everywhere.
So
it's
cool
getting
to
know
so
many
different
nationalities
as
well.
B
So
I'm
super
excited
to
be
here
today
and
shout
out
to
faber
carlos
and
all
the
organizers
for
running
this
awesome
event
to
participate
and
build
up.
Like
I
kind
of
said,
I
love
hackathons,
because
they're
really
an
amazing
way
to
harness
the
power
of
community
and
innovation
and
they
really
kind
of
capture
the
spirit
of
why
I
got
into
tech
in
the
first
place,
which
is
the
impact
that
innovation
and
innovative
science
and
tech
can
really
have.
B
There's
like
a
huge
capability
for
tech
to
help
transform
our
life
as
and
and
the
way
our
society
functions.
We
can
see
that,
just
by
you
know
how
we
survived
over
covert.
If
we,
we
weren't
able
to
communicate
like
by
zoom
and
buy
digital
tech,
so
it
can
really
create
new
industries
and
collaboration
paths
and
really
help
us
solve
complex
problems.
B
So
anyway,
that's
a
long,
winded
way
of
saying
really
looking
forward
to
seeing
the
projects
and
ideas
that
come
out
of
this
also
joined
here
today
by
biscuit
he's
our
far
corn
corgi
I've
just
named
him
biscuit
too
he's
a
good,
doggo
and
he'll
be
helping
me
with
my
demo
today
so
say:
hi
to
biscuit
so
I'm
ali
australian,
as
I
said,
developer,
advocate
here
at
farcoin,
which
means
I
get
to
work
on
my
passion,
which
is
helping
enable
others
to
build
out
their
ideas
and
supporting
developers
on
their
own
journey
and
I'm
really
proud
of
this
big
open
source
web
3
project,
which
I
kind
of
coined
as
the
ultimate
open
source
project
in
blockchain
and
and
the
wider
tech
community.
B
So
I've
got
a
mechatronics
and
computer
science
background
and
developer.
I
used
to
own
a
cafe
as
well,
but
yeah.
My
passion
is
in
developer
advocacy
these
days.
So
that's
a
little
bit
about
me.
B
If
you
want
to
know
more
feel
free
to
hit
me
up
as
well
so
what's
on
the
agenda
today,
firstly,
I
am
going
to
show
you
how
to
make
a
nft
how
to
code
one
up
and
make
a
front
end
and
connect
to
that
front
end
and
and
deploy
it
today,
and
I'm
going
to
show
you
why
ipfs
and
falcon
are
important
in
nfts
and
if
you
didn't
catch
the
session
by
my
colleague
constantin
yesterday
on
you
know
kind
of
some
of
the
use
cases
of
nfts.
B
Don't
worry,
I'm
going
to
go
through
a
little
bit
of
background
on
them
first
and
you
know
before
you
tune
out
as
well:
they're,
not
all
just
hype,
just
in
case,
because
I
know
there's
a
lot
of
noise
around
nfts
at
the
moment.
So
we
want
to
break
that
down.
B
So
I'm
going
to
do
that
by
showing
you
how
you
can
create
an
nft
contract
in
solidity,
use,
ipfs
and
file
coin
devtool
project
called
nft.storage
to
ensure
we
store
the
nft
metadata
securely
and
persistently
and
immutably,
and
I'm
also
going
to
show
you
how
to
deploy,
say,
you've
written
a
front-end
app,
I'm
going
to
show
you
how
to
deploy
that
on
fleek,
which
is
a
hosting
site,
pretty
much
like
netlify
or
versel,
but
it's
kind
of
cooler
because
you
are
deploying
it
with
ipfs
under
the
hood.
B
So
it
gives
you
this
hash
for
the
content
and
you
can
ensure
that
it's
the
same
content
every
time.
Unless,
of
course,
you
change
the
kit
which
you
know,
that's
exactly
what
you
want
to
do
with
the
hosting
site.
Anyway,
I'm
going
to
show
you,
you
know
hands-on
how
to
do
a
couple
of
those
things.
B
So,
let's
talk
about
nfts
nfts
have
become
a
really
big
story
in
the
last
year,
or
so
with
celebrities
and
big
brands
everywhere,
releasing
their
own
nft
collections,
millions
of
dollars
changing
hands
for
them.
Auction
houses
like
sophie's
getting
involved
in
auctioneering
them
tweets
and
code
have
been
sold
at
nfts
and
even
the
australian,
open
tennis
tournament,
which
was
held
here
in
melbourne,
recently
released
nfts,
allowing
people
to
own
a
piece
of
the
action
on
the
courts.
B
B
Nft
is
because
they're
not
just
collectible
digital
assets,
but
they
can
have
a
lot
of
utility
outside
this
and
they
have
the
potential
to
really
disrupt
some
industries
or
to
enhance
others,
as
we've
already
started,
to
see
with
some
artists
markets
that
you
might
be
aware
of.
B
So
you
know,
we've
all
heard
the
stories
about
how
spotify
and
youtube
aren't
really
paying
their
creators,
and
this
is
kind
of
spawning
new
industries
with
nfts
to
give
like
kind
of
artists
control
of
their
own
work
back
first,
so
what's
an
nft
a
non-punchable
token
is
it.
You
know
if
non-fungible,
when
I
first
saw
that
I
just
went,
is
this
part
of
the
mushroom
family?
Okay,
not
really,
obviously
not,
but
a
non-funchable
asset
simply
means
that
it's
unique.
B
So,
unlike
other
assets
like,
for
example,
bitcoin
or
money,
where
you
can
trade,
one
bitcoin
or
euro
for
another
bitcoin
or
euro-
and
you
have
the
exact
same
thing-
nfts
are
all
one-of-a-kind
assets,
so
the
analogy
is
more
akin
to
trying
to
swap
the
mona
lisa
for
a
girl
with
a
pearl,
earring
they're
not
equivalent,
so
this
non-fungibility
and
their
basis
on
blockchain
gives
nft
some
essential
properties,
and
I
know
my
colleague,
like
I
mentioned
before
constantine-
gave
a
great
run
down
on
this
yesterday,
but
just
to
reprep
for
those
that
might
have
missed
it.
B
Nfts
have
these
six
main
properties.
That
is
that
they
are
unique,
which
I
just
mentioned.
That
means
it
can
represent
a
digital
physical
product
like
a
collectible,
a
house
contract,
a
vote
or
a
ticket.
B
They're
provably
scarce
nfts
have
a
traceable
origin,
backed
by
a
cryptographic
hash
with
supply
being
controlled
by
the
owner
or
developer.
So
this
has
some
great
applications
for
say,
collections,
gaming
assets
or
for
limited
edition
representation
of
items
like
I
don't
know,
signed
albums
or
similar
things.
It
could
obviously
also
be
used
for
things
like
proof
of
education.
B
Your
your
degree
could
be
an
nft
or
for
proof
of
attendance
purposes,
so
there's
applications
that
way
outside
just
digital
up.
They
have
guaranteed
ownership,
which
is
a
property
inherited
from
the
blockchain
and
that
ensures
traceability
and
data
verifiability.
So
this
gives
rise
to
application
usage
of
things
like
identity
and
authenticity
purposes.
B
B
Then
you
could
use
something
like
an
nft
to
prove
that
so
they're
fraud
resistant
so
because
nfts
are
secured
with
cryptographic
proofs,
they
can
be
used
in
things
like
voting
or
membership
rights
for
securing
identity
and
authenticity
again
for
legal
applications
for
both
digital
and
physical
things,
and
I
also
know
because
I'm
x
ibm
that
ibm
is
currently
using
them
to
ensure
the
authenticity
of
patents.
B
For
example,
so
as
an
enterprise
or
business
use
case
there,
so
fifth
property
is
that
they're
transferable,
so
that
might
seem
a
bit
weird,
but
nfts
can
also
be
transferable,
so
they
can
have
value
inherently
attached
to
them,
and
this
gives
rise
to
use
cases
in
asset
management
or
finance
records
or
also
royalties.
B
So
if
you
resell
an
asset
for
example,
if
you
resell
a
song
to
someone
else,
you
could
still
keep
getting
royalties
where
you
could
have
a
charity
nft
that
when
it's,
you
know
transferred
to
someone
else
for
a
value,
you
know
still
continues
to
pay.
The
charity,
for
example.
B
So
there's
there's
applications
like
that
that
we're
currently
seeing
as
well
and
the
last
one
is
their
indivisible,
which
I've
kind
of
mentioned
before
that
they
can't
be
used
for
things,
which
means
that
sorry,
but
you
know
it's
not
bitcoin
or
money,
so
that
means
they
can
be
used
for
things
like
fractional
ownership
purposes,
for
example
like
in
real
estate,
or
I
saw
one
with
fractional
ownership
of
yachts
the
other
day
just
kind
of
interesting.
So
these
are
the
properties
that
open
up
a
really
unique
excuse.
B
Pun,
opportunity
for
use
cases
and
applications
to
be
based
on
nfts,
and
these
are
this
is
where
I
really
want
to
encourage
you
to
start
when
you're
thinking
about
new
applications
and
use
cases
they
could
apply
to
and
where
they
could
be
used
in
some
really
interesting
ways.
B
One
of
the
other
great
things
about
nfts
is
because
they're
based
on
smart
contracts,
the
code
can
be,
you
know,
extended.
It's
super
flexible.
You
can
then
apply
it
to
things
like
insurance,
identity,
verifications,
authentications,
and
you
can
trigger
these
contracts
in
a
trustless
automated
way
on
the
blockchain,
so
cool.
I
could
probably
go
on
about
this,
but
I
I
know
I
promised
you
that
I
was
going
to
show
you
how
to
actually
code
it.
B
B
So
you
could
code
up
an
nft
from
scratch
rather
than
use
this
standard,
but
a
better
approach
is
to
use
a
community
vetted
and
security
audit
implementation
of
this
standard,
and
you
can
find
these
on
open
zeppelin,
so
open
zephyr
has
a
range
of
standard
implementations
and
utility
contracts
and
libraries
that
they
used
widely
by
the
industry
and
community
to
create
not
just
nfps,
but
you
know
tokens
as
well
and
and
they
have
a
bunch
of
utility
contracts
as
well,
that
are
really
useful.
B
So
you
can
use
these
contracts
on
any
ethereum
compatible
chains,
so
your
layer,
2s,
like
polygon
or
compatible
chains.
I
think
avax
is
an
avm
compatible
chain
near
you
know
you
can
use
them
on
it
on
anything.
So
this
is
a
good
thing
about
studying,
with
an
ethereum
based
contract.
If
you
haven't,
haven't
done
much
smart
contract
writing
before
so
the
open,
zeppelin
erc
721
standard,
which
you
can
kind
of
see
a
little
snippet
of
here,
and
I
think
I
do
have
it
open
somewhere
as
well.
B
So
this
is
the
open,
zeppelin
docs
here
and
gives
you
a
little
bit
of
a
rundown
on
how
to
create
them
and
here's
the
api.
You
know
this
is
documentation
for
coders.
B
You
can
see
all
of
the
functionality
there,
but
the
main
function
we
want
to
look
at
here
is
the
mint
and
the
set
token
uri
functions,
though.
So,
if
we
look
at
this
example,
contract
implementation
we
can-
which
is,
I
will
just
click.
Hopefully
my
animation
works.
It
does
okay.
So
this
is
an
example:
implementation
that
I've
taken
straight
from
the
open,
zeppelin
documentation
and
this
if
we
have
a
look
at
it,
it's
just
showing
how
to
create
a
game
item.
B
So
we
see
this
contract
creates
a
numbered
id
game
item
for
a
player
with
a
wallet
address
and
it
takes
a
token
uri,
which
is
a
universal
resource
identifier
as
a
parameter,
so
constructor
erc
721
the
name
of
the
collection,
the
symbol
for
the
collection
and
this
function
here
is
where
the
token
gets
minted.
So
address
player.
B
The
award
item
you
know
takes
the
address
of
the
player
so
where
you're
gonna,
who
who
owns
this
nft
and
then
this
the
string,
the
token
yuri
and
then
oops,
it
mints
a
mince
that
item
and
then
it
sets
the
token
yuri
to
that
nft.
So
it's
pretty
basic
code
here
and
you
can
make
an
nft
as
simply
as
that,
but
this
is
where
it
kind
of
gets
interesting,
because
the
token
uri
is
simply
a
json
object
containing
the
unique
characteristics
of
the
nft.
B
So,
for
example,
here
it
stores,
hamil,
thor's
hammer,
but
what's
important
is
that
we
really
want
to
ensure
that
our
metadata
conforms
to
the
characteristics
we're
looking
for
in
our
nft.
So
it's
non-fungibility,
it's
uniqueness
and
you
know
so
where
and
how
we
save.
This
metadata
is
a
really
important
consideration
and
there's
three
main
ways
to
save
this
nft
metadata.
The
first
one
is,
you
can
save
it
in
the
contract
itself,
which
is
probably
you
know,
you
would
argue,
is
the
best
way
to
do
it.
B
But
the
problem
with
this
is
that
it
can
get
prohibitively
expensive
to
store
information
like
this,
especially
on
the
ethereum
chains
and
on
many
chains,
so
particularly
if
you've
got
a
large
file,
for
example,
images,
music,
video
files,
these
these
are
really
large
files
and
storing
them
on
especially
ethereum.
It's
just
prohibitively
expensive,
and
you
don't
want
to
do
it.
B
You
know,
they've
used
it
here,
but
unfortunately,
there's
multiple
issues
with
this
one.
Is
that
we're
relying
on
someone
to
continue
to
pay
for
this
storage
and
that
the
service
doesn't
go
down
and
we've
all
seen
amazon
and
all
the
other
clouds
go
down
at
some
point
or
other,
but
the
second
more
problematic
one.
Is
that
we're
also
relying
on
this
http
address
to
always
resolve
to
the
same
data?
B
If
someone
wants
to
change
this
data
and
has
access
to
this
server,
our
non-fungibility
property
would
get
lost
and
that's
kind
of
a
big
concern
when
you're
trying
to
make
a
non-fungible
token,
so
that
kind
of
brings
us
to
the
third
way
you
can
save
it
to
ipfs
content,
id
and
filecoin
and
even
actually
open
zeppelin
has
some
notes
on
this.
So
they
say
at
the
bottom
of
this
contract
implementation.
B
B
So
I'm
not
just
trying
to
sell
here,
it's
actually
a
community
standard
for
doing
it,
so
yeah,
so
just
to
backtrack
a
little
bit
for
those
that
may
have
missed
what
ipfs
and
filecoin
is
as
well.
So
ipfs
is
a
protocol
which
uses
content
addressing
rather
than
domain,
addressing
and
that's
kind
of
really
interesting
when
you
start
going
down
the
rabbit
hole
and
looking
at
it
and
really
leads
it
to
some
cool
stuff
that
you
can
do
with
it.
But
I
I
digress.
B
Basically,
instead
of
having
content
resolved
based
on
the
http
like
domain
name,
the
content
is
guaranteed
to
be
the
same
at
the
cryptographic
hash
that
we
ask,
for
which
is
a
big
benefit
for
nfts.
So
ipfs
allows
users
to
store
and
transfer
verifiable
content
address
data
in
a
peer-to-peer
network,
and
it
even
allows
you
to
persist.
B
The
data
sorry
elite
allows
you
to
persist
the
data
you
want
on
your
own
ipfs
nodes
with
pinning,
but
the
data
will
only
exist
on
the
network
as
long
as
one
user
continues
to
store
it
and
therefore
be
able
to
provide
each
other
when
they
request
it.
So
this
is
where
filecoin
comes
in.
It
builds
on
the
unique
content
addressing
of
ipfs
to
add,
longer
term
data,
persistence
with
crypto
economic
incentives
for
storage
providers,
and
this
ensures
files
are
stored
reliably
over
time
multi-generational
and
for
you
know,
you
know
multi-generational
time
frames.
B
If
you
want,
or
even
just
short
time
frames,
you
only
want
to
save
it
for
a
day.
You
can
also
do
that,
probably
not
with
nfts,
but
you
get
by
drift
and
it
it
it's
cheap
and
it's
stored
in
multiple
places
at
once,
because
it's
a
distributed
network.
B
So
this
is
why
we
use
ipfs
and
file
coins
for
nfts,
because
you
need
storage,
that's
off
chain
on-chain's
too
expensive.
You
need
a
fixed
address
for
the
content
to
live,
which
is
where
ipfs
comes
in
and
you
need
storage,
that's
persistence
from
reliable,
which
is
where
filecoin
comes
in
now,
building
directly
on
ipfs
and
far
coin.
Isn't
necessarily
the
easiest
thing
to
do
so.
B
What
has
been
built
out
is
a
few
helper
tools.
That
kind
of
enable
us
to
have
a
couple
of
lines
of
code
inside
our
front
end
in
to
enable
us
to
do
that,
and
one
of
the
big
ones
is
nfp
storage.
So
nft
storage
is
you
know
private,
primarily
storage
for
nfts,
so
to
store
this
kind
of
metadata
and
they're,
offering
it
for
free
at
the
moment,
and
all
you
do
is
get
an
api
key.
B
But
okay,
so
this
is
the
project
that
I've
kind
of
created
for
you
guys
a
little
faberweb
free,
hackathon
project.
Let's
take
a
look
at
it
if
I
can
find
it
so
here
it
is
here.
I
think
this
is
just
my
localhost
version
yep.
It
is
so
basically,
you
know
just
need
to
connect
to
a
wallet
which
I
might
need
to
see
my
toolbar
for
so
I'll,
just
I'll
just
back
up
a
little
bit.
B
So
sorry,
I
always
have
so
many
tabs
open
that
I
have
a
suspender
on
just
to
save
myself,
some
storage
on
on
chrome
anyway.
So
this
is
nft
storage.
These
are
the
docs
all
you,
it's
pretty
easy
to
start
with.
You
just
create
an
account
like
you
do
with
anything
else,
and
then
all
of
a
sudden
you
can,
you
know,
store
as
many
things
as
you
like.
I
think.
B
If
I
just
go
to
this
page,
I
should
I
I
should
be
able
to
see
all
the
files
that
I've
previously
saved
are
going
through
my
front
end,
which
are
going
to
take
a
while
to
load,
because
I
think
I've
saved
so
many
things.
So
if
we
have
a
look
here,
you
can
see
that
this
is
the
ipfs
hash
and
that
can
represent
a
bunch
of
different
things.
It
could
just
be
one
image:
it
could
be
a
whole
json
file.
B
It
could
be
multiple
json,
like
multiple
images
or
multiple
nfts
in
a
json
file
that
you
you
pull
out
as
you
like.
It
can
basically
be
anything.
So
that's
the
flexibility
there,
all
right,
let's,
let's
jump
into
the
code,
though
so,
where
have?
I
got
my
code?
Sorry
guys,
all
right
here
we
go.
B
So
all
I've
done
here
is
to
create
this
program
is
to
create
a
pretty
basic
back
end
solidity,
contract
or
back
end,
a
solidity
contract.
I
should
say
which
is
ethereum
language
and
you
can
see
I've
imported
the
open,
zeppelin
contract.
To
do
this.
B
Excuse
me
so
I'm
creating
a
file
coin
ticket
nft,
which
I'm
going
to
give
you
a
link
to
near
the
end
of
this
talk.
So
you
can
go
on
mint
one
for
yourself
on
the
ringbear
network,
so
you
can
get
free
f
to
to
mint
it
and
look
at
it
on
wearable
or
openc,
which
are
two
big
nft
marketplaces.
B
But
basically
I've
created
a
contract
which
creates
this
far
coin
ticket
nft,
I'm
using
some
helper
functions
to
keep
track
of
the
token
ids.
So
each
nft
in
this
collection
in
this
contract,
we'll
have
a
specific
id
because,
like
I
said,
they're
all
unique,
I'm
only
going
to
allow
100
nfts
to
be
minted
here.
So
I
am,
you
know,
creating
a
collection.
That's
only
ever
going
to
have
100
nfts.
B
So
that's
my
max
nfts
function
there
and
I'm
just
going
to
store
some
details
about
the
nft
in
this
in
this
structure.
So,
for
example,
the
owner,
the
the
yuri,
which
will
be
an
ipfs
address
and
the
token
id
just
so
that
I
can
get
that
collection
back
and
display
it
on
my
front
end
easily.
I've
also
got
a
couple
of
events
here.
So
when
we
do
mint
a
new
nft,
an
event
will
be
admitted
to
the
blockchain,
which
my
front
end
can
keep,
which
can
keep
a
track
of.
B
So
the
event
can
then
be
pulled
in
to
my
react
front
end
with
just
a
basic
listener
and
I'll
always
have
an
updated
site
that
way.
So
my
constructor,
the
erc
721,
the
nft
standard,
is
going
to
create
this
name
and
well.
This
isn't
the
best
symbol,
but
so
faberweb
3hack
2022
file,
coin
starter,
nfts
and
I've
set
my
max
nfts
there
to
100..
B
Then
I've
got
a
second
function,
and
this
is
where
all
the
action
happens.
So
when
someone
you
know
connects,
I
will
need
to
connect
to
my
wallet
so,
but
when
someone
presses
this
button
here
so
enters
their
name
and
I'm
just
gonna
write.
So
I've
actually
also
put
a
limiter,
as
you
might
have
seen
here.
B
This
account
already
owns
a
ticket,
so
I've
actually
put
a
limiter
in
here,
because
I
only
want
one
of
these
nfts
per
address,
so
I've
coded
that
into
my
contract,
so
only
one
nft
minted
per
address,
so
I'm
just
going
to
change
accounts
to
the
sneaky
around
it
really
and
I'll
be
able
to
mean
another
nft
here
so
hi
favor.
This
is
really
meant
to
have
a
name
on
it
because
it's
you
know
the
idea
is
that
it's
a
ticket,
so
you
can.
You
know
personalize.
B
This
write
your
own
name
put
your
ether
address
in
something
like
that
and
then,
when
I
click
this
nft
button.
Basically
my
react
front
end
will
hit
the
contract
here,
my
nft.
This
is
where
it
checks
that
I
don't
already
have
a
nft
and
then
it's
safe
mints.
So
it's
safe
means
to
the
person
that's
asking
for
it
with
a
new
with
the
token
id
and
then
I'm
setting
the
token
uri,
which
I
pass
into
it,
because
I'm
going
to
dynamically
generate
the
svg.
B
That's
displayed
on
this
front
end
here
on
that's
displayed
here
on
the
front
end
and
pass
that
into
my
contract.
So
that's
what
I'm
doing
there
and
then
yeah,
and
then
I
admit
this
event
that
a
new
nft
has
been
minted.
So
that's
the
basic
contract
there.
If
you
do
have
any
questions,
please
feel
free
to
shout
out
and
I
actually
can't
really
see
the
chat.
So
apologies
for
that.
B
But
if
you
do
have
any
questions,
please
you
know
shout
out
or
feel
free
to
ask
at
any
time
or
get
in
touch
with
me
after
this.
So
let's
get
to
the
front
end
where
all
the
magic
happens
with
nft
storage.
So
this
is
a
basic,
a
create
react.
App
and
you
know
I
think
most
people
have
probably
heard
of
create
react
app.
B
You
could
do
this
in
javascript
any
any
kind
of
front
end
you
like
basically,
but
this
is
where
the
magic
happens,
because
I'm
using
nft
storage
from
nft.storage
and,
like
I
said
all
I
had
to
do-
was
create
an
account
and
get
an
api
key.
So
I've
created
an
api
key
for
this
react
app,
nft
storage,
key.
B
I
won't
show
you
mine,
because
you
know
security
and
all
that,
but
as
an
example,
this
is
what
I'm
using
just
an
api
key
in
my
front-end
app.
Excuse
me
all
right,
where's,
my
function,
all
right.
So
when
I
do
click
on
you
know
create
nft.
Basically
it
is
going
to
be
this,
create
nft
functionality
and
also
I'll
give
out
the
github
link
for
this.
So
you
can
go
through
this
at
your
own
leisure
and
have
a
look,
how
I've
done
it
and
maybe
fix
up
some
of
the
best.
B
So
I
did
this
in
a
bit
of
a
hurry,
but
basically
I
can
show
you
what
the
create
nft
data
does.
So
I
connect
to
nft
storage
and
so
I'm
creating
an
mft
storage
client
with
my
api
key
and
I'm
then
going
to
create
the
data
for
for
my
image
which
I'll
put
in
put
in
json,
and
I
do
that
by
I've
got
a
base
svg
here
it's
super
long
but
because
I
didn't
you
know
it's
quite
a
complicated
image
and
I
just
created
it
with
an
online
version.
B
There's
probably
ways
to
optimize
this,
but
I've
basically
got
this
base.
Svg
and
at
the
end
of
that,
I'm
appending
the
person's
name
that
they
input.
B
So
this
name
is:
is
our
our
input
tag
and
then
filling
finishing
the
svg
with
that
and
I'm
just
using
this
crypto
js
encrypts
library
just
to
make
sure
someone
doesn't
try
to
create
a
different
image
to
send
to
our
contract
instead,
because
I
kind
of
want
to
ensure
that,
but
you
know
those
are
front,
end
security,
you
know
issues
so
then
all
I
have
to
do
is
go
client.store
and
I
pass
in
the
json
that
I
want,
which
is
the
name
description,
the
image
and
maybe
any
traits
or
anything
else.
B
You
want
to
add
to
this
nft,
for
example,
I've
gone
traits
awesomeness
100
here,
but
you
could
add
any
trait
you
wanted
into
your
json
or
you
could
also
just
pass
this
the
image
that
you
wanted
into
your
contract
and
do
the
traits
on
the
actual
contract
itself,
because
they're,
probably
not
as
storage
at
consuming,
so
it
wouldn't
be
as
expensive
to
do
that.
B
So
that's
another
possibility
here,
but
then
I
just
you
know
so
this
will
go
through
to
nft
storage
to
be
stored
automatically
and
give
us
back
an
ipfs
cryptographic
hash,
which
I
think
we
should
be
able
to
see
in
my
thing
here
so
I've.
This
is
where
it
says
metadata
saved,
and
this
is
nft
storage.
B
Returning
with
an
object
and
as
you
can
see,
this
is
the
ipfs
url
that
it's
saved,
as
so,
it's
just
saved
as
ipfs
cryptography,
metadasa
metadata.json
and
for
the
data
description
image
name,
all
those
things
that
we
just
sent
in
so
really
cool,
really
easy
and
I'll.
Just
get
rid
of
this
remix.
I
was
going
to
show
you
how
to
test
your
contract.
We
probably
don't
need
that
and
that's
really
all
it
is.
B
That's
all
you
have
to
do
to
save
your
data
to
to
the
front
end
and
I'll
just
approve
this
transaction
so
because
I
haven't
approved
it,
it's
still
loading,
so
the
image
has
been
created
on
nft.storage,
but
I
haven't
confirmed
this
to
be
an
nft
yet
so
I
haven't
sent
this
transaction
to
the
blockchain,
so
I'm
just
going
to
confirm
that
to
actually
mint
my
nft.
B
Awesome
so
we've
minted
it
so
now
we
can
see
that
transaction
on
on
ether
scan
I'll
just
get
rid
of
that
one
so
ring
p
test
net
transaction
so
make
sure
if
you
do
go
to
this
site
later
that
you
are
on
the
ring
contestant
and
not
spending
real
f
on
this.
You
can
then
go
and
see
your
nft
on
wearables,
so
wearable
or
openc.
B
Excuse
me.
It
does
take
a
while
to
propagate
through
to
these,
so
it
might
not
be
immediately
available
but
bring
sorry
c
and
wearable
and
by
the
way
openc
does
use
ipfs
and
filecoin
for
their
minting.
They've
got
a
you
know,
mint
and
nft.
You
just
drag
and
drop,
and
you
can
basically
create
a
collection
in
openc
itself
and
they
do
use
ipfs
and
filecoin
for
their
metadata
as
well,
which
is
kind
of
fun
fact
there,
but
yeah.
You
will
be
able
to
see
this
token.
B
It
just
takes
a
while
for
it
to
propagate
through
to
these
platforms
and
that's
basically
it
for
saving
to
nft
storage.
The
only
other
thing
that
I
maybe
want
to
talk
about
here
is:
oh
sorry.
This
is
my
ask
contract
to
min
nft,
so
this
was
my
create
the
nft
metadata
and
send
through
nft.storage,
and
then
this
is
my
me
asking
the
contract
to
mint
that
nft,
so
sending
it
to
my
contract
function
and
just
here
you
can
have
a
look
through
through
that.
B
If
you
don't
know
already-
and
this
is
where
I
set
all-
that
contract
address
and
the
rare
where
to
go-
the
links.
Basically,
the
wearable
link
the
openc
link
the
after
scan
link,
so
I
set
them
here.
B
B
It
won't
actually
work
and
that's
because
chrome
browser
doesn't
by
default
have
ipfs
installed
on
it,
so
we
need
kind
of
a
http
gateway
if
you're
using
something
like
brave
browser
or
I
think
opera
as
well,
they
natively
have
ipfs
links
installed
in
them.
B
So
if
you're
in
brave
browser,
you
can
go
straight
to
that
link,
and
this
is
actually
brave
browser,
so
I
might
just
put
it
in
here
and
brave:
will
use
a
ipfs
http
gateway
to
return
the
data
for
us,
which
is
cool,
but
we
want
to
be
able
to
use
it
on
any
browser.
We
go
to
right.
B
So
in
order
to
do
that
on
my
front
end,
what
am
I
doing
is
appending
creating
an
image
url
for
for
creating
an
ipfs
gateway
link
in
order
to
display
it.
So
I
I
will
retrieve
the
data
from
from
the
back
end
from
the
function
where
you
know
I
was
storing
all
of
those
in
an
array.
Basically,
so
every
time
one
was
minted,
I
put
it
in
an
array
and
I
had
a
fetch
function
where
I
could.
You
know
see
that
see
that
data.
B
So,
every
time
we
reload
this
page,
it
will
get
this
nft
collection,
of
which
there
is
current
two
and
it
fetches
this
back.
And
then
I
need
to
convert
this
ipfs
link
into
something
that's
readable
on
any
browser.
So
I
do
that
by
using
a
http
gateway.
B
Basically-
and
you
can
have
a
look
at
this
there's
a
web
page
where
you
can
have
a
look
at
the
status
of
http
or
ipfs-
sorry
http
bridge
links,
so
you
can
have
a
look
at
all
the
people
that
are
using
them,
but
this
is
usually
the
recommended
one
and
it's
http
s.
The
link
for
the
cryptographic
ipfs.dweb.link.
B
And
that's
how
I'm
basically
fetching
it
on
the
on
the
front
end.
It's
it's
really
kind
of
as
as
simple
as
that.
There's
my
fetch
nft
function
as
well.
Yeah.
I
think
I
think
that's
about
it
than
it
for
creating
the
nft
contract
and
creating
this
whole
thing.
B
As
I
mentioned,
I've
got
a
github
and
happy
for
you
to
use
that,
but
otherwise
feel
free
to
play
around
with
this
to
yourself,
I'm
just
going
to
post
the
link
into
the
zoom
chat
now,
so
this
is
currently
hosted
and
how
I've
hosted
it
and
it's
on
a
different
contract.
So
there's
actually
none
that's
been
minted
yet,
but
I
post
that
into
the
chat,
so
feel
free
to
jump
on
there
and
meet
yourself.
Your
own
favor,
web3
nft,
but
I
am
using
fleek
in
order
to
host
this.
B
So
flake
is
a
really
cool,
netlify,
slash
versacell,
like
deployer,
so
hosting
provider,
but
what's
unique
about
it
is
that
it
is
using
ipfs
or
you
can
choose
to
use
ipfs
under
the
hood
to
host
things.
So
this
gives
you
some
guarantees
and
it's
like
kind
of
my
favorite
thing
and
I've
just
host.
It's
super
simple,
like
it's
as
simple
as
connecting
to
the
github
that
branch
that
you
want
to
host
off.
If
you
make
a
change
on
the
github
branch,
it
will
automatically
redeploy
but
yeah.
B
Basically,
all
you
have
to
do
is
is
connect
to
this
to
your
github
account
where,
where
your
code's
hosted
and
then
yeah
add
your
add
your
environment
variables,
if
you
like,
so
some
of
your
advanced
build
settings
there,
which
I've
just
shown
the
world
but
all
good
and
it
will
continuously
deploy
you
can.
Obviously
you
know
also,
then
attach
a
domain
name
that
you
want
to
it
or
you
can
just
use
their
generic
one,
which
in
this
case
is
snowy
sun
kind
of
cool.
B
So
I
really
recommend
checking
out
flake.
If
you
want
to
really
have
your
front
end,
daps
be
hosted
in
a
decentralized
and
reliable,
manage
manner
as
well.
B
I
think
that
is
just
about
all
I
had
for
you
guys
on
on
the
live
code,
as
I
mentioned,
please
feel
free
to
ask
any
questions
you
might
have
of
me
here.
Just
already
went
through
that
one,
so
probably
don't
need
it
so
yeah
mint,
your
own
favorite
word
free.
I've
shown
you
the
link
there.
You
can
get
rinky
s
on
faucets.chain.link
rinpy
as
well.
If
you
do
need
some
fake
f
to
mint
one.
B
Thank
you
again.
It
meant
a
lot.
I
like
that,
nice
pun
and
there's
the
github
link
as
well.
If
you
do
want
to
use
this
as
the
basis
of
some
of
your
projects,
but
thanks
all
and
hopefully
that
will
help
some
of
you
now
or
in
future
when
you,
when
you
watch
this
asynchronously
to
get
started
with
your
potential
nft
projects,
I
think
that's
about
it.
For
me,
carlos.
I
might
be
a
little
early
on
the
timing.
There.
A
Even
oh,
that
that
that
was
great
ali.
Thank
you
very
much
that
that
was
fantastic.
I'm
I'm
certainly
going
to
run
and
try
to
get
one
of
those
100
nfds.
I
want
one
for
the
fiber
web
3
hackathon,
so
I'll
certainly
do
that.
That
was
very
cool.
I'm
I'm!
I'm
also
looking
forward
to
kind
of
start
meeting
my
own
nfts.
That
was
a
very
good
insight
of
how
to
do
it.
Let
me
just
see
if
there
are
any
questions
from
the
attendees.
B
Definitely
so
I
know
it
was
a
little
bit
quick
and
maybe
if
you're
not
you,
don't
have
an
understanding
of
solidity
or
how
to
develop
on
solidity.
So
in
in
those
you
can
have
a
look
at
my
github
notes
as
well.
They
might
it
might
give
you
a
better
idea
of
some
of
the
tools
that
I've
used
to
create
these
contracts
and
put
it
all
together
and
deploy
it
as
well.
So
I'm
using
a
server
to
deploy
these
contracts
and
things
like
that.
A
And
is
this
flick
kind
of
a
distributed
version
of
netlify,
for
instance?
It's
very,
it
seems
very
similar.
B
It's
it's
exactly
it's
so
similar,
except
for
that
it
uses
ipfs
hashes
for
your
content,
so
you
can
kind
of
always
go
back
to
that
that
hash
pretty
much
like
github.
Does
you
know
yeah
you
commit
something
and
you
get
you
know
each
commit
kind
of
hash.
It's
a
little
bit
like
that.
B
So
that's
that's
kind
of
cool,
but
definitely,
if
you
are
going
to
create
you
know
decentralized
products,
then
you
really
want
to
be
hosting
it
in
a
decentralized
manner
as
well,
and
that's
where
kind
of
league
steps
in
which
is
awesome.
Yeah.
A
A
So,
thank
you
very
much
that
was,
that
was
a
really
cool
session,
so
we're
gonna
have
this
so
we're
recording
this
and
we're
gonna
have
this
published
sometime
next
week,
so
people
can
go
over
with
more
detail
and
I'm
sure
they're
gonna
kind
of
be
looking
at
the
at
it
step
by
step
ali.
Thank
you
very
much.