Directory / yoroi-frontend / MIGRATE_YOROI.md

You are browsing a mirror of a file hosted on GitHub. View original

Abstract

Add a feature to migrate V2 derivation schemes to an existing Yoroi wallet

Motivation

Users may want to migrate:

  • a wallet that exists in another application to Yoroi
  • a Yoroi wallet to a Hardware wallet
  • an existing Yoroi wallet to another Yoroi wallet

Background

Currently Yoroi only supports a single wallet.

Suppose a user has a wallet A and wants to create a new wallet B and transfer all their funds. They would need to 1) Delete their wallet A 1) Create wallet B and save the receiving address somewhere 1) Delete wallet B 1) Restore wallet A 1) Send all funds to B 1) Delete wallet A 1) Restore wallet B

This is a very poor user experience — especially if a user is trying to migrate to a hardware wallet.

Proposal

Easiest implementation (Selected)

We introduce a Migrate Yoroi wallet feature similar to the Migrate Daedalus wallet feature by simply copy pasting code.

To do this from the frontend point-of-view, the only hard part is coming up with an icon. Here is a draft for a possiblity I made.

image

I think we need to change the Daedalus migration since

  • The current icon is not clear what it is supposed to do
  • Helps contrast with the Yoroi → Yoroi option

However, Yoroi → Yoroi is possibly doesn’t convey the right message since you would be able to use this feature for any wallet that uses the V2 address scheme. Therefore we may want to use more generic icons such as

image

Slightly more complicated implementation

Instead of having two migrate features, we have a single migration feature instead. Depending on the length of the mnemonic, we judge whether or not the wallet is a Daedalus wallet. The problem is it may be less clear for the user this is how to migrate Daedalus wallets.

Pre-requesite

The send all feature in the Rust library (to send the user’s entire balance with no change address) needs to be ported to also work with V2 derivation scheme addresses.