Skip to main content

Getting Started

In order for developers to start building modules, they must install the following tools:

  1. Go 1.6 or higher
  2. Docker

Go Programming Language

Go is a language developed and used by some of the largest companies in the world for server/networking applications. Go is used to develop modules and provides optimum performance and flexibility to blockchain developers.

A Tour Of Go


Docker is a software containerization tool used to spin up and shut down Kava nodes and allows software portability between different operating systems & environments. It is also used to spin up multiple Kava nodes locally and handles basic networking between them with docker compose.

Docker Overview

Set Up bash_profile

Once Go & Docker are installed, update your bash_profile to include the go path and an alias command for one of the tools we will use to handle Kava node interactions

export PATH=/usr/local/go/bin:$PATH
export PATH=$HOME/go/bin:$PATH
export GOPATH=$HOME/go
export GO111MODULE=on

alias dkvcli='docker exec -it generated_kavanode_1 kvcli'

Make sure to source your bash profile or restart it for the changes to take place.

Getting The Kava Repository & Development Tools

Once you have the core tools installed & set up, its now time to get the following repositories from Github:

  • kava
    • Main Kava Repo that holds all modules
  • kvtool
    • Dev tools to interact with a Kava node

Set Up a Local Blockchain

Now that you have set up all the tools & repositories in your local machine its finally time to set up a local blockchain.

  • Open a terminal and change into the kvtool directory.
  • Ensure Docker is running.
  • Run make install in your terminal which will install kvtool in your machine.
  • Ensure Docker is running.
  • Run kvtool testnet bootstrap this command will build against the master branch from the kava project, initialize the Docker containers and finally starts a local chain.

Now that you have a local chain running, you can start utilizing the dkvcli that we set up an alias for. If for whatever reason dkvcli doesn't work, you can try the following:

  • Open a terminal and change into the kvtool directory.
  • In the kvtool directory there should be a directory named full_configs change into it.
  • Once at full_configs directory change into generated directory.
  • Once you are at generated run the following command docker-compose exec kavanode bash.

This should open up a bash terminal inside a docker container that will give you access to the kvcli command line interface. You should see something similar to the snippet below after typing kvcli help:

bash-5.0# kvcli
Command line interface for interacting with kvd

kvcli [command]

Available Commands:
status Query remote node for status
config Create or query an application CLI configuration file
query Querying subcommands
tx Transactions subcommands

rest-server Start LCD (light-client daemon), a local REST server

keys Add or view local private keys

version Print the app version
help Help about any command

--chain-id string Chain ID of tendermint node
-e, --encoding string Binary encoding (hex|b64|btc) (default "hex")
-h, --help help for kvcli
--home string directory for config and data (default "/root/.kvcli")
-o, --output string Output format (text|json) (default "text")
--trace print out full stack trace on errors

Use "kvcli [command] --help" for more information about a command.