Cardano Stake Pool as a Service
  • Cardano Stake Pool Management
  • 🔥New Stake Pools
    • Pledge and Stake Key file generation
      • MacOs
        • 🥬Cardano stake pool key generation for MacOs (with Hardware Wallet)
      • Windows
        • 🌵Cardano stake pool key generation for Windows (with Hardware Wallet)
        • 🥥Cardano stake pool key generation for Windows (plain text keys)
      • Linux (Ubuntu)
        • 🧑‍🎓Cardano Pledge/Staking key generation with Hardware Wallet
        • Keys from Mnemonic phrase
  • 🔥Existing Stake Pools
    • Full Migration to StakePool247.io services
Powered by GitBook
On this page
  • 1. Getting ready
  • 1.1 Create a "cardano" directory where to store the executable files and keys
  • 1.2 downloading Cardano Wallet CLI
  • 1.2.1 extracting the files
  • 1.3 downloading Cardano Hardware Wallet CLI
  • 2. Generating pool keys
  • 3. Testing generated addresses and pledging
  • 4. Sending keys:

Was this helpful?

  1. New Stake Pools
  2. Pledge and Stake Key file generation
  3. Linux (Ubuntu)

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)

PreviousLinux (Ubuntu)NextKeys from Mnemonic phrase

Last updated 3 years ago

Was this helpful?

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

if you are getting the following error: "Error: Error occured while trying to find hw transport, make sure Ledger or Trezor is connected to you computer"

then run the following command and redo the previous step:

wget -q -O - https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash

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)

(more info about this:

🔥
🧑‍🎓
https://support.ledger.com/hc/en-us/articles/115005165269-Fix-connection-issues?support=true