How do I update a pool configuration that had two stake holders to only one?

When I originally created the pool configuration registration-certificate it looked like this for multiple owners


cardano-cli-mainnet stake-pool registration-certificate \
--cold-verification-key-file ./pool/mainnet_cold.vkey \
--vrf-verification-key-file ./pool/mainnet_vrf.vkey \
--pool-pledge 10000000 \
--pool-cost 340000000 \
--pool-margin 50/100 \
--pool-reward-account-verification-key-file ./reward/mainnet_reward_stake.vkey \
--pool-owner-stake-verification-key-file ./owner/joe/mainnet_joe_owner_stake.vkey \
--pool-owner-stake-verification-key-file ./owner/jonathan/mainnet_jonathan_owner_stake.vkey \
--single-host-pool-relay relays.tradingtools.software --pool-relay-port 6000 \
--metadata-url $(cat ./pool/mainnet_pool_description.url) \
--metadata-hash $(cat ./pool/mainnet_pool_description.hash) \
--testnet-magic 2 \
--out-file ./txs/mainnet_pool_registration.cert

Since the other owner, jonathan has left the stake pool and I only remain, how do I submit a new registration certificate?

According to my notes I should be able to submit another registration certificate like this

cardano-cli stake-pool registration-certificate \
--testnet-magic 2 \
--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 \
--pool-relay-ipv4 <RELAY NODE PUBLIC IP> \
--pool-relay-port <RELAY NODE PORT> \
--metadata-url <URL> \
--metadata-hash <POOL METADATA HASH> \
--out-file pool-registration.cert

Do I just submit a new one where I just remove the extra pool-owner?

If this is the case, do I need to submit different witnesses in the transaction build phase?

For example…

cardano-cli transaction build \
--testnet-magic 2 \
--tx-in $(cardano-cli query utxo --address $(cat payment.addr) --testnet-magic 2 --out-file  /dev/stdout | jq -r 'keys[0]') \
--change-address $(cat payment.addr) \
--witness-override 4 \
--certificate-file pool-registration.cert \
--out-file tx.raw

For example I assume I would only need 4 witnesses, one for the payment tx-in part and another for my separate owner address and another for the cold key of the registration-cert and one for the reward address (note my reward address vkey is not the same as my owner address). Do I need to give any other signatures to override the other owner? Or because I have the cold key I can just set whatever owners I want whenever? (including adding or removing at will?)

You can change the owners at will with a pool update. No need for the signatures of removed pool owners.

Are you also going to decrease your pledge? In that case, you need to follow one of the following scenarios:

Option 1

  • Do a pool update where you just lower the pledge (which needs to be signed by Jonathan too, because he is still an owner).
  • Wait a couple of epochs (I think 3) for the new pledge to come into effect.
  • Do a second pool update where you can remove Jonathan as an owner (doesn’t need to be signed by Jonathan).

Option 2

  • Let Jonathan transfer his part of the pledge to an address coupled with your current owner stake address (the payment part doesn’t matter and can still be, and should be, controlled by Jonathan). This is called a mangled address or Franken address.
  • Do a pool update where you lower the pledge and remove Jonathan as an owner (doesn’t need to be signed by Jonathan). I think that this can be done immediately, but not 100% sure, so maybe wait until the next epoch just to be sure.
  • Wait a couple of epochs (I think 3) for the new pledge to come into effect.
  • Jonathan can transfer his part of the pledge freely to an address coupled with a staking address controlled by himself, so he will get the rewards from then on. Note that he only needs control over his payment private key, not your staking key.

If you don’t follow one of these scenarios, your pledge will not be met for a couple of epochs which you won’t receive rewards for. If you do something wrong and your pledge does show up as invalid in wallets or block explorers, you have until the end of the epoch to fix things, so maybe don’t do this all if the end of an epoch is near if you’re not confident.

Please verify it is indeed 3 epochs or just wait a couple of epochs longer if you can’t verify this.

1 Like

In my case I actually want to increase the pledge, currently it’s set to 10ada, but I want to increase that to 1000 ada from myself and just stake the rest normally. I’m also changing the margin to 1%.

Currently the pool is live here: TTSP1 Trading Tools Software Pool - Cardanoscan

Sounds like as long as my owner account has 1000 ada in it before I do this, it should not be a problem?

The pool registration changes on the certificate won’t kick in for 2 epochs anyways right?

1 Like

Just make sure your owner wallet never gets below 10 ADA and you can immediately do the pool update where you remove Jonathan as an owner.

Make sure to put that 1000 ADA in your owner wallet before you submit the pool update to increase pledge however. For the protocol it only needs to be there in time, but wallets and block explorers still might show it as pledge not met… Ans to be really really sure (because block explorers can be buggy), first fill your owner wallet with 1000 ADA and wait for the next epoch to submit the pool update with the new pledge.

Pool updates like fixed feen margin and pledge take 3 epochs to come into effect, not 2.

2 Likes

I successfully updated, thank you @brouwerQ

You can see it shows the changes there correctly. I just lowered to 5 ADA this time to be safe since the pledge doesn’t really matter at the moment. It’s good to know it’s pretty easy to increase it though anytime I’m ready. Also only, 1 owner and margin down to 1%, so everything worked nicely :).

1 Like