Generating keys

First, you should register a stake pool using the following command:

cardano-cli stake-pool registration-certificate \
--cold-verification-key-file cold.vkey \
--vrf-verification-key-file vrf.vkey \
--pool-pledge <AMOUNT TO PLEDGE IN LOVELACE> \
--pool-cost <POOL COST PER EPOCH IN LOVELACE> \
--pool-margin <POOL OPERATOR MARGIN > \
--pool-reward-account-verification-key-file stake.vkey \
--pool-owner-stake-verification-key-file stake.vkey \
--testnet-magic 2 \
--pool-relay-ipv4 <RELAY NODE PUBLIC IP> \
--pool-relay-port <RELAY NODE PORT> \
--single-host-pool-relay STRING <The stake pool relay's DNS name that corresponds to an A or AAAA DNS record> \
--metadata-url https://git.io/JJWdJ \
--metadata-hash <POOL METADATA HASH> \
--out-file pool-registration.cert

Generating the artifacts

You will now need to generate all the following artifacts:

payment.vkey

payment verification key

payment.skey

payment signing key

payment.addr

funded address linked to stake

stake.vkey

staking verification key

stake.skey

staking signing key

stake.addr

registered stake address

cold.skey

cold signing key

cold.vkey

cold verification key

kes.skey

KES signing key

kes.vkey

KES verification key

vrf.skey

VRF signing key

vrf.vkey

VRF verification key

opcert.cert

operational certificate

opcert.counter

issue counter

metadata url

metadata hash

Payment and stake key pairs

WE WILL GENERATE KEYS IN OUR AIR-GAPPED MACHINE.

Payment and stake keys

Generate payment 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

Generate the payment address:

cardano-cli address build \
--payment-verification-key-file payment.vkey \
--stake-verification-key-file stake.vkey \
--testnet-magic 2 \
--out-file payment.addr

REQUEST FUNDS FROM THE FAUCET

Cold keys

cardano-cli node key-gen \
--cold-verification-key-file cold.vkey \
--cold-signing-key-file cold.skey \
--operational-certificate-issue-counter-file opcert.counter

Key evolving signature (KES) keys

cardano-cli node key-gen-KES \
--verification-key-file kes.vkey \
--signing-key-file kes.skey

Verifiable random function (VRF) keys

cardano-cli node key-gen-VRF \
--verification-key-file vrf.vkey \
--signing-key-file vrf.skey

Upload keys to the block-producing node

On the Block producer, run:

mkdir keys

Use a USB drive to bring kes.skey vrf.skey and opcert.cert to your working machine and from there, upload:

scp kes.skey vrf.skey opcert.cert username@host:/remote/directory

DO NOT COPY COLD KEYS OR PAYMENT KEYS TO THE BLOCK PRODUCER OR RELAY NODES.

Last updated