I've used paper wallets in the past for bitcoins, in order to keep them in cold storage. How can I create a paper wallet for Stellar Lumens?
A paper wallet is simply a public and private key that are written on paper, rather than stored digitally (in a text file or document).
You can create a paper wallet by any of the following methods:
I think that currently the best way to store the keys to Stellar account in the form of a paper wallet is mnemonic code as described in SEP-0005. This Stellar Ecosystem Proposal describes how to derive the Stellar key pair from 12 - 24 words you can write down on a piece of paper or just memorize.
For example these 24 words:
reward result tennis clump buddy bless exercise coral globe large explain there firm inquiry crazy equip punch immune because nasty trick warfare wire group
derive the following primary account:
The advantages over the paper wallets in the form of secret key (or QR code encoded secret key):
- It's easier to remember/write down so less prone to errors.
- When it comes to QR codes the only way is to print them what can be insecure.
- You can derive many accounts from a single mnemonic seed.
- It's compatible with the hardware wallet: Ledger.
Unfortunately this solution has not been adopted (yet) in the apps and wallets in Stellar ecosystem. One of the tools you can use today is stellar-hd-wallet released by SDF.
You have only two secure options and the first one is not as secure as the second one.
First, create a public/secret pair on the Stellar.org account viewer. This is the only web site that has our approval since it is the very own foundation's site. It may suffer from man-in-the-middle attacks, like malicious programs fishing for crypto accounts, shady ad blocks, browser extensions, etc.
Second, download the SDK in the language of your choice (being JS the easiest) from the Stellar repos only, and run the StellarSDK.Keypair.random() method while unplugged from the internet. It will provide you with the public/secret keys for your new account which you must fund with 1 XLM in order to make it to the blockchain. This method may suffer from programs infecting your computer but no method is 100% safe when you computer is hijacked.