Audience: Terminal users running lumerad: regular account holders, validator operators, supernode operators, and multisig coordinators.


Start Here

Use the script that matches the account you are migrating:

Situation Script What it does
Regular single-key account scripts/migrate-account.sh Migrates a legacy coin-type 118 secp256k1 account to a coin-type 60 eth_secp256k1 account.
Single-key validator operator scripts/migrate-validator.sh Migrates the validator operator account and re-keys validator-related state. The validator node must be stopped before broadcast.
Multisig account or multisig validator operator scripts/migrate-multisig.sh Runs a 4-step coordinator/co-signer ceremony: generate, sign, combine, submit.

Most users should do this first:

./scripts/migrate-account.sh <legacy-key> <new-evm-key> --dry-run

If the dry-run succeeds, remove --dry-run and run the same command to broadcast.

Important rules:

During pre-flight, the scripts now print the important successful checks explicitly:

INFO  check OK: no migration record found for legacy address lumera1...
INFO  check OK: destination address lumera1... has no migration record as a legacy address
INFO  check OK: no migration record found by new address lumera1...
INFO  check OK: destination address lumera1... does not exist on-chain

If any of these checks fails, stop and read the error. Reusing an already-used destination address is unsafe and the chain will reject it.

The scripts also announce every stage before doing work. Single-key account and validator runs use seven numbered stages. The multisig ceremony labels each generate, sign, combine, and submit stage separately, explains whether a step can broadcast, warns before keyring passphrase prompts or potentially slow gas simulation, and ends with the exact next action. A passphrase is never echoed while typing.