🧑🎓Cardano Pledge/Staking key generation with Hardware Wallet
This is a step-by-step guide on how to create pool's pledge/staking (hybrid) keys using hardware wallet (the secret keys never leave the HW)
1. Getting ready
For this guide to work, you will need a computer running Ubuntu Desktop or Ubuntu Server. We will be using Ubuntu Desktop Ubuntu 20.04.3 desktop for this guide. You can use also the Ubuntu Server (or any other Linux flavor) as we will be using the command line (terminal) to execute the neccessary commands.

1.1 Create a "cardano" directory where to store the executable files and keys
open the terminal app and execute the below commands to complete this guide.
mkdir -p cardano
cd cardano

1.2 downloading Cardano Wallet CLI
# checking for updates
sudo apt update -y
sudo apt upgrade -y
# installing curl
sudo apt install curl
# downloading the cardano-wallet files
curl -L https://github.com/input-output-hk/cardano-wallet/releases/download/v2022-01-18/cardano-wallet-v2022-01-18-linux64.tar.gz --output cardano-wallet-v2022-01-18-linux64.tar.gz

1.2.1 extracting the files
tar -zxvf cardano-wallet-v2022-01-18-linux64.tar.gz
1.2.3 checking the files
cd cardano-wallet-v2022-01-18-linux64/ && ls -al
1.3 downloading Cardano Hardware Wallet CLI
curl -L https://github.com/vacuumlabs/cardano-hw-cli/releases/download/v1.9.1/cardano-hw-cli-1.9.1_linux-x64.tar.gz --output cardano-hw-cli-1.9.1_linux-x64.tar.gz
1.3.1 extracting files
tar -zxvf cardano-hw-cli-1.9.1_linux-x64.tar.gz

2. Generating pool keys
2.1 creating "keys" folder for the keys
cd ..
mkdir -p keys
cd keys
2.1 creating staking keys
../cardano-wallet-v2022-01-18-linux64/cardano-cli stake-address key-gen --verification-key-file pool.staking.vkey --signing-key-file pool.staking.skey
ls -al
you should see the following files in the folder
2.2 Generating payment verification keys from Hardware Wallet
Before continuing - connect your ledger/trezor device and launch Cardano app
../cardano-wallet-v2021-09-29-macos64/cardano-hw-cli/cardano-hw-cli address key-gen --path 1852H/1815H/0H/0/0 --verification-key-file pool.payment.vkey --hw-signing-file pool.payment.hwsfile
ls -al
approve the public key export on your ledger/trezor device
you should see following files in the folder

2.3. Building a Payment (pledge) address (from payment and staking public keys)
../cardano-wallet-v2022-01-18-linux64/cardano-cli address build --payment-verification-key-file pool.payment.vkey --staking-verification-key-file pool.staking.vkey --mainnet > pool.payment.addr
ls -al
2.4. Building a stake Address
../cardano-wallet-v2022-01-18-linux64/cardano-cli stake-address build --staking-verification-key-file pool.staking.vkey --mainnet > pool.staking.addr
ls -al
2.5 Create the staking registration certificate
../cardano-wallet-v2022-01-18-linux64/cardano-cli stake-address registration-certificate --staking-verification-key-file pool.staking.vkey --out-file pool.staking.cert
ls -al
2.6 Check the pledge address (Where you will be sending your pledge)
cat pool.payment.addr

3. Testing generated addresses and pledging
After you have generated the keys, let's test if everything works fine by adding the account to Daedalus Wallet
3.1. Pair your Hardware Wallet with Daedalus
3.2. Testing the pledge address visibility in Daedalus / Yoroi
3.2.1. Send a test amount (~5 ADA) to the address which you got on previous steps when you generated the pledge wallet keys
3.2.2. When you have received the test ADA - try to send back the 5 ADA to your main wallet.
3.2.3. Wait till the ADA arrives at the Daedalus wallet - if you received it, then everything is set up correctly and you can proceed with sending the rest of the pledge to that address.
4. Sending keys:
This step is only for people who are using StakePool247 Stake Pool outsourcing service!
For us to generate the necessary keys and to be able to automatically send you the rewards we will need the following files:
pool.payment.addr - payment/pledge address
pool.payment.vkey - payment/pledge public key (pledge wallet's secret key always stays in your hardware wallet device)
pool.staking.addr - pool's staking address, where rewards will be sent
pool.staking.vkey - pool's staking public key
pool.staking.skey - pool's staking secret key - we will automatically withdraw rewards and send your part to your identified Cardano address (which you submitted in the google spreadsheet)
Last updated
Was this helpful?