9. Registering to the Cardano Foundation

In this (nearly) final part of this guide, you will be registering your stakepool to the Cardano Foundation. This will allow delegators to find your stakepool in Daedalus or Yoroi. It's not an easy thing to do, so pay attention!

9.1 Create a GitHub account here

9.2 Once you have configured your GitHub account, go to settings and then to SSH, or just click this link

9.21 Click on the "New SSH key" button

9.22 Now go back to your virtual machine, more specifically to your Terminal tab and execute the following commands

cd ~/.ssh
ssh-keygen

9.23 Now insert a name, whatever you want and give it a password, confirm the password, and execute the following commands

cd
chmod 400 ~/.ssh/thenameyoujustgavetoyoursshkey

This is to lock your SSH key on your machine, it's basically an additional security feature.

cd ~/.ssh
more thenameyoujustgavetoyoursshkey.pub

Don't forget the .pub, otherwise you will see the private SSH key, instead of the public SSH key

9.24 Copy everything which appeared after executing the last command above, and paste it into the Github new SSH key page you opened in step 9.21, add a title, and save it

9.3 Now go on this page and click on "fork"

9.31 Now click on the green "Clone or download" button and then on "use SSH"

9.32 Now click on the little icon next to the link

9.33 Open a new Terminal tab and install Git on your machine with the following command, press "Y" insert your password, and wait a minute

sudo apt install git

9.34 Now execute the following command, insert "yes" and give the password you created when creating the SSH key in step 9.22

git clone linkyoujustcopiedongithub

9.35 Execute the following commands

cd ~/incentivized-testnet-stakepool-registry
git checkout -b submission
cd registry

9.36 Now we are going to create a new .json file, you will need to copy the public key in the "stakepool_owner_account.txt" file, then execute the following commands

touch PUBLIC_KEY_PK.json

Don't forget the .json.

nano PUBLIC_KEY_PK.json

9.37 Now that you are in the editor, paste the following and adapt it to your stakepool

{
"owner": "PUBLIC_KEY_PK",
"name": "thenameofyourstakepool",
"description": "thedescriptionofyourstakepool",
"ticker": "thetickerofyourstakepool",
"homepage": "thewebsiteofyourstakepool",
"pledge_address": "ADDRESS"
}

The ticker value should be in uppercase. So do not write "pool", but "POOL".

Replace PUBLIC_KEY_PK and ADDRESS with the the public key and address available in the stakepool_owner_account.txt file.

This is what it should look like:

9.38 To save the file, press "ctrl + o" at the same time, click enter and then leave the editor with "ctrl + x" and get out of the Cardano Foundation Registry folder in your terminal with cd like we did previously during this guide

9.39 Execute the following commands

echo PRIVATE_KEY_SK > owner.prv
./Downloads/stakepool/jcli key sign --secret-key owner.prv --output ./incentivized-testnet-stakepool-registry/registry/PUBLIC_KEY_PK.sig ./incentivized-testnet-stakepool-registry/registry/PUBLIC_KEY_PK.json

Make sure to replace for the two .sig and .json files in the code above the text with your public key, which you can find in the stakepool_owner_account.txt file.

9.4 Execute the following command and look search your public address, you should find a .json one and a .sig one if you did everything correctly, make sure you aren't in a folder (use cd if necessary to quit the folder)

ls ./incentivized-testnet-stakepool-registry/registry/* | sort

You can search your public key with "Shift + CTRL + F" and then paste your public key in the search bar.

9.5 Now execute the following commands in the right order

cd ./incentivized-testnet-stakepool-registry/registry/
git add PUBLIC_KEY_PK.json
git add PUBLIC_KEY_PK.sig
git commit -m "thetickerofyourstakepool"
git push

This may not work for some odd reason, if it is the case, try the following (if it works, just scroll down to 9.6):

Execute git remote -v, if everything works fine, you should see the following

origin git@github.com:yourgithubusername/incentivized-testnet-stakepool-registry.git (fetch)
origin git@github.com:yourgithubusername/incentivized-testnet-stakepool-registry.git (push)
submission git@github.com:yourgithubusername/incentivized-testnet-stakepool-registry (fetch)
submission git@github.com:yourgithubusername/incentivized-testnet-stakepool-registry (push)

If you don't see the two "submission" lines, execute the following

git remote add submission git@github.com:yourlovelygithubusername/incentivized-testnet-stakepool-registry

And only then this:

git add PUBLIC_KEY_PK.json
git add PUBLIC_KEY_PK.sig
git commit -m "thetickerofyourstakepool"

If the Terminal returns "*** Please tell me who you are." enter the following command and then enter again the git commit command.

git config --global user.email "yourgithubemailaddress"

Instead of doing the git push like above, you will be doing this

git push submission HEAD

9.6 Now go back to the GitHubpage of your registry fork, and click on "Compare & pull request"

9.61 Now scroll down and check if the system hasn't found any mistakes

9.62 And then, just click on the green "Create pull request"

You will need to wait one to two days before your submission is accepted by the Cardano Foundation. After that, your stakepool will be available on Daedalus and Yoroi

Questions? Ask them in our Telegram chat!