How to use seedXOR
Mixing randomness from different sources
Good randomness (entropy) is fundamental to crypto security. If your mnemonic/seed can be guessed because it’s predictable then sooner or later your funds will be gone. That is what happened during the ColdCard crisis. And that is the reason you should always use real word randomness to generate your mnemonics, rather than blindly trusting a device to generate randomness for you.
Seedmate enables you to generate mnemonics using dice rolls, coin toss, poker cards or just random word typing (these words must belong to the BIP39 word list and must be picked randomly, just print the list, cut them, suffle and blindly pick 24). Word typing is the most transparent method, as you did the word picking, no need to trust the device. But there is a catch, the last word contains the checksum, and it cannot be calculated manually (well, it is possible, but is extremely difficult to do). Seedmate will modify the last bits of the last word to meet the checksum rules, and the other words will remain as you picked them.
Now, if you want to enhance even more the randomness, you could generate several mnemonics using several methods and mix them all together, using the seedXOR function. The resulting mnemonic will have combined entropy and can be safely used to store funds.
If you want to verify the Seedmate XOR logic you could do a few test in advance using online tools (or other devices) to check that the results are equivalent.
Creating recovery schemes
XOR has a useful characteristic:
if you XOR A with B to create C,
then C XOR B= A
and C XOR A = B
You could take advantage of this to create a 2 out of 2 scheme. Lets say A is the mnemonic where your funds are. Then create a random mnemonic B using seedmate, combine A XOR B to get C. Then instead of storing the A list of words you keep lists B and C.
When you want to recover A just combine B and C using XOR.
But if you lose either, then you lose access to A. Similar to the passphrase scheme, no redundancy. To achieve redundancy you could keep several copies of B and C in several places.
Another strategy to achieve redundancy could be as follows:
A is where your funds are
Create random mnemonics B & C, combine A XOR B XOR C to get D.
Now A can be recovered using B XOR C XOR D.
Store in one location B and C
In other location B & D
In other location C & D.
This way if you lose one of the locations you can still recover access to your funds held in A. This is called a ‘2 out of 3’ scheme.