ZIGChain EVM Wallet FAQ
TL;DR: ZIG on Ethereum and native ZIG on ZIGChain are separate assets, so Ethereum ZIG must be bridged before you can use it on ZIGChain EVM. From v6, new
zigchaindwallets use coin type 60, and an old recovery phrase restores the old wallet only with the--legacyflag. Ledger keys inzigchaindare the exception: they work only with coin type 118 andsecp256k1, so add them with--ledger --legacy.
Overview
The v6 upgrade adds an Ethereum Virtual Machine (EVM) to ZIGChain, which raises two questions for anyone choosing a ZIGChain EVM wallet. The first is how the ZIG Token on Ethereum differs from native ZIG on ZIGChain. The second is how one recovery phrase maps to accounts in Keplr, MetaMask and the zigchaind command-line interface (CLI).
Read Set Up a ZIGChain Wallet first if you do not have a ZIGChain wallet yet. Bridging steps are in ZIGChain Bridge, and key management on the CLI is in ZIGChain Accounts.
Is ZIG on Ethereum the Same as ZIG on ZIGChain EVM?
No. ZIG on Ethereum is an ERC-20 token, and ZIG on ZIGChain is the chain's native coin. The two are separate assets on different chains, and adding the EVM to ZIGChain does not merge them.
Native ZIG is also the gas coin of ZIGChain EVM. On the EVM side, native ZIG uses the azig denomination with 18 decimals, the same base unit that ZIGChain v5 Redenomination introduced. Native ZIG also has an ERC-20 interface, Wrapped ZIG, which reads the same balance; you don't need to wrap ZIG to use it with ERC-20 contracts.
Can I Use My Ethereum ZIG on ZIGChain EVM?
Not directly. ZIGChain EVM cannot read balances held on Ethereum, because Ethereum and ZIGChain are different chains. To use ZIG from Ethereum on ZIGChain, bridge the ERC-20 ZIG to ZIGChain first with the ZIGChain Bridge in the Hub. The bridge can deliver ZIG to a MetaMask 0x address on ZIGChain EVM as well as to a zig1 address.
The bridge route goes through Axelar. When Axelar-bridged ZIG reaches ZIGChain, the Token Wrapper module converts it into native ZIG. If the Token Wrapper cannot convert it, you receive Axelar's ZIG (ZIG.axl, an ibc/… voucher) instead of native ZIG. ZIGChain Module - Token Wrapper describes the conversion.
Can I Use the Same Account in Keplr and MetaMask?
Yes, through Keplr's ZIGChain EVM entry. Keplr lists ZIGChain twice: the ZIGChain EVM entry opens the same 0x account as MetaMask, and the ZIGChain entry opens a different zig1 account. The ZIGChain entry uses coin type 118 and the ZIGChain EVM entry uses coin type 60, so one recovery phrase opens two unrelated accounts with separate balances. In Keplr's asset list, both entries can appear side by side with the same token name; the one labeled ZIGChain EVM is the MetaMask account. Wallet Compatibility explains how each wallet derives its account.
What Changes in v6
From v6, the zigchaind CLI creates new wallets with coin type 60 and eth_secp256k1 by default, which matches MetaMask. A recovery phrase therefore opens the same account in MetaMask and in zigchaind. These new wallets work for EVM transactions and for Cosmos actions such as staking, governance and transfers.
Two Addresses for One MetaMask Account
A MetaMask account on ZIGChain has two address forms, a 0x address and a zig1 address, and both forms share one balance. The table shows the accounts that the public test recovery phrase test test test test test test test test test test test junk derives.
The recovery phrase test test test test test test test test test test test junk is public and documented for testing. Never use it for a real wallet, and never send funds to an address that it derives.
| Wallet | Coin type | Address | Account |
|---|---|---|---|
| MetaMask | 60 | 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 | Account A |
MetaMask (zig1 form) | 60 | zig17w0adeg64ky0daxwd2ugyuneellmjgnxzh7qfg | Account A |
| Keplr, ZIGChain EVM entry | 60 | 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 | Account A |
| Keplr, ZIGChain entry | 118 | zig15yk64u7zc9g9k2yr2wmzeva5qgwxps6y8c2amk | Account B |
A coin type 118 account can't sign EVM transactions, so don't use the 0x form of its address as an EVM recipient. Tokens that exist only on the EVM side can't be moved from there.
How to Move Funds Between the Two Accounts
An existing coin type 118 address cannot be turned into a coin type 60 address, because the two addresses come from different keys and different hash functions. To use your funds on ZIGChain EVM, restore your recovery phrase as a coin type 60 account, then send your funds from the old account to the new account. In Keplr, the coin type 60 account is the ZIGChain EVM entry of the same wallet, so the move is a transfer from the ZIGChain entry to that account. Staked ZIG must be unbonded before you can move it. Send a small test amount first, and check that it arrives in the new account and that you can send it on from there, before you move the rest.
To restore the recovery phrase as a coin type 60 account with the CLI and set both values, the coin type and the key type, explicitly:
zigchaind keys add WALLET_NAME --recover \
--key-type eth_secp256k1 --coin-type 60
Keplr's ZIGChain entry accepts only zig1 recipient addresses and rejects a 0x address. Convert the 0x address of your ZIGChain EVM entry to its zig1 form with zigchaind debug addr, passing the address without the 0x prefix:
zigchaind debug addr f39Fd6e51aad88F6F4ce6aB8827279cffFb92266
The Bech32 Acc line of the output is the zig1 address to paste as the recipient:
Address: [243 159 214 229 26 173 136 246 244 206 106 184 130 114 121 207 255 185 34 102]
Address (hex): F39FD6E51AAD88F6F4CE6AB8827279CFFFB92266
Bech32 Acc: zig17w0adeg64ky0daxwd2ugyuneellmjgnxzh7qfg
Bech32 Val: zigvaloper17w0adeg64ky0daxwd2ugyuneellmjgnxhsjxg3
Bech32 Con: zigvalcons17w0adeg64ky0daxwd2ugyuneellmjgnxrrp6ys
Why Is My Restored Wallet Empty?
From v6, zigchaind keys add --recover restores a recovery phrase with the new defaults (coin type 60 and eth_secp256k1). If you created the wallet before v6 with coin type 118, a plain restore opens a different, empty account. Your funds have not moved: they are still in the coin type 118 account.
To restore the original coin type 118 account, add the --legacy flag to the recovery command:
zigchaind keys add WALLET_NAME --recover --legacy
Recover a Pre-v6 Account With the CLI covers the other recovery options.
Validators and other operational wallets are the most exposed to this change. The change affects only how zigchaind creates keys, so existing coin type 118 accounts keep working and nothing changes on chain.
Can I Use a Ledger as a ZIGChain EVM Wallet?
Yes, for EVM transactions. A Ledger signs EVM transactions on ZIGChain through its Ethereum app, with MetaMask or with cast --ledger. Ledger keys added through zigchaind stay at coin type 118 with secp256k1 and keep working for Cosmos transactions. Add these keys with the --legacy flag, because coin type 60 Ledger keys are not possible in zigchaind.
zigchaind keys add WALLET_NAME --ledger --legacy
Device setup is in Set Up Ledger Wallet for ZIGChain.