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.shgenerate-bls-key
2
Encrypt your private keys
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.
Operators need to have a minimum of 32 ETH delegated to them to opt-in to eOracle. Execute the following command:
./run.shregister
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>"}
4
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.
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.shdeclare-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..."}
Advance Settings and Troubleshooting
The following sections explain how to review status of the operator, troubleshoot registration issues or how to work with plain text private key (discourage)
Checking the status of eOracle operator AVS
The following command will print the status of the operator:
./run.shprint-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 s
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
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)
Deregister from eOracle AVS
The following command will unregister and opt you out of the eOracle AVS:
cdEoracle-operator-setup./run.shderegister
The output should look like:
Deregistering operator with address <your address>
Deregistered Operator with Coordinator at address 0xd8eA2939cE17316b7CA2F86b121EB9c7c94c39c0 with tx hash 0x0c3016d0560c717f730a2b32446af242d66b83937cc015a02f0536fa41da1988
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.