Quickstart
Get started with the Entropy Beacon
This page explains how to get started with developing contracts that utilize the Entropy Beacon. For a deeper understanding of how this system operates, see the How it Works page.
This guide uses EntropyCLI. To integrate the Beacon into your own project, see the Integration Guide.
Prerequisites
- Rust installed
- A local blockchain running, such as LocalTerra
- A wallet funded to pay for transaction fees on this blockchain
Install EntropyCLI
EntropyCLI is a command-line tool that makes it easy to interact with the Entropy Beacon. To install it, run the following command:
$ cargo install entropycli
This command will compile and install the entropy
binary on your path (likely, ~/.cargo/bin
).
You can verify that it is installed by running entropy --version
:
$ entropy --version
entropy 1.0.0
All commands in this guide will be underneath the entropy beacon
subcommand. To see a list of all relevant commands, run entropy beacon --help
.
Initializing a Beacon Project
To get started, we will create a new project using the entropy beacon init
command. This command will walk you through the process of deploying a local instance of the Entropy Beacon, and will setup a entropy.json
configuration file that will be used by the entropy
binary to interact with the Beacon.
$ mkdir my_beacon_project && cd my_beacon_project
$ entropy beacon init
Network Selection / Creation
The wizard prompts you to select a network to add to the configuration file. The available options are:
localterra
- Use configuration defaults for LocalTerralocalkujira
- Use configuration defaults for a local installation of Kujira coreManual Setup
- Manually create a network configuration
For more information on Manual Setup
, see the complete EntropyCLI reference.
Wallet Selection / Creation
The wizard will also prompt you to select a wallet to add to the configuration file. You can choose to use one of localterra’s built-in wallets, or you can create a new wallet. If you choose to create a new wallet, you must enter a name and mnemonic. If you leave the mnemonic blank, the tool will attempt to fetch the mnemonic from the MNEMONIC
environment every time the wallet is used.
Beacon Deployment
The wizard prompts you to deploy the Beacon to the network you selected. If you already have a beacon deployed, you can skip this step and add the address to the configuration file manually. If you wish to deploy at a later time, you can run entropy beacon deploy
at any time. EntropyCLI will instantiate the Beacon in test mode, which means that the beacon does not verify Entropy submissions. This is useful for testing, as it allows you to submit specific values to the Beacon. Official Beacon deployments on testnets and mainnets will not be in test mode.
Downloading the Example Contract Template
If you wish, you can also download the Entropy Example Contract. This is a simple contract that demonstrates how to use and interact with the Beacon. It will be downloaded into your current directory.
Using the EntropyCLI dev worker
EntropyCLI comes with a built-in worker that can be used while developing your dApp. To run the worker, run the following command:
$ entropy beacon dev
The dev worker has three main functions:
Auto-submit Entropy
- The worker will automatically submit random entropy to the Beacon as requests come in. This can be kept open in a separate terminal window while you are developing your dApp.Manual-submit Entropy
- The worker will prompt you to manually enter and submit entropy to the Beacon as requests come in. This can be useful if you want to test your dApp with specific entropy values.Fetch active requests
- The worker will simply display request information as the requests come in. It will not submit any entropy.
Understanding the Entropy Example Contract
The Example contract is a simple contract that demonstrates how to use and interact with the Beacon. It:
- Requests entropy from the Beacon
- Receives entropy from the Beacon
- Uses the entropy to determine whether a coin flip is heads or tails
We recommend that you skim the Integration Guide or read through the contract’s source code for a deeper understanding.