Keyring

ECDSA keypair corresponds to the operator Ethereum address and key for interacting with Pell Network. The BLS key is used for attestation purposes within the Pell protocol. BLS key is used when you register an AVS to Pell Network.

Init Keys

Generate encrypted ECDSA and BLS keys using the CLI:

pellcli keys init --key-type ecdsa [keyname]
pellcli keys init --key-type bls [keyname]
  • [keyname] - This will be the name of the created key file. It will be saved as .ecdsa.key.json or .bls.key.json.

This will prompt a password which you can use to encrypt the keys. Keys will be stored in a local disk and will be shown once keys are created. It will also show the private key only once, so that you can back it up in case you lose the password or key file.You can also create keys by piping your password to this command. This can help in automated key creation and will not prompt for password.

echo "password" | pellcli keys init --key-type ecdsa [keyname]

Example:

pellcli keys init --key-type ecdsa test
? Enter password to encrypt the ecdsa private key:
ECDSA Private Key (Hex):  b3eba201405d5b5f7aaa9adf6bb734dc6c0f448ef64dd39df80ca2d92fca6d7b
Please backup the above private key hex in safe place.

Key location: /home/ubuntu/.pell/keys/test.ecdsa.key.json
Public Key hex:  f87ee475109c2943038b3c006b8a004ee17bebf3357d10d8f63ef202c5c28723906533dccfda5d76c1da0a9f05cc6d32085ca1af8aaab5a28171474b1ad0aa68
Ethereum Address 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5

Import Keys

You can import existing ECDSA and BLS keys using the CLI, which are required for operator registration and other on-chain operations. This is useful if you already have an address which you want to use as your operator.To import an ECDSA key, use the command:

eigenlayer operator keys import --key-type ecdsa [keyname] [privatekey].

To import a BLS key, use the command:

eigenlayer operator keys import --key-type bls [keyname] [privatekey].
  • [keyname] is the name of the imported key file, and it will be saved as .ecdsa.key.json or .bls.key.json.

  • Privatekey is the private key of the key you wish to import.

    • For BLS keys, it should be a large number.

    • For ECDSA keys, it should be in hex format.

You can also import keys by piping your password to this command. This can help in automated key creation and will not prompt for password.

echo "password" | eigenlayer operator keys import --key-type ecdsa [keyname] [privatekey]

Example:This part of the command tells the Pell tool that you want to import a key.

eigenlayer operator keys import --key-type ecdsa test 6842fb8f5fa574d0482818b8a825a15c4d68f542693197f2c2497e3562f335f6
? Enter password to encrypt the ecdsa private key: *
ECDSA Private Key (Hex):  6842fb8f5fa574d0482818b8a825a15c4d68f542693197f2c2497e3562f335f6
Please backup the above private key hex in safe place.

Key location: /home/ubuntu/.eigenlayer/operator_keys/test.ecdsa.key.json
Public Key hex:  a30264c19cd7292d5153da9c9df58f81aced417e8587dd339021c45ee61f20d55f4c3d374d6f472d3a2c4382e2a9770db395d60756d3b3ea97e8c1f9013eb1bb
Ethereum Address 0x9F664973BF656d6077E66973c474cB58eD5E97E1

This will initiate a password prompt that you can use to encrypt the keys. The keys will be stored on your local disk and will be displayed after they are created.The private key will also be shown only once, enabling you to create a backup in case you forget the password or lose the key file.

List Keys

This is the command you can use to retrieve a list of the keys you have created with the EigenLayer cli tool.

When you run the Pell Network operator keys list command, it will display a list of all the keys that were generated using this specific command, along with their corresponding public keys. This information can be useful for managing and identifying the keys you've created. Public keys are typically used for encryption, authentication, and verifying digital signatures.

Export keys

If you want to see the private key of the existing keys, you can use the below command. This will only work if your keys are in default location (~/.pell/keys)

pellcli keys export --key-type ecdsa [keyname]

This will also prompt for the password used to encrypt the key. If your keys is not in the default location, you can give the full path to the key file using --key-path flag. You don't need to provide the key name in that case.

pellcli keys export --key-type ecdsa --key-path [path]