Hello community, my first post and on the way to becoming a stake pool operator.
I am a little confused about the purpose and use behind payment keys and address and stake keys and addresses.
The process :
- Create payment keys, this creates a payment address
- Create stake keys, this creates a stake address which is like a reward address that cannot receive funds other than rewards from a stake pool
- Create another payment address which is a combination of the payment signing key listed in (1) and the stake signing key listed in (2).
When I looked at the documentation for withdrawing rewards it noted to use the payment address (1) as the recipient for rewards. This leads me to ask what exactly is the function of the payment address listed in (3). Is there any detailed documentation on the function of each of the 3 addresses used for stake delegation?
Another question I have is about protecting the signing keys generated above. While there is quite a bit of caution advised when dealing with stake pool keys (use cold storage etc), there is little caution about protecting the signing keys generated above. Can you also advise what precautions we should take with these keys?
- When you
address build
just your payment.vkey
that is your âEnterprise addressâ/âInternal addressâ and does not appear on https://cardanoscan.io/
- When you
stake-address build
just your stake.vkey
that is your rewards address and appears on https://cardanoscan.io/
- When you
address build
your payment.vkey
and stake.vkey
it creates a relationship that also appears on https://cardanoscan.io/ that is your âBase addressâ - The beauty of this relationship is you can have many payment.vkey
keys tied to a single stake.vkey
eg: Addresses - Cardanoscan and thus many Base addresses.
It is very important you protect:
Walletâs payment.skey
and stake.skey
Poolâs cold.vkey
and cold.skey
Those 4 keys are all you need to protect which will deny any attacker the ability to sign transactions and generate certificates.
Hi, thanks for your reply. It does help clarify things a little.
Instead of creating a payment key in cardano-cli would it be possible to use a hardware wallet like Ledger as the payment key?
Do you normally transfer rewards from your rewards address to your âenterprise addressâ or your âbase addressâ? If you transfer it to your base address do you create a new address every time you transfer rewards?
Absolutely, you can use cardano-hw-cli/poolRegistration.md at develop ¡ vacuumlabs/cardano-hw-cli ¡ GitHub or you can extract the keys, whichever suits you best.
My pool, 0PC, doesnât have enough stake to earn rewards yet so Iâm not 100% sure⌠But based on the documentation I updated you specify a --tx-out
so, in theory, you should be able to specify more than one --tx-out
, one for receiving change from the transaction fee --tx-in
and the other for receiving the rewards. You will always transfer rewards to a âbase addressâ and you can choose to use the same address or different addresses, itâs really up to you 
1 Like
thanks heaps 0PC and good luck with your stake pool. I see that itâs quite new so no doubt youâll be earning rewards soon.
Thank you @demetrio. While it is hard to find delegates, I am really enjoying the process.
0PC attracts more delegates and produces blocks in the future! :D!