Public Testnets
===============

Here we'll cover the basics of joining a public testnet. These testnets
come and go with various names are we release new versions of tendermint
core. This tutorial covers joining the  ``gaia-1`` testnet. To join
other testnets, choose different initialization files, described below.

Get Tokens
----------

If you haven't already `created a key <../key-management.html>`__,
do so now. Copy your key's address and enter it into
`this utility <http://www.cosmosvalidators.com/>`__ which will send you
some ``steak`` testnet tokens.

Get Files
---------

Now, to sync with the testnet, we need the genesis file and seeds. The
easiest way to get them is to clone and navigate to the tendermint
testnet repo:

::

    git clone https://github.com/tendermint/testnets ~/testnets
    cd ~/testnets/gaia-1/gaia

NOTE: to join a different testnet, change the ``gaia-1/gaia`` filepath
to another directory with testnet inititalization files *and* an
active testnet.

Start Node
----------

Now we can start a new node:it may take awhile to sync with the
existing testnet.

::

    gaia node start --home=$HOME/testnets/gaia-1/gaia

Once blocks slow down to about one per second, you're all caught up.

The ``gaia node start`` command will automaticaly generate a validator
private key found in ``~/testnets/gaia-1/gaia/priv_validator.json``.

Finally, let's initialize the gaia client to interact with the testnet:

::

    gaia client init --chain-id=gaia-1 --node=tcp://localhost:26657

and check our balance:

::

    gaia client query account $MYADDR

Where ``$MYADDR`` is the address originally generated by ``gaia keys new bob``.

You are now ready to declare candidacy or delegate some steaks. See the
`staking module overview <./staking-module.html>`__ for more information
on using the ``gaia client``.
