How a mnemonic seed with offset passphrase works in Monerujo

Andrés
4 min readJan 5, 2022

Since version 2.3.1 Monerujo comes with a feature called CryptSeed™ that allows you to create and restore a wallet that has a very special, yet very normal-looking seed. This is a crazy Monero tool already available in the core wallets, so it’s totally compatible.

Monero seeds explained

In case you don’t know what a seed is, the seed is that list of 25 random words that Monerujo shows you when you create a wallet, and that’s the moment you should write it down, and keep it safe (so you don’t lose it) and secret (so you’re the only one who knows it).

A Monero seed is born

That seed is actually the spend key. It’s the key that allows you to spend from your wallet, that’s why it’s so important. But the spend key looks like this:

Which is cumbersome to write down, and also very easy to make mistakes. A single different character would mean a completely different wallet, and you would not know where the error is. That’s why Monero takes that long spend key and converts it to simple words that are easier to write down without glitches. The outcome is the seed, which looks like this:

Conceptually, let’s say either the spend key or the seed are two ways of displaying the same magic super long string of characters that are the DNA of your wallet. If you know that exact DNA, you can create your wallet as many times as you want, and it’ll always be the same wallet, with the same money in there.

Just like in Jurassic Park

This is where the offset passphrase can come into play and make things both fun and hacker-y.

Offset passphrases explained

By now, we know that the seed is a list of 25 words that represents the DNA of your wallet. What would happen if we add a 26th word to the key, and run the converter again?

That’s right. By adding “ruth” we get a different seed, that means a different DNA, and therefore a different wallet. So:

Original key + “ruth” = CryptSeed!

That extra passphrase offsets or shifts the original seed in a reproducible way, which gives you a different seed. It means that it gives you the same “different” seed every time.

Ok but… why? How’s that useful?

Usefulness never stopped a nerd! Now seriously, the main utility for such a thing is to avoid the evil maid attack. With this feature, when you can create a wallet with a seed offset phrase, you can write down the original seed in one place, and the offset passphrase in another, or just remember it (you chose it yourself after all). Store the seed somewhere, and if someone else finds it and tries to restore your wallet to steal your moneroj, all they’ll find is an empty wallet.

This means that the wallet that comes out of the seed without adding the offset phrase, works as a decoy wallet. Extra hacker points if you actually send some funds to that wallet and use it from time to time so the illusion is complete.

The evil maid restoring a deceptively meager XMR wallet.

Also, you can have as many different wallets derived from the original one as you want. All you need is a “seed” seed (pun intended) and some imagination:

Words of caution

“Being your own bank” entails not only the fun parts, also taking care of your backup, secrecy, and security protocols. If you forget or lose your offset passphrase, your seed alone won’t be enough to recover your funds. And you lose access to them. Forever. If you plan to use this, please be sure you understand it. Test it. Send some tiny funds, delete the wallet, restore it and check that everything is there. Make yourself familiar with the procedure.

This feature was funded by members of the community like you. Someone thought it was a cool thing to add to Monerujo, we agreed, and people donated moneroj to make it happen. Check out past and current features at funding.monerujo.app

And don’t forget to donate, you ungrateful bastards!

--

--