Migrating Your Nexus Wallet to Tritium

Nexus
10 min readNov 12, 2019

--

The following guide contains instructions on migrating your Legacy Wallet into Tritium Mode.

Prior to Tritium Activation

There a few things you can do prior to Tritium activation to prepare your wallet to migrate immediately after.

  • Ensure you have upgraded to the latest version of the Tritium wallet. https://github.com/Nexusoft/NexusInterface/releases/latest
  • Ensure that the wallet is fully synchronized with the Nexus network. The version 2.0.x wallet and 4.0.x core represent a full upgrade that uses a different database structure, and thus must be fully synced from scratch. You can speed this process substantially by using the Recent Database copy to bootstrap your local data. This is always available using the File/Download Recent Database menu option.

Note: If you have the old QT wallet or version 1.0.x of the Tritium interface, this is a required upgrade to continue using your Nexus wallet. Your old wallet will cease functioning on the network until you upgrade.

Stake Migration Rules and Guidelines

There are a few simple things to know and rules to follow when migrating your existing staking key to your Tritium wallet.

  • Always migrate your trust key FIRST, before migrating any other balance from your Legacy wallet..
  • Your old wallet used a trust key for staking. Any time it mined a Proof of Stake block, it moved all wallet balance to the address of that trust key. In Tritium, you have a separate Trust account, which is created automatically when you create your user name.
  • You can only migrate an existing trust key from your Legacy wallet to your Tritium Trust account if your Tritium account has not already been used to stake.

This won’t even be noticeable to most people, who will migrate their existing stake as soon as they create their user name, but if you don’t migrate immediately, and use your new Trust account to stake, then you can no longer migrate a legacy trust key to that Trust account.

  • If you have mined a recent Proof of Stake block, and the stake transaction is still immature, you must wait for it to mature (120 blocks) before you can migrate stake.
  • You can only migrate your trust key once.
  • You can only migrate one trust key to a Trust account. If you have multiple legacy trust keys (ie, stake in multiple wallets), you will need to create a separate username for each one you wish to migrate.
  • You can migrate a legacy trust key that has only staked a genesis transaction. It is not required that it have previously staked any trust transactions.
  • To migrate your current trust (stake rate and other staking status), you must have balance on your trust key. The migration process will send both the balance and your staking status to your new Trust account. You cannot send the balance somewhere else first, then migrate only the current trust.

After migration, your new Trust account will be ready to use for staking. As already mentioned, there are a few differences between Legacy staking and Tritium staking

  • Your Tritium signature chain has a separate Trust account to use for staking. When you create your user name, it creates both a default account and a Trust account automatically. You can create additional accounts as you see fit.
  • Most Tritium accounts have a balance. Your Trust account has both balance and stake. The stake amount represents the amount currently being used for Proof of Stake.
  • Only the balance you specifically add will be staked. In other words, you can choose how much to stake and how much not to stake.
  • Migration will move balance from your existing legacy trust key to your Trust account stake amount so you can begin staking with it immediately.
  • You can add to the stake amount or remove from it whenever you like, but if you remove stake it will reduce your current level of trust by an amount equal to the percentage removed. In other words, if you remove 50% of your stake it will cost 50% of your accumulated trust.
  • Stake rewards are paid to the Trust account balance whenever your wallet mines a Proof of Stake block. You can use these as you like, or add them back into stake to continue growing the stake amount.
  • The legacy staking system required at least 120 blocks between stake blocks. Under Tritium, this interval increases to 250.

Tritium Activation

The Tritium protocol will activate at 11:11pm GMT-7 on 11 November 2019. If you are using the latest wallet, your wallet will look like the image below prior to activation, including a countdown to the exact activation time.

This view is the Legacy wallet, and you only have access to it prior to the activation time. Activation will unlock the Tritium wallet. At that point, your wallet interface is actually two separate wallets: one for Legacy and one for Tritium.

Your Legacy wallet balance will remain in your Legacy wallet until you migrate it. Initially, your Tritium wallet will have zero balance. Your coins have not gone anywhere. They just need to be migrated from Legacy to Tritium.

Upon activation of Tritium, your wallet will notify you that it is switching to Tritium mode. You are ready to create your user name and log into your Tritium wallet.

Create Your Login

The first thing to do before anything else is to create your user name. This will establish a new signature chain with corresponding default and Trust accounts.

To do so, simply fill out the Create User form with your chosen user name, password, and PIN number. The password must be at least 8 characters, and the PIN of minimum length 4 digits.

Recommended Security

We recommend that users have at LEAST 8 characters in their password, and at LEAST 4 characters in their PIN. This will make offline password cracking take 50 billiion years to break the password/pin combination.

DO NOT USE COMMON WORDS FOR YOUR PASSWORD, THIS WILL LEAVE YOU VULNERABLE TO DICTIONARY ATTACKS THAT COULD DRASTICALLY DECREASE THIS RESISTANCE.

We therefore recommend you using secure random number generators for your password:

$ openssl rand -base64 8

xrMBADJZv48=

The above password generator will provide account security comparable to the above 50 billiion years to break, and not include any common words that would enable a dictionary attack success.

Security Considerations

The security of your account is important, so this section will follow a breakdown of how much more secure you can make your sigchain. Let us look at the required resistance to brute force a sigchain vs. legacy UTXO:

Sect571r1 (legacy private keys) are generated in 1.56ms, where to generate one key in a sigchain takes 500ms, being 319 times more difficult to break at equivalent password entropy.

The current resistance is 7.7291×10¹⁷¹ iterations to iterate and guess all private keys, with it taking 1.56ms per key, the time mine all keys would be 1.2057×10¹⁶⁹ seconds.

The following command can be issued if you have openssl installed:

$ openssl rand -base64 32

This will generate a long string such as:

F/DRfiUbRvtZmZi+BQgUouzHTmckhv0oJdNaNpZvA7k=

This uses 32 characters, in base64, making brute force resistance 64³² or 6.277101735×10⁵⁷ which would become around 3.138550868×10⁵⁷ seconds to break this password if your PIN was known.

This number is multiplied by 10 for every number you add to your PIN. A six digit numeric PIN, would increase resistance to 6.277101735×10⁶³ seconds.

If you want an even higher security standard, we recommend using your PIN as a second password (like 2 private keys).

$ openssl rand -base64 64

VPVaqjNxQgJucekY4+kBYyJgkF/0g64R4SYc9GYqsC0ntYLSisQbs+hHZB2+AKaDi0yQCBF9U32WKCozEhuAeA==

$ openssl rand -base64 64

dCStGOhTbTqtSp1UQ1j34SS9l3vBPtA1aSocXMpheRof9a5UFPa47Tv5UjUCydO0hf4Wj8gYMVRIuae5MKbojg==

This will give security properties of 7.762590462×10²³⁰ seconds to break into a sigchain. Which, if you don’t know, is a lot. 2¹²³ is the maximum amount of iterations possible with all the known energy in the universe, so this many seconds is well beyond resistant to attack.

Note: These iterations are based on the assumption that an attacker already knows your username, if they do not, this complexity only increases exponentially.

The above figure describes a resistance that would take an attacker 2.461501288×10²²³ years to break.

YOU ARE RESPONSIBLE FOR KEEPING YOUR ACCOUNT SECURE

Assisted Migration — Staking

After you create your login, your wallet will display the Migrate Account message. This includes buttons to help you immediately perform an assisted migration. It allows you to migrate stake and other balance from your Legacy wallet to your Tritium wallet.

If you choose not to migrate just yet, you can click elsewhere on your wallet to close the window and it will display again the next time you log in. You can also click “Don’t show this again” to skip assisted migration and migrate manually later. Instructions for manual migration are included later in this document.

If you stake in your Legacy wallet, the first step of assisted migration is to migrate your stake.

Press the Migrate Stake button, and the wallet will ask for your password. Enter the password for your Legacy wallet.

After you enter your password, it will ask for your Tritium PIN number.

Press the Confirm button. The wallet will initiate migration of your stake information.

It takes two blocks to fully migrate your stake: one to send from your Legacy wallet to your Tritium wallet, and one to credit the information to your Trust account. Please be patient until the migrate transactions are confirmed.

Assisted Migration — Other Balance

If you have any additional balance in your Legacy wallet, you can migrate it to your Tritium default account after you have migrated your stake.

To do so, press the Send NXS manually button on the assisted migration view.

Your wallet will automatically switch to the Send NXS page of your Legacy wallet and place the address for your Tritium default account in the Send To field. This works exactly the same as sending NXS did within the Legacy wallet previously.

Pick a Send From source and designate the amount to send, then click the Send button. The wallet will prompt you for your Legacy password (if it is not unlocked already) and initiate a send.

The difference is that this sends NXS from your Legacy wallet to your Tritium wallet.

This capability for sending between the two wallets will continue to be supported going forward.

Manual Migration — Staking

As discussed earlier, you may wish to bypass the assisted migration and migrate manually later.

The process remains quite simple, you just get to it differently. This section walks through that process. You can skip it if you already migrated your stake using the Migrate Account view.

Your Tritium wallet includes a new view of your user accounts. To access stake migration, click on the user icon at the bottom of your wallet.

Then, click on Staking at the left side of the page.

As long as you have a new (not previously used for staking) Trust account, it will display the Migrate Stake button on the right side.

Press the Migrate Stake button. As shown before, the wallet will prompt for your Legacy password and Tritium PIN and initiate stake migration.

Manual Migration — Other Balance

In addition to manually migrating stake, you can manually send NXS from your Legacy wallet to your Tritium wallet at any time.

To do this, you will need your Tritium account address, which is also available on the User account page. Click the user icon at the bottom of the main wallet view to get to that page as shown in the image for manual stake migration.

Click on Account on the left side of the page.

Hover your mouse pointer over the account address you wish to use and it will popup a tooltip saying Click to copy to clipboard. Click on that address. (below image does not display mouse pointer)

Then, switch your wallet to Legacy mode by going to the File menu and selecting the Switch option

In your Legacy wallet, click the Send icon on the bottom just like you would to send NXS to anyone else.

Click on the Send To field, then paste your Tritium address into that field.

Select a Send From source and designate the amount of NXS to send, then click the Send button. The wallet will prompt you for your Legacy password (if it is not unlocked already) and initiate a send.

Then, you can again use the File menu to switch back to Tritium mode and view your Tritium wallet.

Viewing Stake Migration Results

After you migrate stake, you can verify that everything was correctly received by your Tritium wallet.

If you view your transaction list, you will see the Migrate transaction.

Also, on your User account page, you can click on Staking on the left side to view your stake amount and staking metrics.

Viewing Other Balance Results

When you send other balance from your Legacy wallet to your Tritium wallet, it will display as a Credit on the Tritium wallet transaction list. Note that this Credit states that it is from a Legacy transaction.

You can also view your User page and click on Accounts on the left side. This will display all your Tritium accounts along with their balances on the right side. Here you can see that the amount sent from your Legacy wallet has been properly added. In this example, it was added to the default account.

The account list also shows your Trust account with its total balance (sum of both balance and stake amounts).

--

--

Nexus

Developing open-source technology to support decentralization, innovative applications and responsible values. www.nexus.io