mnemonic v0.1.0 Mnemonic View Source

BIP39 Implementation

Link to this section Summary

Types

Supported mnemonic languages

Functions

Generate mnemonic sentences with given entropy and mnemonic language. The bits size of entropy should be in 128, 160, 192, 224 and 256. Supported languages are English, Chinese(Simplified), Chinese(Tranditional), Japanese, Korean, Spanish, French and Italian

Generate mnemonic sentences with given entropy length(in bits) and mnemonic language. Allowed entropy length are 128, 160, 192, 224 and 256. Supported languages are English, Chinese(Simplified), Chinese(Tranditional), Japanese, Korean, Spanish, French and Italian

Generate seed by given mnemonic, passphrase and language. The seed is 64 bytes

Check the given mnemonic is valid or not

Link to this section Types

Link to this type

language() View Source
language() ::
  :english
  | :chinese_simplified
  | :chinese_traditional
  | :french
  | :italian
  | :japanese
  | :korean
  | :spanish

Supported mnemonic languages

Link to this section Functions

Link to this function

from_entropy(entropy, lang) View Source
from_entropy(entropy :: binary(), lang :: language()) ::
  String.t() | {:error, term()}

Generate mnemonic sentences with given entropy and mnemonic language. The bits size of entropy should be in 128, 160, 192, 224 and 256. Supported languages are English, Chinese(Simplified), Chinese(Tranditional), Japanese, Korean, Spanish, French and Italian.

Examples

iex> entropy = <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>>
iex> Mnemonic.from_entropy(entropy, :english)
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
Link to this function

generate(ent, lang) View Source
generate(ent :: integer(), lang :: language()) :: String.t() | {:error, term()}

Generate mnemonic sentences with given entropy length(in bits) and mnemonic language. Allowed entropy length are 128, 160, 192, 224 and 256. Supported languages are English, Chinese(Simplified), Chinese(Tranditional), Japanese, Korean, Spanish, French and Italian.

Link to this function

to_seed(mnemonic, passphrase \\ "", lang) View Source
to_seed(mnemonic :: String.t(), passphrase :: String.t(), lang :: language()) ::
  binary() | {:error, term()}

Generate seed by given mnemonic, passphrase and language. The seed is 64 bytes.

Examples

iex> mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
iex> Mnemonic.to_seed(mnemonic, "TREZOR", :english)
<<197, 82, 87, 195, 96, 192, 124, 114, 2, 154, 235, 193, 181, 60, 5, 237, 3, 98,
  173, 163, 142, 173, 62, 62, 158, 250, 55, 8, 229, 52, 149, 83, 31, 9, 166, 152, 
  117, 153, 209, 130, 100, 193, 225, 201, 47, 44, 241, 65, 99, 12, 122, 60, 74, 
  183, 200, 27, 47, 0, 22, 152, 231, 70, 59, 4>>
Link to this function

validate(mnemonic, lang) View Source
validate(mnemonic :: String.t(), lang :: language()) ::
  {:ok, binary()} | {:error, term()}

Check the given mnemonic is valid or not.

Examples

iex(17)> mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
iex(19)> Mnemonic.validate(mnemonic, :english)
{:ok, <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>>}