A cheap and simple way to make metal backups for your bitcoin seeds
A small form, quick and cheap metal seed backup
Abstract
This file documents a method of producing metal seed backups quickly with minimal tools. It uses the binary of the seed rather than the English words to allow dense information storage with just a centre punch. It will discuss different layout schemes, stamping the metal and ways wallet software can help streamline this process.
Motivation
While paper seed phrase storage is quick and cheap, it is not durable. There are many metal seed storage solutions already, however they either require an expensive kit, a English alphabet stamp kit or other tools. The aim of this project is to suggest ways that metal seed backups could be produced with just an automatic centre punch on a small steel blank the size of a credit card. This will make the backup very cheap and easy to produce, therefore suitable for making backups for any wallet, even down to a phone wallet only storing 300,000 sats.
Overview
The proposal is to stamp your bitcoin seed onto a credit card sized piece of stainless steel using a centre punch where a punch mark is a 1 and no mark is a 0. The steel does not need any processing such as etching so the manufacturing cost is very low, alternatively any shaped piece of steel could be used; there is no dependence on a particular shape. Before stamping the steel, a paper grid guide will be marked up where the user must stamp. This guide is then stuck to the steel then the user stamps the seed into the steel using the guide. This guide can then be safely discarded, leaving behind the steel with just the centre punch marks. To decode the plate, the same guide grid printed onto clear paper can be used.
1. Marking the Guide
The guide consists of a grid of 3x3mm squares where each square is a bit. The left side of the grid is 11 squares x 24 squares, one line of 11 squares is one word of a 24 word seed. The right hand side is a single column of squares to indicate the right hand side of the plate when reading it. This line can either be just marked as 1’s to just show the right hand side or could be used to store additional entropy, either for a pass phrase or file encryption key (here you might want to add a second column on the right hand side for 48 bits of entropy). The current flow for converting the seed words into binary is to find the binary for each word using this document:
https://github.com/hatgit/BIP39-wordlist-printable-en
For example, the BIP39 word ‘satoshi’ represents the binary number 10111111011. This would be marked on the grid like this:
2. Stamping the Steel
Currently I use sellotape to fix the marked guide to the steel blank, however at scale it would only be a marginal price increase to provide once use stickers as the guide to remove the need for tape. To mark the steel you simply need to go along and punch each square that you’ve previously marked. I used a cheap automatic centre punch for speed and simplicity but a manual punch and mallet would also work. Once the steel is marked, you can remove the guide and burn or otherwise destroy it as it has the private key on it.
3. Decoding
To decode the seed plate and turn it back into a 24 word seed you convert each binary number back to a base 10 number and find the corresponding word from the BIP39 list, remembering to subtract 1 if the word list you’re using starts at 1 rather than 0. For ease of reading, a blank grid printed on a clear sheet can be used, again this would be a marginal price increase when produced at scale.
Advantages
-Cheap
-Easy to produce
-Very high durability
-Only one tool required
-Language agnostic
-Small form factor
Disadvantages
-Room for human error in word>binary translation
-Harder to error correct than using words
How Wallets Could Streamline this Process
Most of the time and the room for error with this process is converting the 24 words to binary and then converting them back. If wallet software natively had the ability to either display the binary of each word in 1’s and 0’s or a visual equivalent then this would be a very simple way of creating a metal seed backup. Wallets could also allow you to input your seed in binary form to remove the need to convert the binary to BIP39 words. These would be very minimal additions to a wallet with the only concern being UI clutter.