|
| 1 | +--- |
| 2 | +sidebar_position: 2 |
| 3 | +title: Install and Register Operators using Fireblocks |
| 4 | +--- |
| 5 | + |
| 6 | +The steps below specify how to onboard to EigenLayer and connect to an AVS when using [Fireblocks](https://www.fireblocks.com/). |
| 7 | + |
| 8 | +## 1. Install the EigenLayer CLI |
| 9 | + |
| 10 | +Follow the steps in [Node Operator Checklist](operator-installation.md#node-operator-checklist) and [CLI Installation](operator-installation.md#cli-installation). |
| 11 | + |
| 12 | +## 2. Create Firebocks Key |
| 13 | + |
| 14 | +In your Fireblocks console, create a ETH-type key to be your Operator address. |
| 15 | + |
| 16 | +## 3. Fund the Operator Account |
| 17 | + |
| 18 | +In Fireblocks, retrieve the deposit address of your Operator key. The deposit address is the ECDSA public key of your Operator. |
| 19 | + |
| 20 | +Fund the Operator account: |
| 21 | + |
| 22 | +• On the Sepolia testnet: [Use a faucet](../../../restakers/restaking-guides/testnet/obtaining-testnet-eth-and-liquid-staking-tokens-lsts.md#obtain-sepolia-eth-sepeth-via-a-faucet). |
| 23 | + |
| 24 | +• On Mainnet: Maintain at least 1 ETH in your Operator account. |
| 25 | + |
| 26 | +## 4. Create Operator Configuration |
| 27 | + |
| 28 | +Run: |
| 29 | + |
| 30 | +``` |
| 31 | +eigenlayer operator config create |
| 32 | +``` |
| 33 | + |
| 34 | +A prompt is displayed. |
| 35 | + |
| 36 | +``` |
| 37 | +Would you like to populate the operator config file? |
| 38 | +``` |
| 39 | + |
| 40 | +Select No. |
| 41 | + |
| 42 | +## 5. Populate metadata.json |
| 43 | + |
| 44 | +Open the generated `metadata.json` file. Populate as specified in [Operator Configuration and Registration](operator-installation.md#operator-configuration-and-registration). |
| 45 | + |
| 46 | +Host the `metadata.json` file at a publicly accessible URL (for example, GitHub pages, S3, or IPFS). |
| 47 | + |
| 48 | +## 6. Populate operator.yaml |
| 49 | + |
| 50 | +Open the generated `operator.yaml` file. |
| 51 | + |
| 52 | +### Operator Section |
| 53 | + |
| 54 | +In the `Operator` section, specify: |
| 55 | + |
| 56 | +``` |
| 57 | +Operator: |
| 58 | + address: "<your-operator-address>" |
| 59 | + delegation_approver_address: "<your-delegation-approver>" |
| 60 | + metadata_url: "<link-to-your-metadata.json>" |
| 61 | + allocation_delay: <integer-blocks> |
| 62 | + el_delegation_manager_address: "<DelegationManager-proxy>" |
| 63 | + eth_rpc_url: "<Ethereum-RPC-URL>" |
| 64 | + chain_id: <chain-id> |
| 65 | + signer_type: "fireblocks" |
| 66 | +``` |
| 67 | + |
| 68 | +:::important |
| 69 | +The allocation delay specifies how many blocks must pass before any allocations become live in an Operator Set. |
| 70 | +For example, if the allocation dalay is set to 1200, and a Staker allocates funds to your Operator, the funds do no not |
| 71 | +become live before the 1200 block delay. The allocation delay applies globally across all Operator Sets and Strategies |
| 72 | +and can be any unsigned integer. Any change to the allocation delay has a 17.5 day delay before taking effect. See the [Safety Delays reference](../../../reference/safety-delays-reference.md) for |
| 73 | +more information. |
| 74 | +::: |
| 75 | + |
| 76 | +#### EL Delegation Manager Address |
| 77 | + |
| 78 | +You must configure the correct `DelegationManager` contract address for your environment. The Proxy addresses for |
| 79 | +`DelegationManager` for your environment (Mainnet, Sepolia, Hoodi, Holesky) are listed in the [GitHub repository](https://github.com/Layr-Labs/eigenlayer-contracts?tab=readme-ov-file#deployments). |
| 80 | + |
| 81 | +Set the value for `el_delegation_manager_address` in your `operator.yaml` file to the appropriate address. |
| 82 | + |
| 83 | +### Fireblocks Section |
| 84 | + |
| 85 | +In the `fireblocks` section, specify: |
| 86 | + |
| 87 | +``` |
| 88 | +fireblocks: |
| 89 | + api_key: "<your-fireblocks-api-key>" |
| 90 | + secret_key: "<your-fireblocks-secret>" # Fireblocks secret key. If you are using AWS Secret Manager, this should be the secret name. |
| 91 | + base_url: "<your-fireblocks-api-base-url>" |
| 92 | + vault_account_name: "<your-vault-account-name>" |
| 93 | + secret_storage_type: "plaintext" # or "aws_secret_manager" if you are using AWS Secrets Manager |
| 94 | + aws_region: "<your-aws-secret-manager-region>" # if using AWS Secret Manager, leave blank if plaintext |
| 95 | + timeout: <integer-seconds> |
| 96 | +``` |
| 97 | + |
| 98 | +## 7. Register your Operator for EigenLayer |
| 99 | + |
| 100 | +Run: |
| 101 | + |
| 102 | +``` |
| 103 | +eigenlayer operator register operator.yaml |
| 104 | +``` |
0 commit comments