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 axelard tx multisig command group provides transaction subcommands for managing the Axelar multisig key lifecycle. Validators use these commands to participate in distributed key generation (keygen), control their participation in future keygen rounds, and rotate the active signing key for a given EVM chain. All keygen participation commands must be sent from the validator’s registered proxy address, not the validator operator address.
The sender for keygen opt-in, keygen opt-out, and keygen start must be a proxy address registered for a validator via axelard tx snapshot register-proxy. Using an operator address directly will result in an error.

Subcommands

Initiates a new multisig key generation protocol for the Axelar network. A unique key ID must be provided; this ID will be used in subsequent commands such as rotate to refer to the generated key.Syntax
axelard tx multisig keygen start [flags]
Key Flags
--id
string
required
Unique identifier for the new key being generated (e.g. my-eth-key-v2). This flag is required.
--from
string
required
Proxy address of the validator initiating the keygen.
--chain-id
string
Axelar network chain ID (default "axelar").
--gas
string
Gas limit (default 200000). Use "auto" for automatic estimation.
--gas-prices
string
Gas price in decimal format (default "0.007uaxl").
--broadcast-mode
string
Broadcasting mode: sync or async (default "sync").
--keyring-backend
string
Keyring backend: os, file, kwallet, pass, test, or memory (default "file").
Example
axelard tx multisig keygen start \
  --id my-eth-key-v2 \
  --from myproxy \
  --chain-id axelar \
  --gas auto \
  --gas-prices 0.007uaxl \
  --broadcast-mode sync
Once keygen start is broadcast, all opted-in validators will participate in the distributed key generation protocol. The resulting key can be referenced by the --id value in rotate and other commands.
Registers the sender’s proxy address to participate in future key generation rounds. Once opted in, the validator’s share will be included in subsequent multisig key constructions.Syntax
axelard tx multisig keygen opt-in [flags]
Key Flags
--from
string
required
Proxy address of the validator opting in. Must be a registered proxy for a validator.
--chain-id
string
Network chain ID (default "axelar").
--gas
string
Gas limit (default 200000).
--gas-prices
string
Gas price (default "0.007uaxl").
--broadcast-mode
string
sync or async (default "sync").
--keyring-backend
string
Keyring backend (default "file").
Example
axelard tx multisig keygen opt-in \
  --from myproxy \
  --chain-id axelar \
  --gas auto \
  --gas-prices 0.007uaxl \
  --broadcast-mode sync
Opt in before a new keygen round is initiated to ensure your validator’s key share is included. Validators that are opted out are excluded from the resulting threshold key.
Removes the sender’s proxy address from participation in future key generation rounds. The validator will no longer be included in subsequent multisig key constructions until they opt back in.Syntax
axelard tx multisig keygen opt-out [flags]
Key Flags
--from
string
required
Proxy address of the validator opting out.
--chain-id
string
Network chain ID (default "axelar").
--gas
string
Gas limit (default 200000).
--gas-prices
string
Gas price (default "0.007uaxl").
--broadcast-mode
string
sync or async (default "sync").
--keyring-backend
string
Keyring backend (default "file").
Example
axelard tx multisig keygen opt-out \
  --from myproxy \
  --chain-id axelar \
  --gas auto \
  --gas-prices 0.007uaxl \
  --broadcast-mode sync
Opting out during an active keygen round does not remove your participation from that round. The change takes effect only for future rounds initiated after this transaction is confirmed.
Rotates the signing key for a given chain to a previously generated key identified by keyID. After rotation, the new key is used for all subsequent gateway command signing on that chain.Syntax
axelard tx multisig rotate [chain] [keyID] [flags]
Arguments
chain
string
required
Name of the chain whose active signing key will be rotated (e.g. ethereum).
keyID
string
required
Identifier of the new key to rotate to. This key must have been generated via keygen start with the same ID.
Key Flags
--from
string
required
Signing key name or address. Typically the proxy address of a validator.
--chain-id
string
Network chain ID (default "axelar").
--gas
string
Gas limit (default 200000).
--gas-prices
string
Gas price (default "0.007uaxl").
--broadcast-mode
string
sync or async (default "sync").
--keyring-backend
string
Keyring backend (default "file").
Example
axelard tx multisig rotate ethereum my-eth-key-v2 \
  --from myproxy \
  --chain-id axelar \
  --gas auto \
  --gas-prices 0.007uaxl \
  --broadcast-mode sync
After rotating, you must also transfer operatorship on the EVM gateway contract to the new key’s address using axelard tx evm transfer-operatorship followed by axelard tx evm sign-commands. Without this step, the on-chain gateway will still use the old key.

Key Generation Workflow

The following sequence illustrates the typical end-to-end multisig key rotation flow:
1. axelard tx multisig keygen opt-in   --from <proxy>
2. axelard tx multisig keygen start    --id <new-key-id> --from <proxy>
   (validators participate in distributed key generation)
3. axelard tx multisig rotate          <chain> <new-key-id> --from <proxy>
4. axelard tx evm transfer-operatorship <chain> <new-key-id> --from <proxy>
5. axelard tx evm sign-commands        <chain> --from <proxy>
   (submit the signed payload to the EVM gateway contract)

Common Flags

All axelard tx multisig subcommands accept the following standard transaction flags:
FlagDefaultDescription
--fromKey name or address used to sign (use proxy address)
--chain-idaxelarNetwork chain ID
--gas200000Gas limit; use auto for estimation
--gas-adjustment1Multiplier applied to simulated gas estimate
--gas-prices0.007uaxlGas price in decimal format
--broadcast-modesyncBroadcasting mode (sync | async)
--keyring-backendfileKeyring backend (os | file | test | memory)
--nodetcp://localhost:26657CometBFT RPC endpoint
--yestrueSkip interactive confirmation prompt

Build docs developers (and LLMs) love