- Starting July 26th, 2018, anyone can submit proofs to the Livepeer MerkleMine to generate Livepeer Token, until all 2,598,071 proofs have been submitted and the remaining 6,343,700 LPT have been distributed. There is no limit to the number of available proofs a single user can submit.
- The amount of LPT you will generate by submitting proofs starts small on day 1, but grows as time passes. However the available proofs may run out if you wait too long.
- Point and click tools to MerkleMine in browser are provided for those looking to get a moderate amount of token to start staking in an easy, user friendly way. For those looking to submit a large number of transactions to generate many LPT, you may need to write some custom scripts to automate the process.
Background - the end of the slow start
Upon launch of the Livepeer network on May 1st, 6.3M Livepeer Token (LPT) were encoded to be generated via the MerkleMine algorithm across all Ethereum holders who had .1 ETH in their accounts. For a quick background on the MerkleMine read here. During the first three months, there was a “slow start” period where users had to submit their own proofs, proving their membership in the eligible accounts, to generate their 2.44 LPT. However this slow start period ends, and a “claim period” begins on July 26, 2018. At this point in time anyone can submit proofs on behalf of other users, and split in their 2.44 allocation.
The LPT is split between the caller (you, who submits the transaction), and the original recipient (who you provided the proof on behalf of). In practice, this means that you could submit many proofs, for many users, to build a stake of Livepeer token in order to stake and participate on the Livepeer network.
The economics of the claim period
How much LPT do you get per proof?
The start block for the claim period is 6034099 (occurring on July 26th, 2018), and the end block is 8534099 (occurring 15 months later), for a total claim period of 2,500,000 blocks. The LPT is split between you, the caller, and the original recipient whom you provided the proof for, in proportion to how far into the claim period we are.
Early on the portion the caller gets is very small, but it grows over time. As an example, 500,000 blocks into the claim period, the caller would get 500,000 / 2,500,000 * 2.44 LPT, or 1/5th of the 2.44 LPT == 0.49 LPT. The recipient would get the rest.
Note that you can submit many proofs per transaction (potentially up to 60), so this means each transaction you submit could distribute 146 LPT split between the caller and the 60 intended recipients. Here are some example values:
|Blocks into Claim Period||Approximate Date||LPT Caller Receives Per Proof||LPT Caller Receives if Submitting 60 Proofs Per Txn|
|1000||July 26, 2018||0.000976||0.059|
|28,800||August 1, 2018||0.039||2.34|
|345,000||September 26, 2018||0.337||20|
|892,800||January 1, 2019||0.87||52|
|2,500,000||October 26, 2019||2.44||146|
Also note that if you are the caller and the recipient (submitting proofs for addresses you own), you get all 2.44 LPT so it’s much more efficient!
How much does it cost to submit proofs?
Livepeer is not selling any LPT, as there is no crowdsale, ICO, or investment opportunity. No one from Livepeer will ask you for money. However in order to submit transactions on the Ethereum network, you have to pay the gas costs required to get transactions confirmed on the blockchain, and this price varies quite a bit from hour to hour on the network in response to market conditions.
It’s estimated that the cost/proof will vary between 100,000-133,000 gas depending on how efficient your smart contract implementation is that allows you to submit multiple proofs. At 1gwei and $450 ETH, this means each proof will cost 4.5 cents. But at 10gwei it costs ten times as much.
The decision of when to submit a set of proofs to generate some LPT becomes a sort of game between how many blocks into the claim period we are, Ethereum network gas conditions, the price of ETH, and how much you value the LPT in order to stake and participate in the network as a delegator or transcoder. One can put together a spreadsheet that shows how much it might cost/LPT under certain gas conditions and Ethereum price characteristics, and here’s an example:
There are only 2.59M proofs available however, and when they’re gone the MerkleMine is done. So even though waiting longer yields more LPT/call and more efficient gas usage, the tokens may be fully distributed by the time you get around to it. So monitor progress accordingly.
How do I submit proofs to generate LPT?
Anyone can currently claim their own LPT at explorer.livepeer.org/token, and on 7/26 this will be updated to allow you to submit multiple proofs in one transaction. You can do this as many times as you like, as often as you like.
But for those looking to build up larger stakes of LPT for participation, in order to submit 100’s or 1000’s of transactions, pointing and clicking won’t cut it - some custom scripting will be helpful. Here’re some suggested steps for how you may want to go about scripting this process:
- The building blocks are all already available in the https://github.com/livepeer/merkle-mine repository. The code there has functions to download the eligible addresses, construct proofs, and submit them to the blockchain one by one.
- There is also a smart contract under development to submit multiple proofs at once, instead of just one at a time. https://github.com/livepeer/merkle-mine/pull/15
- Consider the following enhancements to the existing scripts:
- Save the eligible accounts list to a local file or database to keep track of which ones have already been mined.
- Write an event watcher loop that watches for mined accounts on the blockchain, and updates this db to indicate when new ones are mined.
- Add a function that produces N unmined addresses from your local DB.
- Add a function that generates the proofs for each of these addresses and then submits them all in one transaction, instead of one at a time. (building blocks already in place to generate proofs in the existing repo, just loop over this).
- Consider a command line option that lets you specify the gas price you’re willing to pay, and the script only submits the transactions when a gas price oracle tells you that the recommended price is below this value.
- Consider a command line option that lets you configure how much ETH/LPT you’d like to pay and how much ETH you’d like to deploy, and let this script run in the background taking advantage of network conditions to deploy this ETH when conditions are favorable at lowest possible cost.
If all of this sounds too complex and beyond your custom scripting abilities, have no fear. If you simply would like to deploy ETH for LPT in order to participate in the network, then there should be other MerkleMiners out there who would be happy to fulfill your orders if network conditions are favorable.
What happens when the claim period ends?
The claim period ends in approximately 15 months, at which point all the LPT goes to the caller and none to the recipient - essentially anyone can pick up the unclaimed LPT. However it’s far more likely that all 2.59M proofs will be submitted far in advance of this deadline, at which point all the initial 10M genesis LPT will be generated and the MerkleMine ends.
Remember the MerkleMine is purely an initial distribution - in a stake based network, one needs token in order to participate, so this mechanism was designed to ensure that all ETH holders (with at least 0.1 ETH) have access at some point in the future to try to begin participating. But at the same time it allows those looking to take an active role to generate more LPT and get going in the network. The Livepeer network continuously issues new LPT to those who are staking their token to delegate or transcode, so over time the majority of token in the network is owned by those who are participating, and not those who passively receive LPT in the MerkleMine.
Head on over to the explorer to stake your token and delegate.