Registering a Stake Address
version reference
This document was written in May 2026 with reference to cardano-node and cardano-cli v11
Before registering a pool, the stake address must be registered on-chain. This costs a deposit (currently 2 ADA on mainnet, returned when you deregister) plus transaction fees.
This page assumes you have completed Generating Wallet Keys and that CARDANO_NODE_SOCKET_PATH and CARDANO_NODE_NETWORK_ID are set.
Create the registration certificate
cardano-cli stake-address registration-certificate \
--stake-verification-key-file stake.vkey \
--out-file stake.cert
Build, sign, and submit the transaction
Query the current slot (used for --invalid-hereafter):
currentSlot=$(cardano-cli query tip | jq -r '.slot')
Build the transaction — transaction build calculates fees and change automatically:
cardano-cli conway transaction build \
--tx-in $(cardano-cli query utxo --address $(cat payment.addr) --out-file /dev/stdout | jq -r 'keys[0]') \
--change-address $(cat payment.addr) \
--certificate-file stake.cert \
--invalid-hereafter $(( currentSlot + 1000 )) \
--witness-override 2 \
--out-file tx.raw
note
--witness-override 2 tells the fee estimator that two keys will sign (payment + stake). If you have more signers, adjust accordingly.
Sign with both the payment and stake signing keys:
cardano-cli conway transaction sign \
--tx-body-file tx.raw \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--out-file tx.signed
Submit:
cardano-cli conway transaction submit --tx-file tx.signed
Next: Register your pool.