Generating Cardano Block producer keys
Let's create our pool keys
With SPOS scripts this task is a super easy task:
04a_genNodeKeys.sh myPool
04b_genVRFKeys.sh myPool
04c_genKESKeys.sh myPool
04d_genNodeOpCert.sh myPool
# let's see generated files
ls -al myPool*
Now you have generated your pool keys!

StakePool certificate generation

05a_genStakepoolCert.sh myPool
This command will generate a template that you have to fill in so we can generate a valid pool certificate
nano myPool.pool.json
I'm creating a single owner pool with the following configuration:
  • Pools Pledge: 1mil ADA (will be held in poolOwner address)
  • Fixed Fee: 340 ADA (This is currently the minimum you can set)
  • Pools Margin: 5%
  • 2 IP relays: 89.191.111.111 and 89.191.111.112, both will run on port 3001
  • Pool's TICKER: XPOOL
  • short and long descriptions: "My Testnet Pool #2", "This pool is used for the guide i created",
  • main metadata file will be stored at the following url: https://www.stakepool247.eu/xpool-testnet.metadata.json
  • extended metadata (used by adapools, pooltool, and other services): https://www.stakepool247.eu/xpool-testnet.extended.json
Let's run again the same command
05a_genStakepoolCert.sh myPool
as we previously didn't have an extended metadata file, the script created a template, which we will edit and re-run the command once again.
05a_genStakepoolCert.sh myPool
edit it so it corresponds to your needs, this file is just for additional information.
when you have edited it, let's run the same command again:
nano myPool.additional-metadata.json
you will get 2 reminders to upload the 2 generated metadata files (myPool.extended-metadata.jsonmyPool.metadata.json) to your webserver. This is mandatory for your pool to be visible on Daedalus and other wallets:
so, let's rename them as we defined them in our config files a
cp myPool.metadata.json xpool-testnet.metadata.json
cp myPool.extended-metadata.json xpool-testnet.extended.json
and upload to a webserver (either by ftp/sftp or any other means), when it's done, let's proceed.
Let's create a delegation certificate where we will delegate to our own pool
05b_genDelegationCert.sh myPool poolOwner
this will generate the poolOwner.deleg.cert before proceeding let's honor our pledge and send the pledged amount to poolOwner.paymet address, you can find the address where you have to send your funds in the poolOwner.payment.addr file
cat poolOwner.payment.addr
send your pledge to that address and check in few seconds if it has arrived:
01_queryAddress.sh poolOwner.payment
Great, fund arrived - let's move forward.
As the final task - let's register the stake pool on the blockchain (fees paid by the myWallet)
05c_regStakepoolCert.sh myPool myWallet
So, if you did everything correctly in few minutes (sometimes hours) you will have your freshlly registred pool on Daedalus:
Copy link