Operator Registration

To operate the network, participants must register as EigenLayer Operators and sign up on the AVS

Overview

The Othentic CLI allows you to register as an Operator to an AVS. This guide covers the commands and key configurations needed to get started.


I. Registering as an Operator on EigenLayer

To register an Operator, use the following command:

othentic-cli operator register-eigenlayer

Follow these steps when prompted:

  1. Enter the Operator's private key.

  2. Enter the Operator Details

    1. Operator name

    2. Description

    3. Website

    4. Logo URL

    5. Twitter profile

At the end, the CLI will display the transaction hash.

II. Registering as an Operator to the AVS

To register an Operator, use the following command:

othentic-cli operator register 

This command initiates the registration process on the AVS. You will be prompted to provide the following details:

  1. Private Key and Signing key

  • For testnet, you can use the same key.

  • For mainnet, two different keys are required. Detailed information on using separate keys is provided in the section below.

  1. AVS Governance Contract Address

You will be prompted to pass in AVS Governance contract address.

  1. Rewards Receiver Address

It is recommended to set the rewards receiver address to a smart contract that distributes rewards to stakers. If left empty, the Operator address will be used as the default.

To register an operator on mainnet add: --l1-chain mainnet

Unregistering as an Operator

To unregister as an Operator, use the following command:

othentic-cli operator unregister

Controller Key & Consensus Key

If you are unfamiliar with these terms, please refer to the Key Management section for more detailed information. To run an AVS Operator, two keys are required:

  1. Controller key:

    • Used to sign up with the shared security protocolComment

    • Represents the account to which restakers delegate their staked assets.

  2. Consensus key:

    • Used by the node to sign the consensus messages.

For the following examples, we will use:

  • 0x1 as the Controller Key

  • 0x2 as the Consensus Key

  • 0xA as the public address for the Controller Key

I. Using Separate EOA keys during Operator Registration

To use separate keys during registration, provide both keys when running the registration command:

> othentic-cli operator register
Enter your private key: 0x1
Enter your Signing Key: 0x2
AVS Governance Address: 0x8c8d99c754F705984f791D04bE06406cEd56Cc0c
...

II. Using Smart Account as Controller key for Operator (EIP-1271)

EIP-1271 is a standard that enables smart contract wallets to verify signatures, addressing the limitations of traditional signature authentication methods that are designed for Externally Owned Accounts (EOAs).

Smart accounts can be used as a Controller key for Operator registration, and EOA for the Consensus Key. Use the EIP 1271 Operator Registration Script to register the smart account.

1

Generate BLS Signature: The Consensus key is the same as the BLS key. Use the BLS key to run the following command to generate the signature:

ts-node scripts/genAvsRegisterBlsSignature.ts \
<BLS_PRIVATE_KEY> <AVS_GOVERNANCE_ADDRESS> <SMART_WALLET_ADDRESS> <RPC>

Once executed, a formatted JSON file .othentic/othentic-avs-register-as-operator.json containing the results will be generated.

2

Generate Auth Signature (Optional): If the AVS requires an auth signature, you can generate the same using the script below:

  • <SIGNER_PRIVATE_KEY> is the signing key of the smart account wallet.

  • <WALLET> is the smart account wallet address.

ts-node scripts/allowlist/generateSignature.ts \
<SIGNER_PRIVATE_KEY> <WALLET> <AVS_GOVERNANCE>

This will display the auth signature to be passed in the next step.

3

Generate Transaction Data for Operator Registration - This script generates transaction data for Operator registration.

  • <ECDSA_PRIVATE_KEY> is the signing key of the smart account wallet.

  • <RECEIVER_ADDRESS> is the Rewards Receiver Address

  • optional <AUTH_TOKEN> is the signature for allowlist service (from step2)

  • <RPC> : L1 RPC URL

ts-node scripts/genRegisterAsOperatorTx.ts \
<ECDSA_PRIVATE_KEY> <JSON_FILE> <RECEIVER_ADDRESS> <AUTH_TOKEN> <RPC>

Once executed, a formatted JSON file named .othentic/othentic-evm-transaction-data.json containing the transaction data will be generated.

4

Execute transaction: Use the generated data to execute a transaction using your smart account.

|||. Register Operator with Other wallets

Ledgers can be used as a Controller key for Operator registration, and EOA for the Consensus key. Use the EIP 1271 Operator Registration Script to register.

1

Generate BLS Signature: The Consensus key is same as the BLS key. Use the BLS key to run the following command to generate the signature:

ts-node scripts/genAvsRegisterBlsSignature.ts \
<BLS_PRIVATE_KEY> <AVS_GOVERNANCE_ADDRESS> <SMART_WALLET_ADDRESS> <RPC>

Once executed, a formatted JSON file .othentic/othentic-avs-register-as-operator.json containing the results will be generated.

2

Generate Auth Signature (Optional): If the AVS requires an auth signature, you can generate the same using the script below:

  • <SIGNER_PRIVATE_KEY> is the signing key of the smart account wallet.

  • <WALLET> is the smart account wallet address.

ts-node scripts/allowlist/generateSignature.ts \
<SIGNER_PRIVATE_KEY> <WALLET> <AVS_GOVERNANCE>

This will display the auth signature to be passed in the next step.

3

Execute the transaction in EtherScan: Use the above values to initiate a transaction on the AVS Governance contract registerAsOperator method via Etherscan or the L1 that you are using and sign uring your ledger.


Running an Operator Node

When running the node, configure the environment variables as follows:

  • PRIVATE_KEY: Set this to the Consensus Key.

  • OPERATOR_ADDRESS: Set this to the public address of the Controller Key.

OPERATOR_ADDRESS is the public address of the account that has signed up with the shared security protocol—the address to which stakers delegate their staked assets.

Example .env file:

# .env
...
PRIVATE_KEY=0x2
OPERATOR_ADDRESS=0xA
...

Update the BLS (consensus) Key

Othentic CLI allows you to update the consensus key for an operator. It internally calls updateBlsKey method on the Attestation Center contract. To update the key, run the following command:

othentic-cli operator bls update

Follow these steps when prompted:

  1. Provide the Controller key of the operator.

  2. Enter the Attestation Center contract address.

  3. Enter the new Consensus key.

At the end, the CLI will display the transaction hash. Alternatively, you can pass a keystore file and its password to update the same.


Last updated