►
From YouTube: How To Deploy your Dapp to the Testnet
Description
Michael FIG, Software Engineer at Agoric, will walk you through dapp architecture and show you how to deploy a dapp.
Get started with Agoric: https://agoric.com/documentation/getting-started/
ABOUT
Build Fast, Earn Fast - Agoric enables developers to rapidly deploy dapps and DeFi markets on-chain using composable JavaScript smart contracts. Safely get your project from vision to global market.
LINKS
https://agoric.com
https://agoric.com/twitter
https://agoric.com/discord
https://agoric.com/telegram
https://agoric.com/newsletter
Click the 'SUBSCRIBE' button to follow our Youtube channel!
A
Hi
everybody
I'm
a
software
engineer
at
agorik
and
working
mostly
on
the
chain
link
configuration
recently
but
at
least
to
an
interesting
question,
which
is
once
you've
created,
adapt
and
have
it
all
tested.
How
are
you
actually
going
to
get
it
onto
the
testnet
so
as
before
the
questions
are
taken
on
youtube,
live
and
discord?
Please
ask
questions
after
this
presentation
we're
all
present
on
discord
and
we'll
get
to
you
as
soon
as
we
can.
A
The
agenda
for
today
is
we'll
talk
a
bit
about
dap
architecture,
we'll
actually
deploy
adapt
to
the
the
hack,
the
orb
test
net
and
we'll
talk
about
the
next
steps
where
to
go
to
improve
your
job
and
what
you
really
want
to
do
in
the
future,
so
adapts
are
made
up
of
ag
solos
browsers
and
chains.
A
Oh,
my
basically
ag
solos
are
single
clients
that
run
off
the
blockchain
browsers
connect
these
these
ax
holders,
with
the
with
that
with
each
other
over
http
requests
and
the
chain
itself
is,
is
using
also
a
gorg
platform,
but
it's
running
in
a
replicated
state
with
different
validators.
A
A
Basically,
here
we
have
in
the
yellow
box,
we
have
the
user's
private
host
their
own
computer,
and
in
the
blue
box
we
have
a
dot
public
host,
which
is
a
server
somewhere
on
the
internet
and
in
the
red
box
we
have
the
igor
chain,
so
the
user's
private
host
has
an
ag
solo,
which
is
the
quark
vm.
But
it's
it's
not
running
the
chain,
software
it's
just
connecting
to
the
chain.
A
That's
where
exchange
cosmos
is
running
on
each
of
these
validators,
these
multiple
validators
and
on
the
chain.
We
have
a
deterministic
replicated
environment
where
we
have
zoe
and
contracts
and
other
kinds
of
services
provided
by
the
chain.
A
A
A
As
an
aside,
the
dab
public
host
has
its
own
wallet
ui
for
its
own
wallet,
that's
running
on
its
bag
so
low.
So
this
is
how
the
dap
author
could
control
say,
draining
the
tokens
from
the
contract
which
only
it
can
do
or
sending
tokens
to
the
contract
if
it
needs
to
so
the
adap
or
the
wallet.
Ui
basically
runs
on
the
nag
solo
and
it
allows
you
to
enable
or
disable
connections
from
dapps
and
approve
or
decline
proposals
and
manage
pet
names.
So
pet
names
are
I'll.
Show
you
a
little
bit
about
that.
A
We
talked
about
it
earlier
in
how
to
use
the
wallet
but
the
untrusted
web
uis.
They
they
can
be
anywhere
and
they
usually
want
your
money.
Sometimes
they
just
want
to
give
you
something,
but
usually
they're,
providing
some
service
where
they
get
paid,
and
you
use
your
own
wallet
to
control
what
access
they
have
and
to
manage
the
proposals.
A
Finally,
the
doc
api
server
is
a
publicly
accessible
ag
solo
that
provides
http
or
websocket
services.
It's
the
back
end
for
the
dap
ui
front
end,
and
it
usually
has
privileged
access
to
the
deploy
contract,
just
like
any
other
backend
with
privileged
access
to
a
database.
A
A
Okay-
let's
deploy
that
so
because
this
is
working
on
the
actual
test
net.
I
recorded
this
in
advance
and
basically
I
just
want
to
show
you
the
steps
that
we
go
through,
we'll
talk
later
about
latency
and
how
we
can
improve
it.
A
So
this
is
the
the
starting
situation
where
we
just
have
some
terminals
open
to
the
the
dap
that
we're
actually
running
in
and
let's
see
how
it
goes
so
we
want
to
first
compile
the
ag
cosmos
helper
back
in
so
this
is.
This
is
part
of
the
gorg
sdk.
A
A
Unfortunately,
I
can't
with
the
video,
but
I
I
will
later
all
right,
so
we
can
run
the
helper
and
just
request
the
version
to
make
sure
it's
installed
correctly,
and
it
comes
back
saying
we're
running
agor,
cosmos,
helper
version,
23
023,
which
is
exactly
the
right
version.
A
Next
thing
we
want
to
do
is
start
the
test
net,
so
we'll
start
the
testnet
client
on
port
8000
and
we're
running
against
the
hack,
the
orb
test
node.
So
this
is
the
special
command.
In
order
to
do
that,
then
we
start
it
off
and
basically
it
gets
going
just
like
writing.
I
start
excel
start
without
any
arguments,
except
this
time
I
get
some
network
config
and
actually
sets
the
chain
up.
A
So
this
is
using
the
actual
hack,
the
orb
test
net
running
on
the
internet.
It
starts
complaining
saying
that
we
don't
know
where
that,
where
that
address
is
so,
we
have
to
go
tap
the
faucet
on
discord.
A
Basically,
you
just
run
the
command
that
it
told
you
to
run,
and
this
is
how
it
works
I'll
fast
forward
this
as
well,
because
it
comes
back
with
a
little
thinking
icon.
That
means
it
needs
manual
approval,
so
we'll
just
go
through
the
actual
approval
process,
and
then
it
eventually
gives
back
a
check
mark.
A
So
that
check
mark
means
that
our
actual
eggs,
our
gork
solo,
has
been
provisioned,
and
now
it
starts
to
give
chain
messages
back
saying
that
it
could
not
find
the
pure
mailbox.
That's
just
syncing
up
with
the
chain,
but
now
it's
actually
sending
transactions
to
the
igor
test
net.
I'm
going
to
fast
forward
through
here.
Well,
actually,
first
I'll
just
show
you
how
we
deploy
the
contract
to
the
chain
so
because
the
isolo
is
connected
to
the
chain.
We
just
run
the
same,
deploy
steps
that
we
would
have
done
with
our
doc.
Otherwise,.
A
This
will
take
a
while
because
it
first
has
to
synchronize
with
the
wallet
and
the
wallet
has
to
synchronize
with
the
chain,
so
I'll,
just
fast
forward
past
this,
so
that
we
can
get
to
the
exciting
part.
So
each
of
these
o's
actually
takes
place
once
every
second.
A
So
this
is
zipping
past
a
whole
bunch
of
messages
exchanged
with
the
chain
still
a
bit
faster
than
waiting
for
an
ethereum
block
to
finalize
so
eventually
we
we
run
and
install
the
contract
and
we
deploy
the
api
server
and
we're
just
getting
the
board
ids
back
as
the
regular
deployment
does
and
there
they
come.
So
now
it's
been
deployed.
A
And,
let's
see
what
happens
next,
so
we're
going
to
open
up
start
up
the
ui
for
the
dap
faucet
and
also
run
the
agorik
open
command
to
get
a
wallet?
A
Okay.
So
that's
the
end
of
the
video
I
now
have
the
gork
wallet
live,
and
this
is
exactly
where
the
the
diaper
comes
together.
So
many
of
you
have
seen
this
already
with
the
agora
faucet
or
the
fungible
faucet.
A
But
what
I'll
do
now
is
I'll
go
to
the
local,
sorry,
the
fungible
token
faucet,
and
it
tells
me
that
I
need
to
approve
it.
So
this
is
the
usual
step
with
fungible
faucet.
A
It
takes
a
little
while
because
we're
going
through
the
chain,
but
if
I
hit
the
mint
command
then
I'll
come
back
to
here
and
we'll
see
that
the
the
the
dap
is
creating
transactions
back
and
forth
to
our
ag
solo
and
we're
just
going
to
wait
for
the
actual
payment
to
go
through.
A
Okay,
so
we
did
yeah,
we
are
sending
sending
back
and
forth
messages
still
so
we're
adding
an
offer.
So
now
we
have
the
kate's
faucet
token.
Here
the
offer
should
be
coming
through
pretty
soon
we'll
just
watch
it
from
the
dap.
A
As
I
said,
we'll
be
talking
about
latency
later,
I'm
just
waiting
for
this.
This
proposal
to
go
through.
A
A
A
One,
I
might
have
hit
it
too
early
for
it
to
properly
register.
Okay,
so
here
should
come
another.
A
Invite
so
there's
the
invite
for
zoe
there's,
there's
invite
appearing
in
our
wallet
it
gets
transferred
to
our
invite
purse
should
show
up
here,
as
the
second
invites.
A
A
There's
the
offer
okay,
so
this
is
the
proposed
offer
from
kate's
faucet.
We
want
a
thousand
of
kate's
faucet
tokens
and
we
want
to
deposit
it
into
our
purse.
So
we'll
just
accept
that
offer
we'll
see.
We
can
cancel
it
for
a
little
bit
of
time
before
it
actually
gets
approved,
but
counselling
is
not
bulletproof.
A
A
There
we
go
so
now:
we've
actually
achieved
the
the
faucet
tokens
next
thing
to
show.
You
is
basically
that's
the
end
of
the
demo,
so
it
is
important
to
note
that
I
didn't
fast
forward
through
the
actual
approval
of
the
offer
and
stuff
like
that.
So
this
is
actually
in
real
time
what
a
user
would
see
for
a
typical
offer
being
made
to
their
wallet
yeah.
Let's
move
on
so
next
steps.
A
Dealing
with
latency
is
our
number
one
concern.
So
what
is
very
useful?
Well
we'll
talk
about
this
in
a
second.
A
We
want
to
be
able
to
publish
the
api
server
to
the
internet
so
that
other
people
can
use
it,
and
we
also
want
to
be
prepared
for
future
features
that
may
make
this
all
a
little
more
easy
to
do
so
with
latency
the
job
does
the
app
just
works?
Okay.
So,
although
I
introdu,
I
hit
a
race
condition
where
I
created
an
offer
too
early
before
the
the
wall
ui
or
the
that
faucet
ui
was
ready.
Aside
from
that,
the
dap
works,
but
it's
slower
than
necessary.
A
This
is,
as
I
said,
it's
still.
The
finality
is
between
two.
A
Second
blocks
on
cosmos
on
our
cosmos
based
chain,
but,
although
that's
faster
than
say,
waiting,
15
minutes
or
half
an
hour
for
a
block
to
become
completed
and
verified,
the
dap
works,
but
it's
still
slower
than
it
has
to
be
so
an
important
thing
to
do
with
your
dap
when
you're
getting
ready
to
deploy
for
the
test
net
and
in
fact,
I'd
recommend
this
even
earlier,
is
you
want
to
run
your
local
sim
chain
with
the
corkstart
delay
equals
two
for
a
two
second
delay
that
emulates
the
actual
delays
that
your
adapter
will
see
on
the
chain.
A
A
So
there's
currently
a
few
hooks
left
left
in
the
the
flexible
faucet
ui,
where
certain
events
published
by
the
wallet
and
by
the
chain
are
not
advertised
or
associated
with
progress,
spinners
so
filling
out
those
different
hooks
and
saying:
okay,
now
we're
creating
an
offer,
but
we
have
to
wait
until
the
offer
is
actually
accepted
by
the
wallet.
A
That
would
be
a
good
time
to
display
progress
in
your
in
your
ui
and
round.
Trips
are
the
killjoy.
Basically,
if
you
use
a
weight
frequently
every
time
you
do
a
weight
in
a
linear
flow
in
your
in
your
contract
or
your
deployment.
Script
you're
waiting
for
a
whole
round
trip
to
the
chain
and
back
so
that
await
will
say
it's
two
seconds
to
go
there
and
back
for
an
await
to
be
fired
properly.
A
But
then
we
want
to
use
promise.all
to
combine
all
these
flows
together,
so
that
the
async
functions
can
all
run
independently
and
concurrently.
A
Finally,
we
have
promised
pipelining.
So
this
is
a
terrific
invention.
I
don't
know
who
it
accredited
to,
but
some
of
the
gork
founders
were
very
instrumental
in
that,
but
the
e
proxy
maker,
the
the
method
caller
that
you
can
use.
Basically
we
say
you
can
call
e
on
an
object
and
get
back
a
promise
for
the
method
result.
A
But
if
you
call
e
on
one
of
those
promises
that
came
back,
you
also
get
a
promise
for
the
method
result.
So
you
don't
have
to
await
every
object
that
you
get
back
in
order
to
call
e
on
them.
You
can
just
call
e
on
the
promise
that
you
got
back
so
now.
If
we
want
to
publish
the
api
server
to
the
internet,
don't
use
reset
whatever
you
do
so
after
you've
actually
deployed
to
the
test
net
with
the
gorg
start
test
net,
as
we
used
before.
A
You
want
to
just
keep
that
state
and
use
it
over
and
over
again.
So
don't
use
the
gork
start
reset
test
net.
Just
use
the
gorg
start
test
without
the
reset.
A
A
A
Also,
you
want
to
set
the
api
url
in
your
ui
directory
before
you
publish
it
to
the
internet
that
way,
rather
than
using
local
host
8000
directly,
which
won't
work
on
your
user's
machine,
who
runs
your
ui.
This
changing
api
url
to
your
public
https
url
is
basically
what
you
want
to
do
so
that
that
way,
the
ui
can
be
used
by
anybody
else
who
downloads
your
app
your
data,
but
will
reference
the
on
chain
or
the
the
public
instance
of
your
of
your
api
server.
A
Some
aggro
features
that
we
can
look
forward
to
is.
First
of
all,
we
want
to
use
cosmis
to
replace
the
defense
jungle
goliath.
So
cosm.js
is
a
great
library,
that's
currently
being
developed
for
for
the
stargate
release
of
the
cosmos,
which
allows
a
javascript
client
to
fully
have
a
like
client
and
to
manage
keys.
A
So
the
only
reason
we
had
to
compile
that
goal-line
dependency
before
is
because
it
was
the
simplest
way
of
getting
an
interface
between
a
javascript
program
and
just
run
a
program
just
to
submit
transactions
or
to
receive
transactions
from
the
chain.
So
cosmo
js
will
make
this
possible
to
do
entirely
in
place.
A
A
So
the
rendezvous
service
will
basically
allow
your
adopt
ui
to
request
the
api
server
to
connect
directly
to
the
wallet
the
user's
wallet,
and
this
is
not
again.
This
is
not
a
privileged
connection
to
the
wallet.
This
is
adapt
connection
only
so
that
app
will
be
able
to
submit
offers
on
behalf
of
the
dap
api
and
the
api
server
can
generate
its
invitation
and
send
it
directly
to
the
the
wallets,
the
user's
wallet.
A
So
what
we
want
to
do
is
provide
basic
components
like
react,
components
or
svelter
you
our
view
or
whatever
you
might
have,
that
can
actually
encapsulate
the
the
remote
e
method,
so
your
your
ui
would
actually
be
able
to
use
e
within
it
to
submit
transactions
to
the
the
wad
and
to
listen
for
notifications
that
you
might
want
to
respond
to.
A
B
Thank
you,
michael
much
appreciated
and
as
a
reminder
to
people
participating
in
the
hackathon
deploying
to
testnet
is
optional,
so
you
get
bonus
points
for
it,
but
it
isn't
required
to
to
be
able
to
submit
a
project.
We
would
love
to
see
a
few
of
you.
Do
it
just
to
see
how
your
your
process
works
and
and
get
questions
from
you
but
yeah.
I
would
view
it
as
bonus
points
all
right.
Well,
thanks
again,
michael
I'm
gonna
take
you
down
and
we
will
close.