IOTA Seeds

Update: use the Trinity wallet.
https://trinity.iota.org/

It is best to start with a clean offline machine. Install a fresh copy of Ubuntu 18.04.1 LTS
https://www.ubuntu.com/download/desktop

Download https://github.com/iotaledger/trinity-wallet/releases

Trinity videos https://iotanodes.org/trinity/


Never use a 3rd party to create your seed. iotaseedgenerator.com, iotaseed.io, iota-help.com, etc... have the opportunity to scam. example example For maximum security, your seed should be 81 random characters consisting of only uppercase A-Z and the number 9. Go offline and generate the seed yourself. For greater protection use a live CD https://en.wikipedia.org/wiki/List_of_live_CDs or a live USB. https://en.wikipedia.org/wiki/Live_USB#Examples_of_Live_USB_operating_systems Print it on paper and keep it in a secure location. Store your seed in an encrypted file, and protect it with a password. An open source password manager like KeePass and a USB flash drive work well. KeePass also has a built-in password generator. https://keepass.info/ https://www.keepassx.org/ Select the Collect additional entropy checkbox. https://keepass.info/screenshots/keepass_2x/pwgen_big.png Use Two-Channel Auto-Type Obfuscation to thwart keyloggers. https://keepass.info/help/v2/autotype_obfuscation.html Do not use a function that is generated by a deterministic algorithm. Only use a random number generator that is cryptographically secure. Linux: cat /dev/urandom |tr -dc A-Z9|head -c${1:-81} echo $(cat /dev/urandom | tr -dc A-Z9-9 | head -c81) Mac: cat /dev/urandom |LC_ALL=C tr -dc 'A-Z9' | fold -w 81 | head -n 1 cat /dev/urandom | LC_ALL=C tr -dc 'A-Z9-9' | fold -w 81 | head -n 1 NodeJS: [...Array(81)].map(() => (function getRandomChar() { return 'ABCDEFGHIJKLMNOPQRSTUVWXYZ9'[crypto.randomBytes(1)[0]] || getRandomChar() })()).join('') JavaScript: [...Array(81)].map(() => (function getRandomChar() { return 'ABCDEFGHIJKLMNOPQRSTUVWXYZ9'[window.crypto.getRandomValues(new Uint8Array(1))] || getRandomChar() })()).join('') Python 3: import secrets; print("".join(secrets.choice("ABCDEFGHIJKLMNOPQRSTUVWXYZ9") for _ in range(81))) Ruby: require 'securerandom'; (1..81).map{'ABCDEFGHIJKLMNOPQRSTUVWXYZ9'[SecureRandom.random_number(27)]}.join('') Windows: (To open a Powershell console, press Windows-Key then type powershell in the search.) $randomBuffer = [byte[]](1..1); $seed = [char[]](1..81); -join($seed | foreach { Do {(new-object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($randomBuffer); $randomChar = [char[]]([char]'A'..[char]'Z' + [char]'9'..[char]'9')[$randomBuffer[0]]} While ($randomChar -eq $null); $randomChar }) JavaScript: Save seedgen.html and sjcl.js then run offline. source: https://github.com/knarz/seedgen https://github.com/bitwiseshiftleft/sjcl/releases/tag/1.0.7 Python 3: import sys if sys.version_info < (3, 6): sys.stdout.write("Requires Python 3.6 \n") sys.exit(1) import secrets #https://docs.python.org/3/library/secrets.html import string import ctypes import os seed = ''.join(secrets.choice(string.ascii_uppercase + '9') for _ in range(81)) #print(seed) #Write directly to a USB flash drive to avoid hitting the swap file. f1 = open("f:\seed.txt", "a") #change to your USB drive letter f1.write(seed) f1.write("\r\n") f1.flush() os.fsync(f1) f1.close() location = id(seed) size = sys.getsizeof(seed) bufsize = len(seed) + 1 #null-terminated add 1 offset = size - bufsize print("Location of seed variable:",hex(location)), size #print("Seed:", ctypes.string_at(location, size)) #print([x for x in globals().values() if id(x)==location]) print("Wipe seed from memory: 0x%08x size %i bytes" % (location, bufsize-1)) ctypes.memset(location + offset, 0, bufsize) print("Seed:", ctypes.string_at(location, size)) #print([x for x in globals().values() if id(x)==location]) print(repr(seed)) input('File seed.txt saved. Press ENTER to exit.') Save as iotaseed.py then run offline. Java: https://github.com/eukaryote31/iota-seed-gen JavaScript: IOTA paper wallet generator https://github.com/arancauchi/IOTA-Paper-Wallet Go: https://github.com/erdii/iota-seedgen
After the computer generates the random string, manually change/swap some of the characters yourself.

Generate, restore IOTA seed from Bitcoin BIP39 mnemonic
https://github.com/mlouielu/iota-mnemonic

What is a seed?

What is my seed?

The Secret to Security - Is Secrecy

One seed to sow your key(s)

How to generate a seed safely?

Secure Seed Commands for IOTA

Secure Cryptocurrency Seeds

Generating a IOTA seed using a dice

IOTA_Paperwallet_Selfprint_v02.pdf

https://public.tangle.works/winternitz.pdf

home