๐ŸŽŸ๏ธRegistration

A guide to registering as an operator.

The registration process requires two sets of private keys: an ECDSA private key and a BLS private key. We recommend creating a new BLS pair for security reasons. Please generate one that will be dedicated to eOracle operations.

./run.sh generate-bls-key

Encrypt your private keys. The encrypted private keys will be stored using the EO_KEYSTORE_PATH field. This is the recommended approach. If you encrypt a pasted private key it will never be saved as is anywhere.

./run.sh encrypt <your ecdsa private key> <your bls private key>

Work with plain text private keys (discouraged)

If you don't want to encrypt your private keys, update them in the data-validator/.env file. As this approach is highly discouraged, we recommend encrypting the private keys and never saving them anywhere on any machine.

EO_BLS_PRIVATE_KEY=<your ecdsa private key>
EO_ECDSA_PRIVATE_KEY=<your bls private key>

Register with eOracle AVS

Operators need to have a minimum of 32 ETH delegated to them to opt-in to eOracle. Execute the following command:

./run.sh register

The output should look like:

{"level":"info","ts":1712853423.629971,"caller":"logging/zap_logger.go:49","msg":"succesfully registered to eoracle AVS","address":"<your_address>","tx hash":"<your_tx_hash>"}

Troubleshooting the register command

salt already spent - if you get the following error:

Failed to create RegisterOperator transaction execution reverted: AVSDirectory.registerOperatorToAVS: salt already spent

Please add EO_SALT=<salt_in_hex> field to your .env file and retry running the register command.

(*) the EO_SALT should be in the following format EO_SALT=0x04 (even length hex number, and could be any number but must be even length)

Generating an alias ECDSA address

Operators must declare another ECDSA address to use within the eOracle client. This isolates the Ethereum EigenLayer operator private key from eOracle operations, protecting access to Ethereum assets. You can import a private key or generate a new private key. To import, add --ecdsa-private-key <value> to the following command.

./run.sh generate-alias
โฏ ls -la /path/to/keystore.keystore
-rw-r--r--@ 1 <usr>  staff  554 Apr 11 20:18 blsEncryptedWallet.json
-rw-r--r--  1 <usr>  staff  491 Apr 12 00:06 ecdsaAliasedEncryptedWallet.json
-rw-r--r--@ 1 <usr>  staff  491 Apr 11 20:18 ecdsaEncryptedWallet.json

Declaring an alias for the EO-chain

After generating the ECDSA alias address to use in EO-chain, declare it using your Ethereum EigenLayer identity, verifying the link between the two.

./run.sh declare-alias

The output should look like:

succesfully declared an alias in the eochain
docker-entrypoint-oprcli.sh: Starting oprcli declare-alias 
{"level":"info","ts":1712824061.311895,"caller":"logging/zap_logger.go:49","msg":"succesfully declared an alias in the eochain","eochain address":"0x...", "eochain address", "0x...", "tx hash", "0x..."}

Checking the status of eOracle operator AVS

The following command will print the status of the operator:

./run.sh print-status

The output should look like:

docker-entrypoint-oprcli.sh: Starting oprcli print-status 
{"level":"info","ts":1712824061.311895,"caller":"logging/zap_logger.go:49","msg":"Operator Status","status":"REGISTERED"}
{"level":"info","ts":1712824061.3466434,"caller":"logging/zap_logger.go:49","msg":"Operator stake update","stake":"<your_stake>","block number":1253026}

Deregister from eOracle AVS

The following command will unregister and opt you out of the eOracle AVS:

cd Eoracle-operator-setup
./run.sh deregister

The output should look like:

Deregistering operator with address <your address> 
Deregistered Operator with Coordinator at address 0xd8eA2939cE17316b7CA2F86b121EB9c7c94c39c0 with tx hash 0x0c3016d0560c717f730a2b32446af242d66b83937cc015a02f0536fa41da1988

Last updated