Keys from Mnemonic phrase
here is a quick way to extract keys from the mnemonic phrase (using modified guides from coincashew and Ilap)
Use this guide on a secure computer or on a Virtual PC - just get the keys and destroy the VM
wget https://github.com/input-output-hk/cardano-wallet/releases/download/v2021-09-29/cardano-wallet-v2021-09-29-linux64.tar.gz
tar -xvf cardano-wallet-v2021-09-29-linux64.tar.gz
rm cardano-wallet-v2021-09-29-linux64.tar.gz
cd cardano-wallet-v2021-09-29-linux64
wget https://raw.githubusercontent.com/stakepool247/linux-mnemonic-extract/main/extractPoolStakingKeys.shcat > extractPoolStakingKeys.sh << HERE
#!/bin/bash
CADDR=\${CADDR:=\$( which cardano-address )}
[[ -z "\$CADDR" ]] && ( echo "cardano-address cannot be found, exiting..." >&2 ; exit 127 )
CCLI=\${CCLI:=\$( which cardano-cli )}
[[ -z "\$CCLI" ]] && ( echo "cardano-cli cannot be found, exiting..." >&2 ; exit 127 )
OUT_DIR="\$1"
[[ -e "\$OUT_DIR" ]] && {
echo "The \"\$OUT_DIR\" is already exist delete and run again." >&2
exit 127
} || mkdir -p "\$OUT_DIR" && pushd "\$OUT_DIR" >/dev/null
shift
MNEMONIC="\$*"
# Generate the master key from mnemonics and derive the stake account keys
# as extended private and public keys (xpub, xprv)
echo "\$MNEMONIC" |\
"\$CADDR" key from-recovery-phrase Shelley > root.prv
cat root.prv |\
"\$CADDR" key child 1852H/1815H/0H/2/0 > stake.xprv
cat root.prv |\
"\$CADDR" key child 1852H/1815H/0H/0/0 > payment.xprv
TESTNET=0
MAINNET=1
NETWORK=\$MAINNET
cat payment.xprv |\
"\$CADDR" key public --with-chain-code | tee payment.xpub |\
"\$CADDR" address payment --network-tag \$NETWORK |\
"\$CADDR" address delegation \$(cat stake.xprv | "\$CADDR" key public --with-chain-code | tee stake.xpub) |\
tee base.addr_candidate |\
"\$CADDR" address inspect
echo "Generated from 1852H/1815H/0H/{0,2}/0"
cat base.addr_candidate
echo
# XPrv/XPub conversion to normal private and public key, keep in mind the
# keypars are not a valid Ed25519 signing keypairs.
TESTNET_MAGIC="--testnet-magic 1097911063"
MAINNET_MAGIC="--mainnet"
MAGIC="\$MAINNET_MAGIC"
SESKEY=\$( cat stake.xprv | bech32 | cut -b -128 )\$( cat stake.xpub | bech32)
PESKEY=\$( cat payment.xprv | bech32 | cut -b -128 )\$( cat payment.xpub | bech32)
cat << EOF > stake.skey
{
"type": "StakeExtendedSigningKeyShelley_ed25519_bip32",
"description": "",
"cborHex": "5880\$SESKEY"
}
EOF
cat << EOF > payment.skey
{
"type": "PaymentExtendedSigningKeyShelley_ed25519_bip32",
"description": "Payment Signing Key",
"cborHex": "5880\$PESKEY"
}
EOF
"\$CCLI" key verification-key --signing-key-file stake.skey --verification-key-file stake.evkey
"\$CCLI" key verification-key --signing-key-file payment.skey --verification-key-file payment.evkey
"\$CCLI" key non-extended-key --extended-verification-key-file payment.evkey --verification-key-file payment.vkey
"\$CCLI" key non-extended-key --extended-verification-key-file stake.evkey --verification-key-file stake.vkey
"\$CCLI" stake-address build --stake-verification-key-file stake.vkey \$MAGIC > stake.addr
"\$CCLI" address build --payment-verification-key-file payment.vkey \$MAGIC > payment.addr
"\$CCLI" address build \
--payment-verification-key-file payment.vkey \
--stake-verification-key-file stake.vkey \
\$MAGIC > base.addr
echo "Important the base.addr and the base.addr_candidate must be the same"
diff base.addr base.addr_candidate
popd >/dev/null
HEREchmod +x extractPoolStakingKeys.sh
export PATH=$PATH:$(pwd)extracting the keys by executing following command:
./extractPoolStakingKeys.sh KEYS <MNEMONIC PHRASE>
# here is an example
./extractPoolStakingKeys.sh KEYS pepper stool slender black dizzy crane modify twenty pilot purse spider miracle common clock basket emerge hammer shrug grain barrel little response uphold throw#copying files
mkdir -p ~/Keys
cd KEYS
mv stake.vkey stake.skey stake.addr payment.vkey payment.skey base.addr ~/Keys
cd ~/Keys
#Rename to base.addr file to payment.addr
mv base.addr payment.addr
# show files
ls -al
you should have following keys

payment.addr - payment address where to send funds
payment.addr - payment address where to send funds
payment.skey - payment signing key (keep this secure and don't share it with noone)
payment.vkey - payment verification key
stake.addr - stake address
stake.skey - stake address signing key for receiving rewards
stake.vkey - stake address verification key
compressing files needed for stake pool management
now you should have a keys.tar.gz which consists of all the keys (except payment.skey) which you have to send to [email protected]
to see your pledge address to which you have to send your pledge type following command:

Use for pledge only the address which is in the payment.addr file!
you can send a test payment to that address and check if you can see the transactin in your wallet, if everything is ok, proceed with the total amount of pledge.
Last updated
Was this helpful?