The Address Binding Smart Contract

For the sake of security and transparency, we obsoleted a centralized database for saving address binding information and switched to a smart contract on Ethereum mainnet called LRxAirdropAddressBinding. This smart contract has been deployed at 0xbf78b6e180ba2d1404c92fc546cbc9233f616c42 and its code has been verified.

How to Bind Addresses?

Binding addresses using this smart contract is fairly easy. There are several steps:

1. Access the smart contract

Go to MyEtherWallet or MyCrptco, click the “Contract” tab. Then in the “Contract Address” input box, put:

0xbf78b6e180ba2d1404c92fc546cbc9233f616c42

Then in the “ABI / JSON Interface” input area, paste the following:

[{"constant":false,"inputs":[{"name":"projectId","type":"uint8"}],"name":"unbind","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"projectId","type":"uint8"}],"name":"getBindingAddress","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"projectNameMap","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint8"},{"name":"name","type":"string"}],"name":"setProjectName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"projectId","type":"uint8"},{"name":"targetAddr","type":"string"}],"name":"bind","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint8"}],"name":"bindings","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"projectId","type":"uint8"},{"indexed":false,"name":"targetAddr","type":"string"}],"name":"AddressesBound","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"projectId","type":"uint8"}],"name":"AddressesUnbound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Then click the “Access” button.

You’ll now see a drop-down menu, choose the “bind” method. The bind method will bind one address of a target blockchain to your current Ethereum address. To bind a NEO address, use “1” as “projectId”; to bind a Qtum address, use “2” as “projectId”; other values are reserved for future target blockchains. “0” and negative values are invalid.

Then put your NEO or Qtum address into the “targetAddr” field.

Be warned: the smart contract does not validate your target address at all. If your address is a bad address, the binding can still succeed, but you’ll not receive your LRN or LRQ tokens or those tokens will be permanently lost. You need to double check that your target address is valid.

2. Unlock your wallet

You can unlock your wallet using MetaMask, Ledger, TREZOR, etc. MyEtherWallet provides a lot of options.

3. Send the transaction

After your wallet is unlocked, click on the “Write” button, you will see a dialog popping up. Click “Generate Transaction” to execute the bind method on the blockchain.

Follow the link that MyEtherWallet provides you, and wait until your transaction gets mined into a block.

How to Check My Binding Result

Now visit https://etherscan.io/address/0xbf78b6e180ba2d1404c92fc546cbc9233f616c42#readContract. There is a method called “getBindingAddress” that requires two arguments. The first argument is your Ethereum address, the second one is the project id. To check your NEO address binding, use “1”; to check your Qtum address binding, use “2”. Click the “Query” button. You will see your target addresses bound.

A Much Simpler Way

In Loopr2, our new Loopring wallet to be deployed in April, we will provide a much simpler way of binding addresses for LRN and LRQ airdrops. You DO NOT have to go through the above steps at all.

FAQ

1. Do I have to bind all my ETH addresses?

You need to bind target addresses for all your Ethereum addresses that hold LRC, or you can move all LRC into one Ethereum address and bind target addresses only for that single Ethereum address.

2. When should I do this?

As soon as possible, just in case you forget or missed our snapshot announcement. But you do not have to rush, the very first airdrop wont’ happen before May 15th 2018.

3. Can I change the binding?

Yes, you can re-bind target addresses anytime you want, for as many times as you want.

4. Can I bind the same NEO/Qtum address to more than one Ethereum address?

Yes, you can.

5. What happens if my NEO/Qtum address is invalid?

We don’t check the validity of the target address. If your target addresses are invalid, we will NOT airdrop LRN/LRQ to you, even if you re-bind to valid addresses after the airdrop.

6. Should long-term and mid-term incentivization plan participants go thought the same address binding process? Do they need to do anything extra?