Generating Wallet Keys
This document was written in May 2026 with reference to cardano-node and cardano-cli v11
A stake pool registration requires a funded wallet address. The address is a combination of a payment key (pays fees and deposits) and a stake key (receives rewards and anchors the pool registration).
These pages show the raw cardano-cli approach, which is appropriate for testnet. For mainnet, never generate payment or stake keys on an internet-connected machine. Production options:
- cardano-addresses with a GPG-encrypted mnemonic on an air-gapped machine — most secure; fully offline, hardware-independent, recoverable from mnemonic
- Hardware wallet (Ledger or Trezor via cardano-hw-cli) — keys never leave the device; convenient for signing transactions
Make sure CARDANO_NODE_SOCKET_PATH and CARDANO_NODE_NETWORK_ID are set before running any cardano-cli commands. See Running cardano-node.
Generate payment keys
mkdir -p $HOME/pool-keys
cd $HOME/pool-keys
cardano-cli address key-gen \
--verification-key-file payment.vkey \
--signing-key-file payment.skey
Generate stake keys
cardano-cli stake-address key-gen \
--verification-key-file stake.vkey \
--signing-key-file stake.skey
Build the stake address:
cardano-cli stake-address build \
--stake-verification-key-file stake.vkey \
--out-file stake.addr
Build the payment address
The payment address combines your payment key with your stake key so that ADA sent to it accrues rewards to your stake address:
cardano-cli address build \
--payment-verification-key-file payment.vkey \
--stake-verification-key-file stake.vkey \
--out-file payment.addr
Fund the address
Query the balance:
cardano-cli query utxo --address $(cat payment.addr)
On testnet, use the Cardano faucet to get test ADA. Select the Pre-Production testnet and paste your payment.addr.
Once funded, the balance query should show something like:
TxHash TxIx Amount
--------------------------------------------------------------------------------------
531f4bec36af503654c3c6fa34ecf07e5c29f67da8e2b84c8923b8c735b011c9 0 10000000000 lovelace
Next: Register your stake address.