REP to REPv2 Migration Guide

a year ago

5 min read

With the launch of Augur v2 users can now migrate REP to the new REPv2 token to participate in the reporting and dispute system within Augur v2. While not immediately required, it is encouraged to do so as all REP and REPv2 would have to participate in a network wide market fork on Augur v2 if one was to ever occur, else be forever unable to migrate to future universes and versions of Augur. You can read more about this process called 'Use It or Lose It' here.

There are three accessible methods for migrating REP to REPv2:

  • via the Augur application itself with the provided migration button.
  • via interacting with the REPv2 contract directly on Etherscan.
  • via the automatic migration script published on Augur's Github.

Users are best suited with the first option, using the Augur application itself, however exchanges and other custodians may prefer to utilize the the second or third methods depending on their storage and custody setups. In this post we outline and detail and step by step walkthrough for each option.

REP Contract: 0x1985365e9f78359a9B6AD760e32412f4a445E862

REPv2 Contract: 0x221657776846890989a759ba2973e427dff5c9bb

Migrating via Augur:


1. Begin by navigating to augur.net. Select the "Start Trading Now" button to continue.

2. Continue through the redirect disclaimer and select the "Start Reporting/Trading" button to be sent to the Augur application on IPFS.

3. Once you have loaded the Augur application, click "Connect" in the upper right hand corner to connect your wallet.

4. There are a few options for connecting a wallet to Augur:

MetaMask: Best for if you already have an existing wallet, or if you have a hardware wallet. If you have a Trezor or Ledger you can connect through MetaMask and migrate without having your REP leave your hardware wallet.

Portis, Torus, Fortmatic: Best for if you do not have an active existing wallet and need to send your REP out of an exchange, custodian service or cold storage.

In any wallet choice, the REP you wish to migrate must be in that active wallet along with a small amount of Ether to pay for the transaction cost of performing the migration.

5. Once you've connected your account the "Migrate REP to REPv2" button will appear in your top menu bar if you have REP in your active and connected account. Select this to continue with the migration process.

6. The migration popup will appear with the amount of REP you have in your current wallet and display the transaction fee for proceeding with the migration. When you are ready, select "Migrate".

7. There are two transactions you will need to perform, the first is an approval transaction allowing the Augur contracts to transact with your REP, and the second is the actual migration transaction. Select continue for both of these to proceed with migrating your wallets balance of REP to REPv2.

8. Once both of the transactions have been confirmed, you will be directed back to Augur's homepage. From there, select your accounts menu in the upper right hand corner and a drop down will appear showing all of your wallets balances, including your new REPv2!

That's it - you have now successfully migrated your REP to the new REPv2 token and can participate in the Augur v2 reporting system!

Migrating via Etherscan:


1. If you wish to migrate via Etherscan and interacting with the contract directly, begin by navigating to the REP tokens "Write as Proxy" tab on the REP contract. You must connect to a Web3 instance, such as MetaMask. You can connect a hardware wallet such as Trezor or Ledger to your MetaMask extension, and thus interact without REP leaving your hardware wallet. Proceed by connecting your Web3 instance.

2. You now need to set an approval for the new REPv2 token contract.

First, enter the new REPv2 token address in the _spender field, 0x221657776846890989a759BA2973e427DfF5C9bB.

Second, enter however much REP you wish to migrate to REPv2 in the _value field. The unit required is in attoREP (ex: 'wei' or 10^18). If you do not wish to do the conversion, you can simply enter 1000000000000000000000000 to set the maximum approval amount for the REP token.

One ready, select write and confirm the approval transaction.

3. Next, navigate to the "Write Contract" tab on the REPv2 token contract. This begins the same way as last step, connect your Web3 provider and prepare your wallet.

Then, proceed to function five, migrateFromLegacyReputationToken, and select "Write" - this will migrate the full balance of REP in your connected account to REPv2.

When the transaction is complete, your wallets REP balance will be zero and you will have an equal amount of REPv2 on the new token contract. That's it, you're all done!

Migrating via Automated Script:


This process is not recommended for a normal user or REP holder, and only commonly used by exchanges or other custodians with proper engineering teams and security protocols that have the relevant experience and knowledge.

1. Navigate and clone the V2Migration script from the Augur Github repo.

Requirements for this process entail:

(a) Python 3.6+ installed.
(b) HTTP Ethereum endpoint that can receive requests (--rpcvhosts=* if local).
(c) Private key of Ethereum account stored as environment variable.

2. Proceed with running the setup and automatic migration script.

Steps for running the script:

git clone git@github.com:augurproject/V2Migration.git

cd V2Migration

virtualenv venv

. venv/bin/activate

pip install -e .

ETHEREUM_HTTP=[YOUR_ETHEREUM_HTTP_ENDPOINT] ETHEREUM_PRIVATE_KEY=[YOUR_PRIVATE_KEY] migrate

If you do not have a local Ethereum node running, you must specify one with the environment variable ETHEREUM_HTTP. The script will wait for confirmation of the action it will take before signing and sending any transactions. When complete, your REP balance will be zero and you will have an equal amount of REPv2 in the accounts balance.

Questions / Help / Feedback:


For users: Please join the Augur community Discord and ask in the #help channel.

For exchanges and custodians: Please email migrate@augur.net for direct technical guidance or answering of questions.