LIP-52 proposes a snapshot mechanism allowing delegators to claim their historical earnings at greatly reduced gas prices.
The actual snapshot will be part of the LIP-52 poll. Delegators can verify the snapshot being taken for correctness if they wish to do so. This does not require access to your private keys, you just need your ethereum address.
A CLI tool will be available to check your earnings and verify the snapshot. The snapshot will be taken under the form of a merkle tree and the root of that tree will be stored on-chain, the full merkle tree will be part of the CLI tool repository as a JSON file.
Key Values
- Snapshot Round: 1903
- Snapshot Merkle Root:
0xe63426ba9d461ce57466458a84c076bb082674ab75730641e2668c83a3b30775
Verifying the Snapshot
- Prerequisites: access to an ethereum JSON-RPC provider (local geth node, infura, alchemy, …)
- Clone the merkle-earnings-cli repository (at master) and follow the installation steps in the README.
- Update the
.env
file with your Ethereum JSON-RPC provider
ETH_RPC=<your provider endpoint>
- Fetch your earnings for the snapshot round
mearnings -e <your_ethereum_address>
You can verify that the earnings displayed by the CLI are correct using Etherscan
(see below)
- Verify that your address and its earnings are part of the snapshot
mearnings -ve <your_ethereum_address>
- Optional: You can always regenerate the merkle tree from scratch if you wish by running
mearnings -g
. This will take a while and do a bunch of RPC calls. You can then rerunmearnings -ve <your_ethereum_address>
and check if the outputted local root is still the same as the on-chain root.
Cross checking your earnings on Etherscan
Etherscan provides an easy way to interact with the Livepeer contracts through a GUI.
- Optional - verifying the snapshot round.
Go to the RoundsManager contract on etherscan, pick the “Read as Proxy” option.
Go the the lipUpgradeRound
function and enter “52” as argument (where 52 represents the LIP number so the upgrade round for LIP-52). The returned value is the snapshot round.
- Verifying Earnings
Go to the BondingManager contract on etherscan , pick the “Read as Proxy” option.
Scroll down to the pendingStake
and pendingFees
functions. Enter the required function arguments for each. This will be your ethereum address and the snapshot round.
You can compare these values against what the CLI tool returns for your address at that round height.