Node Operator Manual
Step-by-step guide for Node Operators
- 1.Provide Tranchess team with a
name
for display, and an addressoperatorOwner
for operator registration. Note thatoperatorOwner
holds the admin role for most properties of a registered node operator. Please properly secure the access. We recommend leveraging hardware wallets like Ledger to keep its private key. - 2.Wait for the Tranchess team to register you in the smart contract. Once registered, you are assigned with a unique
id
,withdrawalCredential
andwithdrawalAddress
id
is your node operator ID, which could help you look up all relevant data on profile through theNodeOperatorRegistry
contract deployed at https://etherscan.io/address/0xE926F01953c3B94222FcAC7474b31e3F8eAfb308withdrawalCredential
is required for generating thesignature
in Step 3withdrawalAddress
is required for configuring beacon chain validators in Step 5
- 3.Generate
pubkey
andsignature
for a few validators- Use 32 ETH as the deposit amount
- Use the
withdrawalCredential
in the previous step - 10 validators are enough to start
- All validators’
pubkey
andsignature
can be found in the generated deposit data JSON file
- 4.Navigate to Tranchess Operator Portal. Drag and drop the generated deposit data JSON file to the right column. The tool is designed to conduct several sanity checks such as key lengths and duplicates. If all looks good, click the “Add Keys” button to initiate the
addKeys
transaction. (You can also manually assemble the transaction. Please refer to the specific operation in the "Alternative Step 4" section below.)
Alternative Step 4Packpubkey
andsignature
into bytes arrays and submit them to the registry contract using theaddKeys
method:
1.Navigate to the “Write Contract” tab: https://etherscan.io/address/0xE926F01953c3B94222FcAC7474b31e3F8eAfb308#writeContract 2.Click ”Connect to Web3” and connect your operator owner address 3.Expand the first functionaddKeys
and fill in the parameters as follows
1.id
: Node operator ID 2.pubkeys
: Concatenate all pubkeys and add a “0x” prefix 3.signatures
: Concatenate all signatures and add a “0x” prefix 4.Optionally, you could send the encodedpubkeys
andsignatures
to Tranchess team in advance so that we could verify the submission before you sign any transaction 5.Click the “Write” button and sign the transactionfunction addKeys(uint256 id, bytes calldata pubkeys, bytes calldata signatures)
5. Configure the execution layer fee recipient of the validators to
withdrawalAddress
(see your validator’s doc for more info about fee recipient, e.g. Prysm Doc and Lighthouse Doc). Make sure that the validator node has already gone live, since the validator key assignments could happen any minute following Step 6.6. As the
operatorOwner
, you could now lift up the depositLimit:
- 1.Navigate to the “Write Contract” tab: https://etherscan.io/address/0xE926F01953c3B94222FcAC7474b31e3F8eAfb308#writeContract
- 2.Click ”Connect to Web3” and connect your operator owner address (if you haven’t done so)
- 3.Expand the 7th function
updateDepositLimit
:- 1.
id
: Node operator ID - 2.
newDepositLimit
: The new maximal number of active validators assigned. We recommend it to be the current total number of validator keys, but it could go beyond the current total validator keys.
- 4.Click the “Write” button and sign the transaction
function updateDepositLimit(uint256 id, uint64 newDepositLimit)
7. Optionally, you could also update the
rewardAddress
, which will receive operator fee in the future. By default, it is the same as operatorOwner
.function updateRewardAddress(uint256 id, address newRewardAddress)
In rare occasions when signature verification failed for newly added keys or when withdrawal credentials got an update, the Tranchess team will send out a notification for the corresponding operator to truncate all used keys
- 1.Coordinate with Tranchess team to find out the keys that will be removed;
- 2.Invoke
truncateUnusedKeys
to truncate all unused keys.
function truncateUnusedKeys(uint256 id) external
Last modified 4mo ago