New Calidus Pool-Key for SPOs and Services interacting with Pools

Eternl v2 now also fully supports the message signing via CIP-0030 dApp connector for
calidus1xxx keys. :slight_smile:

Also a short info, if you have generated yourself a calidus registration metadata like with the command described here, then please submit the generated json metadata in eternl v2 via the Custom Metadata feature & conversion set to Basic Conversions !

Thats needed to automatically convert the “0x…” strings in the registration metadata json into byte-arrays :slight_smile:

Calidus Pool Keys are now fully supported on

for MainNet. :fire:

You can also checkout the great blog post about it here:

@ATADA another box to tick here: :star_struck: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0151/README.md#acceptance-criteria

:fire: Calidus Pool Key Update

https://adastat.net Cardano Explorer

is now directly showing your registered Calidus Public Key on the pool page !
Now you can easily verify that your registration went well and check the current status. ! :partying_face:

Thx to Dmitry for this awesome implementation.:heart_eyes:

yea :slight_smile: i think we will wait for 2-3 more implementations before we do an update.

As its not possible for me to re-edit older posts in this thread, here is the latest version of the calidus key generation command that also writes out your id and mnemonics to files:

$ cardano-signer version
cardano-signer 1.28.0
$ cardano-signer keygen \
 --path calidus \
 --out-skey my.calidus.skey \
 --out-vkey my.calidus.vkey \
 --out-id my.calidus.id \
 --out-mnemonics my.calidus.mnemonics \
 --json-extended
$ cat my.calidus.id
calidus15yu0u0tdyhm8pa7gqvztqapt83nmj82fujvcmmczd4svypgx0mdmy

$ cat my.calidus.mnemonics
ugly account gasp clarify reward swim hidden employ uphold toast basket height transfer hour amazing blind fly subject lesson furnace swarm cross salute someone

$ cat my.calidus.vkey
{
  "type": "PaymentSigningKeyByron_ed25519_bip32",
  "description": "Payment Signing Key",
  "cborHex": "588048226bf7195fbc9ed2cf50dd7dd1b.....a59d7"
}

$ cat my.calidus.skey
{
  "type": "PaymentVerificationKeyByron_ed25519_bip32",
  "description": "Payment Verification Key",
  "cborHex": "5820f88c4eb9049bfce4002.....25d1a9683f71f3e5b4df13cf7e3"
}

Generate the registration metadata signed by your pool key:

$ cardano-signer sign --cip88 \
 --calidus-public-key my.calidus.vkey \
 --secret-key pool.skey \
 --json \
 --out-file calidus-registration-metadata.json

Submit the generated calidus-registration-metadata.json in a transaction on chain.

You can use the SPO Scripts to do so, you can also generate and submit Calidus via CN-Tools.

Metadata can also be submitted via a light wallet like eternl.


You can check your current registered calidus id for example von https://adastat.net on the specific pool page.

New Video-Tutorial is out showing you how to register your own Calidus Key.

In this video i covered two different methods:

  • Using the SPO Scripts
  • Doing it with just cardano-signer and a little help of eternl wallet

CNTools can do this natively too, there might be an additional video later on.

Link to the X-Post:

Direct YouTube Videolink:

Is it possible to export the public key for a chosen hardware wallet and make that the calidus key by signing it with the pool key?

I want to have my calidus key managed by my hardware wallet but I don’t want to enter the seed phrase + passphrase combination in order to generate the “calidus” key using cardano-signer because that would compromise the security of my hardware wallet. The hardware wallet has the private key and it can export the public key. Eg: Eternl soft wallet can get the public key.

So can I create this “calidus” key by signing a public key output from my keystone hardware wallet? Is it just a matter of signing the public key with my pool key and outputting the calidus required metadata? Will something like this process work?

  1. Extract the public key from my keystone wallet using the same method that Eternl wallet gets it, then save that file as my.hardwarewallet.vkey. (I need to check if cardano-hw-cli has finally implemented keystone support for exporting public keys).

  2. Then run this command:

cardano-signer sign --cip88 \
 --calidus-public-key my.hardwarewallet.vkey \
 --secret-key $HOME/cold-keys/node.skey \
 --json \
 --out-file calidus-registration-metadata.json

Will that work to produce a calidus key?

Here are the steps of my attempt to use a Calidus key to vote on the app.ekklesia.vote site:

  1. Entered a new passphrase to configure a new wallet on my Keystone device.

  2. Used cardano-hw-cli to extract the hw-payment.vkey for this new wallet:

    sudo cardano-hw-cli address key-gen \
      --path 1852H/1815H/0H/0/0 \
      --verification-key-file hw-payment.vkey \
      --hw-signing-file hw-payment.hwsfile
    

    Note: sudo is necessary otherwise permissions failure. I tried all sorts of udev rules but nothing worked to empower my ordinary user.

  3. Got my cold stake pool skey on an air-gappged machine and signed the hw-payment.vkey using cardano-signer and this command:

    node cardano-signer.js sign --cip88 \
     --calidus-public-key hw-payment.vkey \
     --secret-key cold.skey \
     --json \
     --out-file calidus-registration-metadata.json
    
  4. Created a transaction using Eternl wallet and transferred 5 Ada to myself attaching the contents from the calidus-registration-metadata.json file.

  5. Adastat says my Calidus key is registered for my pool: Pool | Cardano Explorer

  6. Now I try to use the Calidus key to vote on Ekklesia: I connect my new wallet using Eternl web app, select “Sign with Calidus key”, paste my pool ID, and click sign.

    Eternl error: “We couldn’t find credentials that match the address to sign. Please reload the app and try again.”

I have reloaded and reconnected several times but the error remains unchanged.

Anyone know how to generate a working Calidus key from a hardware wallet?