How To Delegate LPT Using MyCrypto and a Hardware Wallet (Ledger Nano S, Trezor, etc.)


#1

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:

Step 1: Approve the BondingManager To Transfer LPT

Let APPROVE_AMOUNT be the amount of LPT that should be bonded.

  1. Visit https://mycrypto.com/
    1. IMPORTANT: Make sure that this is the correct site for MyCrypto and beware of fake sites!
  2. Click the “Contracts” tab
  3. In the “Contract Address” box, enter 0x58b6a8a3302369daec383334672404ee733ab239
    1. 0x58b6a8a3302369daec383334672404ee733ab239 is the address of the LivepeerToken contract on mainnet
  4. In the “ABI / JSON Interface” box enter the ABI from the “Contract ABI” box found at https://etherscan.io/address/0x58b6a8a3302369daec383334672404ee733ab239#code
    1. The ABI allows MyCrypto to display named functions that are invokable for the provided contract address
  5. Click “Access”
  6. In the “Read / Write Contract” dropdown, select the function name “approve”
  7. In the _spender box, enter 0x511bc4556d823ae99630ae8de28b9b80df90ea2e
    1. 0x511bc4556d823ae99630ae8de28b9b80df90ea2e is the address of the BondingManager proxy contract on mainnet
  8. In the _value box, enter APPROVE_AMOUNT
  9. 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:

  1. 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.

  1. Visit https://mycrypto.com/
    1. IMPORTANT: Make sure that this is the correct site for MyCrypto and beware of fake sites!
  2. Click the “Contracts” tab
  3. In the “Contract Address” box, enter 0x511bc4556d823ae99630ae8de28b9b80df90ea2e
    1. 0x511bc4556d823ae99630ae8de28b9b80df90ea2e is the address of the BondingManager proxy contract on mainnet
  4. In the “ABI / JSON Interface” box enter the ABI from the “Contract ABI” box found at https://etherscan.io/address/0x5a9512826eaaf1fe4190f89443314e95a515fe24#code
    1. 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 0x5A9512826EAAF1FE4190f89443314E95A515fE24 (BondingManager target implementation contract)
      as opposed to the address page for 0x511bc4556d823ae99630ae8de28b9b80df90ea2e (BondingManager proxy contract)
    2. The ABI allows MyCrypto to display named functions that are invokable for the provided contract address
  5. Click “Access”
  6. In the “Read / Write Contract” dropdown, select the function name “bond”
  7. In the _amount box, enter BOND_AMOUNT
  8. In the _to box, enter DELEGATE_ADDRESS
  9. 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:

  1. 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

#2

Great post @yondon - is there also a way to explain to users how to MerkleMine their 2.44 LPT using a Ledger or a Trezor?


#3

Yep see How to generate Livepeer Token using MyCrypto, MyEtherwallet (Ledger, Trezor support)