How To Delegate Livepeer Token Using MyCrypto and a Hardware Wallet (Ledger Nano S, Trezor, etc.)
Below is some information describing the workflow for delegating Livepeer Token (LPT) using MyCrypto and a hardware wallet such as a Ledger Nano S or Trezor. Please be aware that directly interacting with the smart contracts in the manner described in this workflow is not advised for most users due to the number of steps involved and because it is easy to make a mistake. Most users are advised to use the Livepeer Explorer to delegate their LPT and hardware wallet support will be available within the application soon which will give users the benefits of both hardware wallet transaction signing and in-application guides/user protections that would reduce the possibility of errors in the delegation process.
If you are not bonding additional LPT to be delegated, you may skip Step 1 and go directly to Step 2. If you are bonding additional LPT to be delegated, you will need to follow Step 1 in order to approve some amount of LPT to be transferred by the BondingManager contract (this is a part of the ERC20 approval workflow) before following Step 2 to delegate your LPT.
The contracts (deployed on mainnet) used in the following steps can be verified on Etherscan:
- LivepeerToken: https://etherscan.io/address/0x58b6a8a3302369daec383334672404ee733ab239#code
- BondingManager (Proxy): https://etherscan.io/address/0x511bc4556d823ae99630ae8de28b9b80df90ea2e#code
- BondingManager (Implementation Target): https://etherscan.io/address/0xDC6eE74A18994caD3876a078B6fa4920FD9C507d#code
Step 1: Approve the BondingManager To Transfer LPT
Let APPROVE_AMOUNT
be the amount of LPT that should be bonded.
- Visit https://mycrypto.com/
- IMPORTANT: Make sure that this is the correct site for MyCrypto and beware of fake sites!
- Click the “Contracts” tab
- In the “Contract Address” box, enter 0x58b6a8a3302369daec383334672404ee733ab239
- 0x58b6a8a3302369daec383334672404ee733ab239 is the address of the LivepeerToken contract on mainnet
- In the “ABI / JSON Interface” box enter the ABI from the “Contract ABI” box found at https://etherscan.io/address/0x58b6a8a3302369daec383334672404ee733ab239#code
- The ABI allows MyCrypto to display named functions that are invokable for the provided contract address
- Click “Access”
- In the “Read / Write Contract” dropdown, select the function name “approve”
- In the
_spender
box, enter 0x511bc4556d823ae99630ae8de28b9b80df90ea2e- 0x511bc4556d823ae99630ae8de28b9b80df90ea2e is the address of the BondingManager proxy contract on mainnet
- In the
_value
box, enterAPPROVE_AMOUNT
- MyCrypto will ask you the method with which you would like to access your wallet. Select your preferred method
Your screen should look something like this:
- Follow the prompts from MyCrypto to sign your transaction using your device and then submit the transaction
a. Make sure you are connected to the right Ethereum network (mainnet) using the dropdown in the top right hand corner
b. Make sure to double check that the gas limit and gas price (https://ethgasstation.info/) for the transaction are reasonable
Step 2: Delegate LPT
Let DELEGATE_ADDRESS
be the address that your bonded LPT should be delegated towards. Let BOND_AMOUNT
be the additional amount of LPT that should be bonded and then delegated toward DELEGATE_ADDRESS
. If you are not bonding any additional LPT, BOND_AMOUNT
should be 0. If you are bonding additional LPT, BOND_AMOUNT
should be at most the value of APPROVE_AMOUNT
used in Step 1.
- Visit https://mycrypto.com/
- IMPORTANT: Make sure that this is the correct site for MyCrypto and beware of fake sites!
- Click the “Contracts” tab
- In the “Contract Address” box, enter 0x511bc4556d823ae99630ae8de28b9b80df90ea2e
- 0x511bc4556d823ae99630ae8de28b9b80df90ea2e is the address of the BondingManager proxy contract on mainnet
- In the “ABI / JSON Interface” box enter the ABI from the “Contract ABI” box found at https://etherscan.io/address/0xDC6eE74A18994caD3876a078B6fa4920FD9C507d#code
- Note: The ABI used here is the ABI for the BondingManager target implementation contract and NOT the ABI for the BondingManager proxy contract which
is why the Etherscan link provided is for the address page for 0xDC6eE74A18994caD3876a078B6fa4920FD9C507d (BondingManager target implementation contract)
as opposed to the address page for 0x511bc4556d823ae99630ae8de28b9b80df90ea2e (BondingManager proxy contract) - The ABI allows MyCrypto to display named functions that are invokable for the provided contract address
- Note: The ABI used here is the ABI for the BondingManager target implementation contract and NOT the ABI for the BondingManager proxy contract which
- Click “Access”
- In the “Read / Write Contract” dropdown, select the function name “bond”
- In the
_amount
box, enterBOND_AMOUNT
- In the
_to
box, enterDELEGATE_ADDRESS
- MyCrypto will ask you the method with which you would like to access your wallet. Select your preferred method
Your screen should look something like this:
- Follow the prompts from MyCrypto to sign your transaction using your device and then submit the transaction
a. Make sure you are connected to the right Ethereum network (mainnet) using the dropdown in the top right hand corner
b. Make sure to double check that the gas limit and gas price (https://ethgasstation.info/) for the transaction are reasonable