Quick start
The information below shows developers how to use a general public testnet RollApp for smart contract deployment or how to deploy their own local instance of a RollApp.
For a more in-depth guide on running a RollApp in production (for both testnet and mainnet) follow this tutorial.
- EVM
- CosmWasm
Below is a guide for deploying a local instance of an EVM RollApp (e.g., no IBC bridge and mock base layer). To begin install the following requirement: Go 1.23
Set RollApp info
EVM RollApps set the bech32
prefix (e.g., dym
) and have a corresponding 0x
hex address they can use. Use the standard token denom setup with a prefix of a
for EVM RollApps.
export BASE_DENOM="TOKEN_SYMBOL" # e.g. aevm
export ROLLAPP_CHAIN_ID="YOUR_CHAIN_ID" # example: ethm_1234-1
export BECH32_PREFIX="$BASE_DENOM"
Install RollApp
git clone --branch v2.2.1-rc04 https://github.com/dymensionxyz/rollapp-evm.git && cd rollapp-evm
make install BECH32_PREFIX=${BECH32_PREFIX}
Set default values
export EXECUTABLE="rollapp-evm"
export DENOM=$(echo "$BASE_DENOM" | sed 's/^.//')
export MONIKER="$ROLLAPP_CHAIN_ID-sequencer"
export ROLLAPP_HOME_DIR="$HOME/.rollapp_evm"
export ROLLAPP_SETTLEMENT_INIT_DIR_PATH="${ROLLAPP_HOME_DIR}/init"
export SKIP_EVM_BASE_FEE=true # optional, removes fees on the rollapp
export SETTLEMENT_LAYER="mock" # when running a local hub or a public network use "dymension"
export CELESTIA_NETWORK="mock" # for a testnet RollApp use "mocha", for mainnet - "celestia"
export CELESTIA_HOME_DIR="${HOME}/.da"
Initialize
sh scripts/init.sh
Run the RollApp
rollapp-evm start
How to transfer tokens?
Get bech32
RollApp genesis address (this address received tokens on genesis):
rollapp-evm keys show <username> --keyring-backend test
Get bech32
representation of destination 0x
address. To convert 0x
to bech32
remove the 0x
prefix in the hex address:
rollapp-evm debug addr <HEX_ADDRESS>
Input the bech32
address for both the from
and to
accounts
rollapp-evm tx bank send <FROM_ADDRESS> <TO_ADDRESS> <AMOUNT><BASE_DENOM> --fees=2000000000000arax
Below is a guide for deploying a local instance of a CosmWasm RollApp (e.g., no IBC bridge and mock base layers). To begin install the following requirement: Go 1.23
Set RollApp info
Wasm RollApps set the bech32
prefix (e.g., dym
).
export BASE_DENOM="TOKEN_SYMBOL" # e.g. awasm
export ROLLAPP_CHAIN_ID="YOUR_CHAIN_ID" # example: wasm_1234-1
export BECH32_PREFIX="$BASE_DENOM"
Install RollApp
git clone --branch v1.0.0-rc04 https://github.com/dymensionxyz/rollapp-wasm.git && cd rollapp-wasm
make install BECH32_PREFIX=${BECH32_PREFIX}
Set default values
export EXECUTABLE="rollapp-wasm"
export CELESTIA_NETWORK="mock" # for a testnet RollApp use "arabica", for mainnet - "celestia"
export CELESTIA_HOME_DIR="${HOME}/.da"
export KEY_NAME_ROLLAPP="rol-user"
export DENOM=$(echo "$BASE_DENOM" | sed 's/^.//')
export MONIKER="$ROLLAPP_CHAIN_ID-sequencer"
export ROLLAPP_HOME_DIR="$HOME/.rollapp-wasm"
export ROLLAPP_SETTLEMENT_INIT_DIR_PATH="${ROLLAPP_HOME_DIR}/init"
export SETTLEMENT_LAYER="mock" # when running a local hub or a public network use "dymension"
Initialize RollApp
sh scripts/init.sh
Start the RollApp
rollapp-wasm start