Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/axelarnetwork/axelar-core/llms.txt

Use this file to discover all available pages before exploring further.

The genesis commands bootstrap a new Axelar Network chain or prepare a node to join an existing one. They cover everything from adding funded accounts and creating validator transactions to configuring Axelar-specific module parameters and validating the final genesis file. These commands are typically run once before a chain launch, and most write directly to the genesis.json file in the node’s home directory.
axelard genesis [subcommand] [flags]

axelard genesis add-genesis-account

Adds a funded account to genesis.json. The account is identified by a bech32 address or a key name in the local keyring. Initial coin balances must use valid registered denominations.
axelard genesis add-genesis-account [address_or_key_name] [coin][,[coin]] [flags]
Examples:
# Add 1,000,000 uaxl to an address
axelard genesis add-genesis-account axelar1abc... 1000000uaxl

# Add multiple denominations at once
axelard genesis add-genesis-account axelar1abc... 1000000uaxl,500000stake

# Look up the address from a local key name
axelard genesis add-genesis-account mykey 1000000uaxl

# Add vesting account (linear vest over a period)
axelard genesis add-genesis-account axelar1abc... 1000000uaxl \
  --vesting-amount 800000uaxl \
  --vesting-start-time 1700000000 \
  --vesting-end-time 1730000000
address_or_key_name
string
required
The bech32 account address or local key name. If a key name is given, the address is resolved from the keyring.
coin
string
required
Comma-separated initial coin balances (e.g., 1000000uaxl,100stake).
--append
boolean
Append coins to an account that already exists in genesis.json rather than replacing it.
--vesting-amount
string
Amount of coins that should be subject to a vesting schedule.
--vesting-start-time
int
Unix epoch timestamp for the start of the vesting schedule.
--vesting-end-time
int
Unix epoch timestamp for the end of the vesting schedule.
--home
string
Application home directory. Defaults to $HOME/.axelar.
--keyring-backend
string
Keyring backend for resolving key names. Defaults to file.
--module-name
string
If set, adds a module account with the given module name rather than a regular account.

axelard genesis bulk-add-genesis-account

Adds multiple genesis accounts in a single operation from a JSON file. Each entry specifies an address, coin balances, and optional vesting parameters.
axelard genesis bulk-add-genesis-account [/path/to/accounts.json] [flags]
Input file format:
[
  {
    "address": "axelar1abc...",
    "coins": [
      { "denom": "uaxl", "amount": "1000000" }
    ]
  },
  {
    "address": "axelar1def...",
    "coins": [
      { "denom": "uaxl", "amount": "500000" }
    ],
    "vesting_amt": [
      { "denom": "uaxl", "amount": "400000" }
    ],
    "vesting_start": 1724711478,
    "vesting_end": 1914013878
  }
]
/path/to/accounts.json
string
required
Path to the JSON file containing the list of genesis accounts.
--append
boolean
Append coins to accounts already present in genesis.json.
--home
string
Application home directory. Defaults to $HOME/.axelar.

axelard genesis gentx

Creates a signed genesis transaction that registers a validator with an initial self-delegation. The transaction is written to the $HOME/.axelar/config/gentx/ directory and later collected by collect-gentxs.
axelard genesis gentx [key_name] [amount] [flags]
Example:
axelard genesis gentx my-validator-key 1000000000uaxl \
  --chain-id axelar-dojo-1 \
  --moniker "My Validator" \
  --commission-rate 0.05 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1 \
  --website "https://myvalidator.io" \
  --security-contact "security@myvalidator.io" \
  --keyring-backend file
key_name
string
required
Name of the key in the keyring to sign the genesis transaction.
amount
string
required
Amount of tokens to self-delegate (e.g., 1000000000uaxl).
--chain-id
string
Network chain ID. Must match the genesis file. Defaults to axelar.
--moniker
string
Validator display name shown in the P2P network. Defaults to node.
--commission-rate
string
Initial commission rate as a decimal (e.g., 0.05 for 5%).
--commission-max-rate
string
Maximum commission rate the validator may ever charge.
--commission-max-change-rate
string
Maximum commission rate change per day.
--min-self-delegation
string
Minimum self-delegation amount the validator must maintain.
--website
string
Validator’s optional website URL.
--identity
string
Optional identity signature (e.g., a Keybase fingerprint).
--security-contact
string
Security contact email address for the validator.
--details
string
Free-text description of the validator.
--ip
string
Node’s public P2P IP address. Defaults to 127.0.0.1.
--node-id
string
Override the node ID included in the gentx. Defaults to the ID from priv_validator_key.json.
--output-document
string
Write the gentx JSON to a specific file path instead of the default location.
--keyring-backend
string
Keyring backend for the signing key. Defaults to file.
--gas-prices
string
Gas price for the gentx fee. Defaults to 0.007uaxl.
Default delegation parameters: commission-rate=0.1, commission-max-rate=0.2, commission-max-change-rate=0.01, min-self-delegation=1. Override any of these using the corresponding flags.

axelard genesis collect-gentxs

Reads all gentx JSON files from the gentx directory and aggregates them into genesis.json, making the validators active at genesis.
axelard genesis collect-gentxs [flags]
--gentx-dir
string
Override the directory from which gentx files are read. Defaults to $HOME/.axelar/config/gentx/.
--home
string
Application home directory. Defaults to $HOME/.axelar.
Run collect-gentxs after all validators have submitted their gentx files to the designated directory. This is typically the final step before validating and distributing the genesis file.

axelard genesis validate

Validates the genesis file at the default location or at a specified path. Checks that the genesis is well-formed, all module states are valid, and the file passes all registered invariant checks.
axelard genesis validate [file] [flags]
Examples:
# Validate the default genesis file
axelard genesis validate

# Validate a specific file
axelard genesis validate /path/to/genesis.json
file
string
Path to the genesis file to validate. Defaults to $HOME/.axelar/config/genesis.json.

axelard genesis migrate

Migrates a genesis file from one Cosmos SDK version format to another, printing the result to stdout.
axelard genesis migrate [target-version] [genesis-file] [flags]
Example:
axelard genesis migrate v0.47 /path/to/old-genesis.json \
  --chain-id axelar-dojo-1 \
  --genesis-time 2024-01-01T00:00:00Z \
  --output-document /path/to/new-genesis.json
target-version
string
required
Target Cosmos SDK version format (e.g., v0.47).
genesis-file
string
required
Path to the source genesis file.
--chain-id
string
Override the chain ID in the output genesis. Defaults to axelar.
--genesis-time
string
Override the genesis time in the output (RFC3339 format).
--output-document
string
Write migrated genesis to this file instead of printing to stdout.

Axelar-Specific Genesis Commands

Axelar extends the standard Cosmos SDK genesis tooling with commands for configuring its cross-chain and EVM-specific modules. These commands write directly to genesis.json and are run at the root axelard level (not under axelard genesis).

axelard add-genesis-evm-chain

Registers a new EVM-compatible chain in genesis.json, enabling Axelar to bridge assets to and from it.
axelard add-genesis-evm-chain [name] [flags]
Example:
axelard add-genesis-evm-chain ethereum --home ~/.axelar
name
string
required
The name of the EVM chain to add (e.g., ethereum, avalanche).
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

axelard set-genesis-chain-params

Sets EVM chain parameters (such as confirmation height and chain ID) for a chain already registered in genesis.json.
axelard set-genesis-chain-params evm [chain] [flags]
Example:
axelard set-genesis-chain-params evm ethereum \
  --evm-chain-id 1 \
  --evm-network-name mainnet \
  --confirmation-height 35 \
  --revote-locking-period 50
--evm-chain-id
string
Integer EVM chain ID (e.g., 1 for Ethereum mainnet).
--evm-network-name
string
Network name for the EVM chain.
--confirmation-height
uint
Number of block confirmations required before a deposit is considered final.
--revote-locking-period
int
Locking period for re-vote operations on this chain.
--network
string
Network name to set for the given chain.

axelard set-genesis-evm-contracts

Configures EVM contract ABIs (burner and token contracts) in genesis.json. These ABIs are used by the EVM module to generate and parse cross-chain contract calls.
axelard set-genesis-evm-contracts [flags]
--burnable
string
File path to the burner contract ABI JSON.
--token
string
File path to the token contract ABI JSON.
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

axelard set-genesis-auth

Configures the auth module genesis parameters, such as the maximum number of signatures allowed in a single transaction.
axelard set-genesis-auth [flags]
--tx-sig-limit
uint
Maximum number of signatures allowed in a transaction.
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

axelard set-genesis-gov

Configures the governance module genesis parameters, including deposit periods, voting period, and minimum deposit amounts.
axelard set-genesis-gov [flags]
--minimum-deposit
string
Minimum deposit amount required for a proposal to enter the voting period.
--max-deposit-period
string
Maximum time (nanoseconds) AXL holders have to deposit on a proposal.
--voting-period
string
Duration of the standard voting period (nanoseconds).
--expedited-voting-period
string
Duration of the expedited voting period (nanoseconds).
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

axelard set-genesis-staking

Configures staking module genesis parameters such as the bonding token denomination, unbonding period, and maximum validator count.
axelard set-genesis-staking [flags]
--bond-denom
string
The coin denomination used for bonding (e.g., uaxl).
--unbonding-period
string
Duration for the unbonding period (e.g., "504h" for 21 days).
--max-validators
uint32
Maximum number of active validators. Max value is 65535.
--max-entries
uint32
Maximum number of redelegations or unbonding delegations allowed simultaneously per pair.
--historical-entries
uint32
Number of historical staking entries to retain.
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

axelard set-governance-key

Sets the genesis multisig governance key for the Axelar network. This key has elevated authority for governance actions.
axelard set-governance-key [threshold] [[pubKey]...] [flags]
Example:
axelard set-governance-key 3 \
  axelarpub1... \
  axelarpub2... \
  axelarpub3... \
  axelarpub4... \
  axelarpub5...
threshold
integer
required
The minimum number of public keys required to authorize a governance action (K of N).
pubKey
string
required
One or more public keys that form the governance multisig set.
--home
string
Node’s home directory. Defaults to $HOME/.axelar.

Standard Genesis Workflow

The following sequence is typical for bootstrapping a new Axelar chain:
# 1. Initialize node configuration
axelard init my-validator --chain-id axelar-dojo-1

# 2. Add funded genesis accounts
axelard genesis add-genesis-account mykey 1000000000uaxl

# 3. Configure Axelar-specific parameters
axelard set-genesis-staking --bond-denom uaxl --unbonding-period 1814400s
axelard set-genesis-gov --minimum-deposit 100000000uaxl --voting-period 604800000000000
axelard add-genesis-evm-chain ethereum
axelard set-genesis-chain-params evm ethereum --evm-chain-id 1 --confirmation-height 35

# 4. Create the genesis validator transaction
axelard genesis gentx mykey 1000000000uaxl \
  --chain-id axelar-dojo-1 \
  --commission-rate 0.05 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01

# 5. Collect all gentxs into genesis.json
axelard genesis collect-gentxs

# 6. Validate the final genesis file
axelard genesis validate
For a multi-validator genesis, each validator runs steps 1–4 independently, then submits their gentx file to the chain coordinator. The coordinator runs collect-gentxs and validate before distributing the final genesis.json to all participants.

Build docs developers (and LLMs) love