Othentic
  • Introduction
    • Introducing Othentic Stack
    • Use Cases
  • AVS Framework
    • Abstract
    • Quick Start
    • Othentic CLI
      • Key Management
      • Contracts Deployment
      • Operator Registration
      • AVS Logic Implementation
      • Operator Deposit
      • Node Operators
      • Rewards Distribution
      • P2P Config
        • Custom P2P Messaging
        • P2P Auth Layer
        • Metrics and Monitoring
        • Logging
        • Persistent storage
        • Latency
      • CLI Command Reference
    • Smart Contracts
      • AVS Governance
      • Attestation Center
      • Hooks
        • Task Logic
        • Operator Management
        • Rewards Fee Calculator
      • OBLS
      • Othentic Registry
      • Message Handlers
    • Othentic Consensus
      • Abstract
      • Task & Task Definitions
      • Leader Election
      • Proof of Task
      • Execution Service
      • Validation Service
      • Voting Power
      • Rewards and Penalties
      • Internal Tasks
    • FAQ
    • Supported Networks
    • Explainers
      • Networking
      • Multichain
      • Production Guidelines
      • Operator Allowlisting
      • Governance Multisig
  • External
    • AVS Examples
  • GitHub
  • Othentic Hub
Powered by GitBook
On this page
  • Overview
  • I. Registering as an Operator on EigenLayer
  • II. Registering as an Operator to the AVS
  • Unregistering as an Operator
  • Controller Key & Consensus Key
  • I. Using Separate EOA keys during Operator Registration
  • II. Using Smart Account as Controller key for Operator (EIP-1271)
  • |||. Register Operator with Other wallets
  • Running an Operator Node
  • Update the BLS (consensus) Key
  1. AVS Framework
  2. Othentic CLI

Operator Registration

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

PreviousContracts DeploymentNextAVS Logic Implementation

Last updated 1 month ago

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.

: The operator must deposit funds into their chosen Eigen Layer strategy before registering with the AVS.

Please make sure to follow this order when registering the operator. This specific order ensures correct Voting Power sync. Depositing funds after AVS registration requires manual voting power syncing.

II. Registering as an Operator to the AVS

To register an Operator, use the following command:

othentic-cli operator register --l1-chain <chainName>

This command initiates the registration process on the AVS and also syncs the voting power internally. You will be prompted to provide the following details:

  1. Private Key and Signing key

  • For testnet, you can use the same key.

  1. 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 an Operator from the AVS, use the following command:

othentic-cli operator unregister --l1-chain <chainName>

Controller Key & Consensus Key

  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).

In this setup:

  • The Controller Key is a smart contract wallet compliant with EIP-1271.

  • The Consensus Key remains an EOA that holds a BLS key pair.

1

Generate BLS Signature

The Consensus Key must be used to generate the required BLS signature. Run the following command:

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

Parameters:

  • BLS_PRIVATE_KEY: BLS private key or Consensus Key.

  • AVS_GOVERNANCE_ADDRESS: The governance address of the AVS.

  • SMART_WALLET_ADDRESS: Address of the smart account.

  • RPC: L1 RPC endpoint.

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

2
3

Generate Transaction Data for Operator Registration

Use the script below to prepare transaction data for the Operator registration transaction:

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

Parameters:

  • <ECDSA_PRIVATE_KEY> Private key of the smart account signer

  • JSON_FILE: Path to the JSON file generated in Step 1

  • <RECEIVER_ADDRESS> Address where Operator rewards will be sent.

  • <AUTH_TOKEN> (optional) Token for allowlist access if required by the AVS generated in Step 2

  • <RPC> : L1 RPC URL

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

Hardware wallets such as Ledger can also be used as the Controller Key for Operator registration. In this setup:

  • The Controller Key is your Ledger (or similar wallet).

  • The Consensus Key is an Externally Owned Account (EOA) that holds a valid BLS key.

1

Generate BLS Signature

The Consensus Key must be used to generate the required BLS signature. Run the following command:

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

Parameters:

  • BLS_PRIVATE_KEY: BLS private key or Consensus Key.

  • AVS_GOVERNANCE_ADDRESS: Address of your AVS governance contract.

  • LEDGER_ADDRESS: Address of your Ledger wallet (Controller Key).

  • RPC: L1 RPC endpoint.

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

2
3

Execute the transaction via EtherScan:

Once you’ve generated the BLS signature, register the Operator manually via Etherscan (or any compatible block explorer for your L1):

  • Go to your AVS Governance contract on Etherscan

  • Input the required parameters using the values from .othentic/othentic-avs-register-as-operator.json

  • Connect your Ledger and sign the transaction when prompted


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 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.


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

You will be prompted to pass in address.

It internally calls and method on the AVS governance contract.

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

Follow the steps below to register a smart account as an Operator as per the

If the AVS is allowlist-enabled, you will also need to generate an AUTH_TOKEN. Please follow the to generate the required token.

Follow the steps below to register a smart account as an Operator as per the

If the AVS is allowlist-enabled, you will also need to generate an AUTH_TOKEN. Please follow the to generate the required token.

Navigate to the method

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

Deposit funds to the strategy
AVS Governance contract
Key Management
Operator Registration Scripts
Operator Registration Scripts
registerAsOperator
updateBlsKey
below
unregisterAsOperatorFromAvs
unregisterAsOperatorFromEigenLayer
Generate Auth Signature (Optional)
Allowlisting Instructions
Generate Auth Signature (Optional)
Allowlisting Instructions
'private key' = Controller key; 'Signing Key' = Consensus key.