# Mainnet Migration

By [Mirror Blog](https://paragraph.com/@mirror-blog) · 2021-02-23

---

![](https://storage.googleapis.com/papyrus_images/b97ab30fdacd9277692948c0e11db37fa2b079fd25ebeb2ced2505ccc8940775.jpg)

So far we've been onboarding users through Rinkeby, while evolving our on-chain protocol. We call our onboarding model "burn-to-register", because members need 1 $WRITE token to join, and the token must be destroyed once they do so. To do this, our $WRITE token's ERC20 contract has a `register` function that burns 1 token before calling into a `registrar` contract that registers the user's ENS name. That `registrar` contract can only be accessed from the $WRITE token, and so these contracts are tightly coupled, and we have needed to take our time to make sure that they were working well and were very gas-efficient. Over the last two weeks, we finalized this system and deployed it to mainnet. Check out the code on [GitHub](https://github.com/mirror-xyz/write-token/) and the contract on [mainnet](https://etherscan.io/address/0x622236bb180256b6ae1a935dae08dc0356141632#code).

Over the next two weeks, we will migrate existing users to mainnet ENS, and start air-dropping mainnet tokens to new users. We will meticulously observe this process and ideate ways to improve.

---

*Originally published on [Mirror Blog](https://paragraph.com/@mirror-blog/mainnet-migration)*
