bip39

package module
v0.3.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2018 License: MIT Imports: 10 Imported by: 0

README

go-bip39

A golang implementation of the BIP0039 spec for mnemonic seeds

Credits

Wordlists are from the bip39 spec.

Test vectors are from the standard Python BIP0039 implementation from the Trezor guys: https://github.com/trezor/python-mnemonic

Example

package main

import (
  "github.com/tyler-smith/go-bip39"
  "github.com/tyler-smith/go-bip32"
  "fmt"
)

func main(){
  // Generate a mnemonic for memorization or user-friendly seeds
  entropy, _ := bip39.NewEntropy(256)
  mnemonic, _ := bip39.NewMnemonic(entropy)

  // Generate a Bip32 HD wallet for the mnemonic and a user supplied password
  seed := bip39.NewSeed(mnemonic, "Secret Passphrase")

  masterKey, _ := bip32.NewMasterKey(seed)
  publicKey := masterKey.PublicKey()

  // Display mnemonic and keys
  fmt.Println("Mnemonic: ", mnemonic)
  fmt.Println("Master private key: ", masterKey)
  fmt.Println("Master public key: ", publicKey)
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Some bitwise operands for working with big.Ints
	Last11BitsMask          = big.NewInt(2047)
	RightShift11BitsDivider = big.NewInt(2048)
	BigOne                  = big.NewInt(1)
	BigTwo                  = big.NewInt(2)

	// Wordlist sets the language used for the mnemonic
	WordList = EnglishWordList

	// ReverseWordMap is a reverse lookup of Wordlist
	ReverseWordMap = map[string]int{}
)
View Source
var ChineseSimplifiedWordList = strings.Split(strings.TrimSpace(chineseSimplifiedWordList), "\n")

ChineseSimplifiedWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_simplified.txt

View Source
var ChineseTraditionalWordList = strings.Split(strings.TrimSpace(chineseTraditionalWordList), "\n")

ChineseTraditionalWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/chinese_traditional.txt

View Source
var EnglishWordList = strings.Split(strings.TrimSpace(englishWordList), "\n")

EnglishWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/english.txt

View Source
var ItalianWordList = strings.Split(strings.TrimSpace(italianWordList), "\n")

ItalianWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/italian.txt

View Source
var JapaneseWordList = strings.Split(strings.TrimSpace(japaneseWordList), "\n")

JapaneseWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/japanese.txt

View Source
var KoreanWordList = strings.Split(strings.TrimSpace(koreanWordList), "\n")

KoreanWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/korean.txt

View Source
var SpanishWordList = strings.Split(strings.TrimSpace(spanishWordList), "\n")

SpanishWordList is a slice of mnemonic words taken from the bip39 specification https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/spanish.txt

Functions

func IsMnemonicValid

func IsMnemonicValid(mnemonic string) bool

IsMnemonicValid attempts to verify that the provided mnemonic is valid. Validity is determined by both the number of words being appropriate, and that all the words in the mnemonic are present in the word list.

func MnemonicToByteArray

func MnemonicToByteArray(mnemonic string) ([]byte, error)

MnemonicToByteArray takes a mnemonic string and turns it into a byte array suitable for creating another mnemonic. An error is returned if the mnemonic is invalid.

func NewEntropy

func NewEntropy(bitSize int) ([]byte, error)

NewEntropy will create random entropy bytes so long as the requested size bitSize is an appropriate size.

func NewMnemonic

func NewMnemonic(entropy []byte) (string, error)

NewMnemonic will return a string consisting of the mnemonic words for the given entropy. If the provide entropy is invalid, an error will be returned.

func NewSeed

func NewSeed(mnemonic string, password string) []byte

NewSeed creates a hashed seed output given a provided string and password. No checking is performed to validate that the string provided is a valid mnemonic.

func NewSeedWithErrorChecking

func NewSeedWithErrorChecking(mnemonic string, password string) ([]byte, error)

NewSeedWithErrorChecking creates a hashed seed output given the mnemonic string and a password. An error is returned if the mnemonic is not convertible to a byte array.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL