Use Smart Account
Overview
The Othentic Stack supports using Ethereum Smart Accounts as Operators.
EIP-1271 is a standard that enables smart contract wallets to verify signatures, addressing the limitations of traditional signature verification methods designed primarily for Externally Owned Accounts (EOAs).
In this setup:
The Controller Key is a smart contract wallet compliant with EIP-1271 - i.e Safe.
The Consensus Key is a raw private key.
Register to EigenLayer and AVS
Prerequisites
EIP-1271 compatible Smart Account (e.g Safe)
Private key of one of the allowed signers for the Smart Account
Sufficient gas funds on Ethereum mainnet
AVS Governance contract address you want to register with
A rewards receiver address (can be a smart contract or EOA)
A raw Consensus key
An Ethereum mainnet RPC endpoint
Follow the steps below:
Set up Operator registration scripts
Clone the Operator registration scripts repository:
# Clone the repo
git clone https://github.com/Othentic-Labs/operator-registration-script.git
cd othentic-operator-scripts
# Install dependencies
npm install
Generate BLS Signature
Use your Consensus Key to generate the required BLS signature that will be used during registration:
ts-node scripts/genAvsRegisterBlsSignature.ts \
<BLS_PRIVATE_KEY> \ # Consensus Key
<AVS_GOVERNANCE_ADDRESS> \ # Contract address
<SMART_WALLET_ADDRESS> \ # Smart account contract address
<RPC> # Ethereum mainnet RPC endpoint
Output will be stored in .othentic/othentic-avs-register-as-operator.json
Generate Auth Signature (Optional)
If the AVS is allowlist-enabled, you will also need to generate an AUTH_TOKEN
.
Run the below script to generate the required token.
ts-node scripts/allowlist/generateSignature.ts \
<PRIVATE_KEY> \ # Smart account signer private key
<WALLET_ADDRESS> \ # Smart account contract address
<AVS_GOVERNANCE_ADDRESS> # Contract address
Output will be stored in .othentic/othentic-allowlist-request-signature.json
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> \ # Private key of 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 generated in Step 2
<RPC> # Ethereum mainnet RPC endpoint
💡 Note:
The ECDSA_PRIVATE_KEY parameter can belong to any one of the Safe owners. This is used only to sign and prepare the transaction payload; the actual execution will still require quorum signatures from the Safe UI.
Output will be stored in .othentic/othentic-evm-transaction-data.json
.
Navigate to Safe Transaction Builder
Navigate to the official Safe UI, connect your signer wallet, access your Safe, then go to Apps -> Transaction Builder.

Deposit Stake
Connect your Smart Account to Etherscan
Use WalletConnect to connect your Smart Account to Etherscan through the official Safe UI.
Follow the manual deposit guide
After submitting the transaction, confirm the transaction using the required Safe owner signatures.
Last updated