So, the Graph team has prepared contracts for the painless migration of our delegations and stakes to Arbitrum. To do this, we need a few simple steps. There will be 3 sections in this guide:
Migration of a vesting contract with an unfinished lock-up period to a new vesting contract in Arbitrum.
Migration of delegation to Arbitrum.
Indexer stake migration to Arbitrum.
If you have tokens on a vesting contract with an unfinished vesting, then you need to first create a new vesting contract on the Arbitrum, as described in Part 1. If the vesting is completed, you can go straight to the migration of delegations in Part 2 or the migration of the stake (for indexers) in Part 3.
IMPORTANT! Please note that now, at the time of writing the guide, only 5% of all GRT rewards are distributed in the Arbitrum network. Unfortunately, transition tools do not provide a partial transition for delegators, unlike indexers who can only partially transfer their stake. Therefore, if you are a delegator, do not rush to do the migration, consider your benefit! Most of the inflation – 95% – is still distributed in the mainnet. Perhaps, if you have a small delegation, it makes sense for you to do the migration right now. Or wait until most of the inflation goes to the Arbitrum. You can move the vesting contract to the Arbitrum as described in Part 1, but leave the delegation to the mainnet.
For migration, we need ETH in the wallet. And also if you have GRT on a contract with an unfinished vesting period, then you should send a small amount of GRT, for example, 1 GRT to the locking contract itself in the main network.
One more important point before you start:
From the moment the transfer is initiated, if it is not successful (for example, the transaction fails), you will have 7 days to complete it. After the expiration of 7 days, your tokens will be lost forever!
Before starting, make sure you have about 0.005 ETH (with gas < 30 gwei) in your wallet to make the migration
You must have at least 1 GRT directly on your vesting contract. If it's empty, send 1 GRT there or make release() if the tokens are not delegated.
Go to Graph explorer and connect wallet.

In the drop-down menu, select our vesting contract.

Go to the Overview menu, there will be a notification about the possibility of migration. Click on the button to initialize a new vesting contract on the Arbitrum.

The first step is to ask us to revoke the approval of the old contract, we will do it.

Then we give approval to the helper contract.

Then we need to make a deposit of about 0.003 ETH to the helper contract.

After that, we're ready to start the migration process. Specify the number of unlocked tokens on your contract for migration, at least 1 GRT. Delegated tokens will be transferred in Part 2. Enter the new wallet address of the contract beneficiary if you want to change it.
Carefully check the new address of the beneficiary if you change it. After this step, you won't be able to change anything!

Once the transaction is submitted, a 20-minute timer will start. Let's wait and check that everything went well.

If the contract has been successfully created, you will see a window like this:

Now you can go to a new vesting contract on the Arbitrum in your profile, a link will appear there.

That's all, our new contract has been created and now we can manage it at the Arbitrum.
Remember that you will be able to get tokens on the Arbitrum only when the vesting period is completely over, until then you will receive them on the mainnet.
You can proceed to transfer your delegation or stake to the Arbitrum.
Go to your profile. If you have free tokens without vesting, choose your wallet, if the tokens are on a vesting contract, choose your vesting contract. Then go to the Overview.
IMPORTANT! If your indexer has migrated to Arbitrum, you will see such a notification with the possibility of migration. If not, then you need to wait for the indexer to migrate. Check with your indexer when he do.
Click Transfer Delegation.

Enter the new address of the owner if we want to change or leave the old one.

Let's deposit about 0.00125 ETH to the helper contract.

Then we initiate a transfer to the Arbtrum.
IMPORTANT! After you click Transfer Delegation, you will move your entire delegation to the Arbitrum. You will have 7 days to finish the transfer if something goes wrong. Otherwise, you will lose your tokens.

After you initiate the transfer, you will need to wait 20 minutes and make sure that everything went well.

If all goes well, you will see the following screen and you will be able to view your new delegator profile on the Arbitrum.

This concludes the transfer of the delegation to the Arbitrum.
Go to your profile. If you have free tokens without vesting, choose your wallet, if the tokens are on a vesting contract, then choose your vesting contract. Then go to the Overview menu and click the Transfer Stake button in the notification that appears about the migration status.

Next, you will need to set the beneficiary's wallet address on the Arbitrum and deposit ETH to the helper contract (~0.001 ETH).

After that, you can double-check the beneficiary's wallet address on the Arbitrum and specify the size of the stake you want to transfer (at least 100,000 GRT). Then click Transfer Stake.
IMPORTANT!* Once you click Transfer Stake, you will have 7 days to finish the transfer if something goes wrong. Otherwise, you will lose your tokens.*

A 20-minute timer will start, wait for the migration to complete.

If everything goes well, you will see the following screen and will be able to go to your profile on the Arbitrum.

That's all, thank you for your attention. I hope this guide will be useful. You can ask all questions about migration in the chat of my indexer - here
My indexer on the mainnet is here
My indexer in the Arbitrum is here
Twitter is here

