All Posts By

Jaro Satkevic

MYST token migration guide

Migrating a token is simply to upgrade the smart contract of that token. In the case of Mysterium, we are upgrading legacy MYST (pure ERC20) to new MYST (ERC20 with `permit`: 712-signed token approvals).

This is a 1:1 token migration so there will be no new tokens created.

How will MYST token migration work? 

From 31st of August, MYST token holders will be able to start migrating their tokens into the new token standard. This will become the standard MYST token used within Mysterium Network’s payment system. All exchanges are informed and are preparing for the upgrade on their end. If you are holding MYST on HitBTC exchange, the migration will be done automatically and you will not need to do anything. 

If you are storing your MYST tokens outside the exchanges, you will have to conduct the migration yourself. In essence, you will need to initiate a transaction from your wallet address which holds MYST tokens into our current token smart contract address and call an upgrade function upgrade(uint256 value) there.

Note:

  • While there will be no time limit for migrating tokens, please be aware that only the new token standard will be used in the Mysterium Network payment system and actively traded on exchanges. However, you will not lose your original MYST tokens if you do not migrate within a specific deadline. This means you can perform your token migration at a convenient time to you. Your wallets which are supporting ERC20 tokens will work fine with the upgraded MYST token as well. 
  • During the upgrade transaction, legacy MYST tokens will be burned and new MYST will be created and sent to the same address.
  • You can do migration in parts, so no worry if after migration someone sends you legacy MYST tokens. You will be able to migrate them as well.
  • The MYST migration process has no time limit. If anyone in the future sends you legacy MYST, you will be able to migrate them at any point in time.

Do I need to have ETH on the address where my MYST tokens are in order to migrate them successfully?

You need a small amount of ETH on the same address where your MYST tokens are in order to pay for gas fees on the Ethereum network. Due to high transaction fees on Ethereum blockchain, we recommend having at least 5 USD of ETH there and set at least 90.000 gas limit. You can check average gas fees before starting the migration here.

Token migration steps

Where should I store my MYST tokens and how do I manually migrate them?

The token migration process includes several options – MetaMask, Etherscan or MyEtherWallet (MEW). Through MyEtherWallet you can use:

  • Ledger (also possible to use with MetaMask and Etherscan)
  • Trezor (also possible to use with MetaMask and Etherscan)
  • Digital Bitbox
  • Secalot
  • Keystore / JSON File
  • Mnemonic phrase / seed
  • Private key

Token Migration using My Ether Wallet (MEW)

If your MYST tokens are stored in one of the above forms, please select MEW when you reach the step where you need to select the wallet that stores your MYST tokens. Once you have synchronised your wallet with MEW, you can start now with the token migration process:

  1. Go to the home page of https://myetherwallet.com
  2. Click on “Send > Send Transaction”
  3. Select ETH as a type of token to send and enter the 0 as amount
  4. Enter the address of the legacy MYST token smart contract:  0xa645264C5603E96c3b0B078cdab68733794B0A71
  5. Enable “Data & Gas Limit” under Advanced options. Set at least 90.000 gas limit.
  6. Add your payload data (use payload generation tool)

  7. Click on “Send Transaction”.
  8. You new tokens will be visible on new MYST smart contract address: 0x4Cf89ca06ad997bC732Dc876ed2A7F26a9E7f361

 

Token Migration using Etherscan

You are also able to migrate your tokens via Etherscan and interact with the contract directly.

  1. Go to the token contract page directly https://etherscan.io/address/0xa645264C5603E96c3b0B078cdab68733794B0A71
  2. Navigate to the “Write Contract” tab on the Contract page.
  3. Connect to a Web3 provider, such as MetaMask, Fortmatic or Portis. You can connect a hardware wallet such as Trezor or Ledger to your MetaMask extension, and thus interact without MYST leaving your hardware wallet.
  4. Find upgrade function in the list and type in the amount of tokens you’d like to migrate. NOTE: legacy MYST token had 8 zeros, so to migrate 123,05 MYST, you should type: 12305000000.
  5. Metamask will show popup, adjust gas fee and make a transaction. After the transaction is mined, your new tokens will be visible on the new MYST smart contract address: 0x4Cf89ca06ad997bC732Dc876ed2A7F26a9E7f361

Building on the bleeding edge

As the Head of Product of Mysterium Network, I am charged with everything from driving micropayments research to delivery of working applications on Android, Windows and Mac.

A regular VPN application is hard enough, but it’s even more challenging when we are seeking to decentralize the infrastructure through which the service is provided. Let’s add peer to peer and blockchain payments into the mix of network security, and you’re bound to have multiple shifting pieces that you’re building upon.

Here’s an update from me as Mysterium Network transitions into Mainnet. 

I first want to quickly reiterate the goal of the MYST token migration.

We were looking to implement an easy way for consumers to top up their dVPN app accounts using ETH and for node runners to withdraw earned MYST into ETH (and maybe even DAI) automagically using a decentralized exchange. We wanted this to happen in a single transaction, so users would have the best possible experience.

ERC777 based token and their callback hooks looked like a good solution for our needs. That’s why we announced the migration of MYST into an ERC777 based token.

Mysterium Network will transition to updated ERC20 token with `permit`: 712-signed token approvals (ERC2612) at the end of August. 

Part of our process gearing up for real payments on Ethereum blockchain included the submission of two versions of our token to our security auditors (both ERC777 and ERC20 +ERC2612 versions). 

Based on feedback from auditors, and our deeper research into current DeFi projects, we are making the decision to par back the scope of our token migration for the moment. 

This is due to several factors. The ERC 777 token standard is a new technology. It was peer-reviewed for two years and finally marked as final on 7 May 2019. The token is extremely advanced and powerful. However, its use in DeFI projects can be dangerous because of some specific vectors of attacks. Even though more popular projects (e.g. Uniswap v2 or Kyber network) are taking steps to be protected against these types of attacks, there are some who may not take such precautions.

In saying that we have found an alternative and less risky solution for achieving all required peer to peer payment system functionality. 

This will involve an upgrade to the ERC20 token with the extension of `permit`: 712-signed token approvals (ERC2612).

What is the ERC2612 standard, and how does it help Mysterium Network? 

ERC2612 is standardising `permit` function which was introduced in DAI token and is now popularised by the Uniswap team.  

So first things first, for the geeks amongst us. If you’re not a developer, feel free to skip past this section. 

What is the permit functionality?

   function permit(address holder, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
       require(deadline >= block.timestamp, 'MYST: Permit expired');
       bytes32 digest = keccak256(
           abi.encodePacked(
               '\x19\x01',
               DOMAIN_SEPARATOR,
               keccak256(abi.encode(PERMIT_TYPEHASH, holder, spender, value, nonces[holder]++, deadline))
           )
       );
       address recoveredAddress = ecrecover(digest, v, r, s);
       require(recoveredAddress != address(0) && recoveredAddress == holder, 'MYST: invalid signature');
       _approve(holder, spender, value);
   }

The function permit extends the ERC20 allowing for the following benefits: 

  • Transactions involving ERC20 operations won’t require ETH and can be paid for by the token itself. 
  • Approve and pull operations happen in a single transaction, instead of two consecutive ones – making the transaction cheaper.  

This means that MYST token holders who don’t own ETH are able to  give permission to smart contracts which would extend the native token functions and allow more advanced operations (similar to those provided in ERC777). This was possible before with `approve` function, but only for ETH holders. Now it becomes possible for various apps where users are not holding ether, e.g. Mysterium dVPN app.

 

Our plans ahead.

Our token migration will commence at the end of August.

TestNet

Mysterium Network is currently running on TestNet, this means that test token payments are happening on Ethereum’s Goerli testnet and node bounty payouts are managed by the Mysterium Team.

BetaNet

We will begin with an invite only BetaNet. During this point, there will be a development freeze on our TestNet. We will be working with a small group of initial testers on our BetaNet. Interested in being a part of the Mysterium Network BetaNet? Use this form to register or jump into our discord channel and let the team know!

The rationale behind an invite only BetaNet is to provide a controlled environment as we transition to real peer to peer payments with MYST on the Ethereum blockchain.

MainNet

Once our team has battle tested our technology during the BetaNet phase, we will merge all the code into master repository on github, deploy final version of smart contracts and update all the apps and services. This will become Mysterium Network MainNet.

Looking into the future

After the token migration and a successful transition onto Ethereum Mainnet, we are planning to integrate with a decentralised exchange, most probably Uniswap v2. This integration with Uniswap will open up app top-ups with ETH for consumers and direct withdrawal to ETH or DAI for node runners as we will have liquidity pools there.

PS: We code golang, and are hiring. If you’re a golang whiz, I’d love to hear from you. Ping me on our discord or send me a message on twitter

The Launch of Mysterium Network

Update: 13/08/2020 – See the following blog post to see how our token migration and launch processes are changing.

 

***

We are fast approaching the official launch of Mysterium Network. This will be the realisation of our founding whitepaper and the crowning of our world-first, peer to peer VPN. 

The past few years have been spent building technology from scratch. We had an idea, but no blueprint for it. This means solving riddles in a backwards way; we only know the answers, but not which questions to ask. 

But after three years of building, breaking, and questioning, it’s time to release Mysterium Network into the wild. 

Here we share our official launch timeline and breakdown how we’re taking Mysterium global.  

 

Read our blog about the role our native token MYST will play in keeping the whole network running, and its planned upgrade from an ERC20 to an ERC777 token. 

What is Mainnet?

Mysterium Network is currently running on its own testnet (has no real payments on the “live” blockchain). This BETA process has helped us to test our product in parallel network conditions and configurations. After a couple of years in this development stage, we have been able to refine, iterate and learn invaluable lessons along the way.

Now we’re ready to finally launch on the mainnet Ethereum. First, we will transition onto the Ethereum Goerli testnet to stress test our P2P payments. Once we’ve monitored and are satisfied with the results, our network will then plug into the mainnet (the “actual” blockchain) with the peer to peer payments system built into the protocol. 

How will the launch work?

The release on mainnet will happen in 3 stages, and during this time several network forks will occur. We understand that this will be difficult for node runners as it will create a temporary state where the app and nodes may run on different networks. This is an unfortunate and inevitable pain we must go through as a community. We will work to make this transition as smooth as possible for both node runners and users. 

Stage ONE (Middle of July): 

  • We will first issue some newly upgraded MYST (ERC777) token on Goerli testnet. We will also upgrade the payment system to prepare it for the Ethereum Mainnet launch. This will create the first network fork.
  • Following this, the ERC777 tokens will be deployed on Ethereum mainnet and token migration will begin for MYST ERC20 token holders. We are aiming for the end of July.

Stage TWO (Middle of August):

  • Mysterium payment system smart contracts will be deployed on Ethereum Mainnet. New discovery, transactor and Hermes services will also be deployed. This will cause the launch of a parallel network (beta net). Not all users will be required to switch into it. And our official dvpn and node apps will still be using testnet. 
  • On betanet transactions will be done on Ethereum mainnet but we will still be using MYSTT test token. No MYST token usage at this stage yet.
  • The Mysterium Node Pilot will not apply for betanet users, but it will be possible to convert MYSTT token into MYST tokens using our special “MiniDEX” smart contract. 

Stage THREE (Middle of September): 

  • We’ll release 1.0 version of nodes and mainnet ready dvpn apps which will begin using and accepting MYST token. This will introduce a 3rd network fork. There are no further forks planned or anticipated after this stage.
  • The Mysterium Referral program launches, bringing consumers and paid traffic into the network.

What changes for nodes?

During the second stage, the node registration process will be changed. 

Currently, users can plug in a Raspberry Pi, which is “found” by the host My.Mysterium.Network. Users turn their Pis into nodes and become a part of Mysterium Network. We will introduce a new onboarding flow. This includes setting a beneficiary/payout wallet during first node run; setting your staking amount to determine your settlement thresholds and maximum amount of tokens during one withdrawal; create your own password; set the price that you’d like to offer your VPN service. Only once the above has been set up, nodes can start providing their services.

We’ll be publishing more important details in the weeks ahead. In the meantime, join our Discord channel and download the app for Android, Windows or Mac to get a taste of the free version before we move to the P2P payments model.

Mysterium Network May 2020 Product Update

Mysterium Network is building a decentralised VPN. Our global network is open, permissionless and distributed. Last year we focused on finetuning our node software, and understanding dynamics in incentivised networks. This year, we’re balancing out the marketplace with focus on consumer applications. If you haven’t already, please make sure to download Mysterium VPN for MacOS and let us know what you think.

The past month at Mysterium has seen us ramp up efforts as we prepare for our summer mainnet launch. 

With our mainnet launch, we are making strides towards our goal of building a peer to peer incentivised system. During our launch, we will release Hermes protocol – micropayments infrastructure for dVPN – onto Ethereum blockchain. Hermes protocol is exciting for us, as it will power our network of nodes and allow end-users to pay nodes directly without us functioning as intermediaries. 

Hermes protocol is going to power a distributed, incentivised network of users and VPN service providers. We’re building it into the dVPN application so that the user journey is as seamless as possible. We’re putting the final touches on the technology, and will soon start making noise (with your help) to spread the word about Mysterium through a referral program. More news on this coming soon.

Some key updates from the development team:

Mysterium VPN is going to migrate to WireGuard protocol
As a protocol, WireGuard®️ has proved faster, more stable and easier to develop as the foundation for Mysterium. WireGuard®️ is an open-source software and communication protocol for VPNs, creating secure point-to-point connections. Step by step, we’re slowly migrating it as our main protocol. Our upcoming versions of Android, macOS and Windows apps are only going to use the WireGuard®️ protocol. More details about this development approach will be released soon.

Check out our new macOS desktop app
We just launched our macOS desktop app. This means anyone with a Mac computer or MacBook can use the Mysterium dVPN to power an anonymous and uncensored web experience. Read more about our dVPN for Mac

Watch this space for a reintroduction of our Windows application
We will soon be releasing the dVPN for Windows too, which is currently in BETA. This will mean Mysterium can be used with all computers operating Windows – roughly 80% of the world’s computers today. We hope this will help kickstart Mysterium’s global journey.

Updates to Node Software
New version of node v0.34 was released recently. This version has a swift and seamless identity registration feature which is optimised for onboarding new users. This is especially important for our mainnet release, as blockchain transactions could take up to one hour to be confirmed. With our new registration system, users will be able to start using our VPN service in a matter of seconds.

New graphic user interfaces (GUIs), coming your way
We’re working on a new design for our web user interface. We will be sharing the design mockups with our community to get their feedback and to develop the best dVPN experience in the space.

In our next update, we will be much closer to our transition from the Ethereum Görli Testnet to Ethereum blockchain. Stay tuned for exciting updates. If you are interested in participating, running a node, or generally have any questions, jump into our discord channel and speak directly with our core team. 

This summer, we’re excited to share with you Mysterium Network – a permissionless P2P network – three years in the making and the realisation of our founding whitepaper. 

In the meantime, try our free VPN for Android here and VPN for Mac here.