Wallets
One key, two addresses
Aeva accounts use eth_secp256k1 keys with coin type 60 — the same key
derivation as Ethereum. One key therefore has one account and two
spellings:
0x…— the EVM address, used by MetaMask and any Ethereum tool;aeva1…— the same 20 bytes in bech32, used by Keplr, the CLI, the faucet and the chain’s native messages.
The AEVA balance is the same whichever spelling you look it up with. The explorer’s account page shows both.
aeva1 address (for the faucet and Keplr): —
From the CLI: aevad debug addr 0x… prints both forms.
MetaMask
The button calls wallet_addEthereumChain with these values; to add the
network by hand, open MetaMask → Settings → Networks → Add a network
manually and enter:
| Field | Value |
|---|---|
| Network name | Aeva testnet |
| RPC URL | https://evm.aevachain.com |
| Chain ID | 2382 (hex 0x94e) |
| Currency symbol | AEVA |
| Block explorer URL | https://explorer.aevachain.com |
MetaMask checks the chain id against the RPC before it saves; the RPC answers
0x94e. Gas is paid in AEVA (EIP-1559). Transactions without a chain id
(pre-EIP-155) are rejected.
What MetaMask covers: AEVA transfers and AE-20 transfers — every asset’s right kinds and bundles are ERC-20s (below). What it does not: the chain’s native messages (issuing, settlement, pledges, claims). For those, use Keplr, the app or the CLI.
Keplr
The button calls Keplr’s experimentalSuggestChain with:
| Field | Value |
|---|---|
| Chain id | aeva-testnet-1 |
| RPC / REST | https://rpc.aevachain.com / https://api.aevachain.com |
| Coin type | 60 (Ethereum derivation), features eth-address-gen, eth-key-sign |
| Bech32 prefix | aeva (aevavaloper, aevavalcons) |
| Currencies | AEVA (aaeva, 18 decimals), aeUSD (aeusd, 6 decimals) |
| Fee currency | AEVA only, gas price 25 000 000 000 aaeva |
| Stake currency | AEVA |
Keplr signs native messages in SIGN_MODE_DIRECT. Because the coin type is
60, a mnemonic imported in both Keplr and MetaMask gives the same account.
Custom tokens: aeUSD and AE-20
In MetaMask, Import tokens → custom token → paste an address:
| Token | Address | Decimals |
|---|---|---|
| aeUSD (the settlement coin’s ERC-20 pair) | 0x5aB37c022D0ce153F1C1949a88a93A8DC3E546D7 | 6 |
| A right kind of an asset (AE-20) | the AE-20 address on the asset page (Info card, or the Kinds & Policy tab) | the kind’s decimals |
| An asset’s bundle (AE-20) | the AE-20 bundle address on the asset page | the bundled kinds’ decimals |
For a right or a bundle, balanceOf is the number of units you can transfer
(units held minus units locked). Transfers from MetaMask go through the same
policy checks as native transfers; a refused transfer reverts with a reason
such as aeva: policy denied: credential(investor.verified). How AE-20
addresses are derived: Concepts → The EVM facade & AE-20.
Hardware wallets
Ledger is not supported on testnet-0. Ledger’s Cosmos app signs only
secp256k1 keys over amino JSON; Aeva accounts are eth_secp256k1. Use a
software wallet with test funds only.