- Source:
Methods
(static) _NODE(kL, kR, …args) → {bip39toalgo.DerivationNode}
Returns bip39toalgo.DerivationNode
from arguments
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
kL |
string
|
bip39toalgo.WordArray
|
Leftmost 32 bytes of private key |
|
kR |
string
|
bip39toalgo.WordArray
|
Rightmost 32 bytes of private Key |
|
args |
Object
|
<repeatable> |
(static) algoAddress(key) → {bip39toalgo.AlgoAddressData}
Derives Algorand's public key from private key
- Source:
Parameters:
Name | Type | Description |
---|---|---|
key |
string
|
bip39toalgo.WordArray
|
(static) algoAddressFromMnemonic(mnemonic) → {bip39toalgo.AlgoAddressData}
Derives Algorand public key and address
- Source:
Parameters:
Name | Type | Description |
---|---|---|
mnemonic |
string
|
Algorand mnemonic |
(static) algoKeyFromMnemonic(mnemonic) → {bip39toalgo.AlgoParsedMnemonicData}
Translates Algorand mnemonic to private key
- Source:
Parameters:
Name | Type | Description |
---|---|---|
mnemonic |
string
|
(static) algoMnemonic(key) → {bip39toalgo.AlgoMnemonicData}
Translates Algorand private key to mnemonic words
- Source:
Parameters:
Name | Type | Description |
---|---|---|
key |
string
|
Private key in hexadecimal |
(static) algoSecret(node) → {Promise.<bip39toalgo.DerivationNode>}
Computes Algorand address and mnemonic from bip39toalgo.DerivationNode
- Source:
Parameters:
Name | Type | Description |
---|---|---|
node |
bip39toalgo.DerivationNode
|
(static) algoWords(key) → {bip39toalgo.AlgoAddressData}
Computes Algorand address and mnemonic from private key
- Source:
Parameters:
Name | Type | Description |
---|---|---|
key |
string
|
Private key in hexadecimal |
(static) bip39seed(mnemonic, passphrase, prefixopt) → {bip39toalgo.WordArray}
Convert BIP39 mnemonic to seed
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
mnemonic |
string
|
Mnemonic (12-24 words delimited by single space) |
||
passphrase |
string
|
Passphrase as suffix for the salt |
||
prefix |
string
|
<optional> |
mnemonic |
Modifier as prefix for the salt |
(static) countAddressEnding(nopt) → {void}
Generates N random addresses and counts occurrences of last character
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
n |
number
|
<optional> |
1000 |
Number of addresses to generate |
Returns:
- Type:
-
void
Nothing
(static) curveInfo(curveName) → {bip39toalgo.CurveParams}
Get elliptic curve parameters
- Source:
Parameters:
Name | Type | Description |
---|---|---|
curveName |
string
|
Name of the elliptic curve |
(static) deriveBip39Seed(seed, method, pathopt) → {Promise.<bip39toalgo.DerivationNode>}
Derives Algorand's secret from BIP39 seed and using given method and path
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
seed |
bip39toalgo.WordArray
|
BIP39 seed bytes |
||
method |
string
|
Derivation method |
||
path |
string
|
<optional> |
m/44'/283'/0'/0/0 |
Derivation path |
(static) deriveChild(parentKey, parentChaincode, i, curve) → {Promise.<bip39toalgo.DerivationNode>}
Derives child key from parent key data using SLIP10 specs
- Source:
Parameters:
Name | Type | Description |
---|---|---|
parentKey |
string
|
bip39toalgo.WordArray
|
Parent node private key |
parentChaincode |
bip39toalgo.WordArray
|
Parent node chain code |
i |
number
|
Current path index |
curve |
bip39toalgo.CurveParams
|
Curve params |
(static) deriveChildKhoLaw(node, i) → {Promise.<bip39toalgo.DerivationNode>}
Derive child key by implementing paper from D. Khovratovich and J. Law "BIP32-Ed25519: Hierarchical Deterministic Keys over a Non-linear Keyspace"
- Source:
Parameters:
Name | Type | Description |
---|---|---|
node |
bip39toalgo.DerivationNode
|
Parent node |
i |
number
|
Current path index |
(static) deriveMnemonic(mnemonic, method, pathopt, passphraseopt) → {Promise.<bip39toalgo.DerivationNode>}
Derives Algorand's secret from BIP39 mnemonic and using given method and path
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
mnemonic |
string
|
BIP39 mnemonic |
|
method |
string
|
Derivation method |
|
path |
string
|
<optional> |
Derivation path |
passphrase |
string
|
<optional> |
BIP39 mnemonic passphrase |
Example
// Returns:
// 7b6ec191cb3b77f6593cefaddf0489af47bb65e0f4480391bcedd00caa822d11
// NMRBZNN2RXUNVLVVPVD53GJV6A2A55QWJXMD2KG42N7NQZB67WXYFGONVA
// 1. sorry 6. laugh 11. setup 16. employ 21. favorite
// 2. aisle 7. tissue 12. kit 17. call 22. gaze
// 3. similar 8. upset 13. isolate 18. venture 23. maximum
// 4. royal 9. volcano 14. bonus 19. item 24. abandon
// 5. unveil 10. beach 15. poem 20. snack 25. leave
mnemonic = 'all all all all all all all all all all all all all all all all all all all all all all all feel'
deriveMnemonic(mnemonic,"slip10-ed25519", "m/44'/283'/0'/0/0")
.then(node => {
console.log(node.algo.key)
console.log(node.algo.address)
words = prettifyWordsTTB(node.algo.words)
console.log(words)
})
(static) deriveMnemonicTest(testVector) → {void}
Derive mnemonic for given test vector
- Source:
Parameters:
Name | Type | Description |
---|---|---|
testVector |
Object
|
Returns:
- Type:
-
void
Nothing
(static) encodeXY(x, y)
Encodes elliptic curve X-coordinate into Y-coordinate
- Source:
Parameters:
Name | Type | Description |
---|---|---|
x |
string
|
X-coordinate bytes in hexadecimal |
y |
string
|
Y-coordinate bytes in hexadecimal |
(static) ent2bip39words(ent) → {Array.<string>}
Translates entropy into BIP39 mnemonic words
- Source:
Parameters:
Name | Type | Description |
---|---|---|
ent |
string
|
Returns:
- Type:
-
Array.<string>
BI39 words list
(static) entCheckBits(ent, cs) → {string}
Computes BIP39 checksum bits for given entropy
- Source:
Parameters:
Name | Type | Description |
---|---|---|
ent |
string
|
Entropy bytes in hexadecimal |
cs |
number
|
Checksum length in bits |
Returns:
- Type:
-
string
Checksum bits
(static) findBip39Word(word) → {string|undefined}
Find word in BIP39 wordlist
- Source:
Parameters:
Name | Type | Description |
---|---|---|
word |
string
|
BIP39 word to search |
Returns:
- Type:
-
string
|undefined
Found word
(static) getPublicKey(key, curve) → {string}
Computes public key for given curve
- Source:
Parameters:
Name | Type | Description |
---|---|---|
key |
string
|
bip39toalgo.WordArray
|
Private key |
curve |
bip39toalgo.CurveParams
|
Curve parameters |
Returns:
- Type:
-
string
Public key in hexadecimal
(static) numsToWords(nums) → {Array.<string>}
Convert integers to BIP39 words
- Source:
Parameters:
Name | Type | Description |
---|---|---|
nums |
Array.<number>
|
11-bit unsigned integers |
Returns:
- Type:
-
Array.<string>
List of BIP39 words
(static) parseMnemonic(mnemonic) → {bip39toalgo.Bip39ParsedMnemonicData}
Parses BIP39 mnemonic and verifies validity
- Source:
Parameters:
Name | Type | Description |
---|---|---|
mnemonic |
string
|
Returns:
(static) prettifyWordsLTR(words) → {string}
Formats list of 25 words in a 5x5 grid, indexed Left-to-Right
- Source:
Parameters:
Name | Type | Description |
---|---|---|
words |
bip39toalgo.AlgoSecretWords
|
Algorand secret words |
Returns:
- Type:
-
string
Formatted words list with line breaks
(static) prettifyWordsTTB(words) → {string}
Formats list of 25 words in a 5x5 grid, indexed Top-to-Bottom
- Source:
Parameters:
Name | Type | Description |
---|---|---|
words |
bip39toalgo.AlgoSecretWords
|
Algorand secret words |
Returns:
- Type:
-
string
Formatted words list with line breaks
(static) randomAlgoAddress() → {bip39toalgo.AlgoAddressData}
Generates random Algorand address
- Source:
(static) randomWords(size) → {string}
Generates random BIP39 words
- Source:
Parameters:
Name | Type | Description |
---|---|---|
size |
number
|
Entropy size in bytes (16|20|24|28|32) |
Returns:
- Type:
-
string
Mnemonic words
(static) rootKey(seed, curve, methodopt) → {Promise.<bip39toalgo.DerivationNode>}
Derive root key (master node) using SLIP10 specs or implementing paper from D. Khovratovich and J. Law "BIP32-Ed25519: Hierarchical Deterministic Keys over a Non-linear Keyspace"
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
seed |
bip39toalgo.WordArray
|
Entropy to derive root key |
||
curve |
bip39toalgo.CurveParams
|
Curve parameters |
||
method |
string
|
<optional> |
'slip10' |
Derivation method (slip10|kholaw) |
(static) testMnemonicWords(wordopt, sizeopt)
Generate dummy BIP39 mnemonic for testing
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
word |
string
|
<optional> |
'all' |
Dummy BIP39 word to repeat |
size |
number
|
<optional> |
24 |
Number of words (12|15|18|21|24) |
Examples
// returns "dog dog dog dog dog dog dog dog dog dog dog dose"
console.log(testMnemonicWords('dog',12).join(' '))
// returns "boy boy boy boy boy boy boy boy boy boy boy boy boy boy boss"
console.log(testMnemonicWords('boy',15).join(' '))
// returns "bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar anxiety"
console.log(testMnemonicWords('bar',24).join(' '))
(static) tests() → {void}
Run tests and log to console
- Source:
Returns:
- Type:
-
void
Nothing
Type Definitions
AlgoAddressData
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
key |
string
|
||
pub |
string
|
||
address |
string
|
||
chk |
string
|
<optional> |
|
words |
bip39toalgo.AlgoSecretWords
|
<optional> |
Algorand secret words |
- Source:
Type:
-
Object
AlgoData
Properties:
Name | Type | Description | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
algo |
Object
|
||||||||||||||||||||||||||
Name | Type | Attributes | Description |
---|---|---|---|
key |
string
|
Algorand private key in hexadecimal |
|
address |
address
|
Algorand public wallet address |
|
words |
Array.<string>
|
Algorand mnemonic (25 words) |
|
pub |
string
|
Algorand public key in hexadecimal |
|
chk1 |
string
|
<optional> |
Public key cheksum |
chk2 |
string
|
<optional> |
Mnemonic cheksum |
- Source:
Type:
-
Object
AlgoMnemonicData
Properties:
Name | Type | Description |
---|---|---|
words |
bip39toalgo.AlgoSecretWords
|
Algorand secret words |
chk |
string
|
Mnemonic checksum |
- Source:
Type:
-
Object
AlgoParsedMnemonicData
Properties:
Name | Type | Description |
---|---|---|
mnemonic |
string
|
Parsed Algorand mnemonic |
original |
string
|
Original mnemonic normalized (NFKD) |
words |
bip39toalgo.AlgoSecretWords
|
Algorand secret words |
key |
string
|
Private key in hexadecimal |
checksum |
string
|
Mnemonic checksum |
valid |
boolean
|
Mnemonic validity |
- Source:
Type:
-
Object
AlgoSecretWords
Algorand secret mnemonic (25 BIP39 words)
- Source:
Type:
-
Array.<string>
Bip39ParsedMnemonicData
Properties:
Name | Type | Description |
---|---|---|
mnemonic |
string
|
Parsed Algorand mnemonic |
original |
string
|
Original mnemonic normalized (NFKD) |
words |
Array.<string>
|
Algorand secret words |
checkbits |
string
|
Checksum bits |
valid |
boolean
|
Mnemonic validity |
- Source:
Type:
-
Object
CurveParams
Stores order of elliptic curve and SLIP10 modifier for master key generation.
Properties:
Name | Type | Description |
---|---|---|
name |
string
|
Name of elliptic curve |
modifier |
string
|
Key to use in HMAC-SHA512 as per SLIP10 |
order |
BigInt
|
Order of the elliptic curve |
- Source:
Type:
-
Object
DerivationNode
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
kL |
string
|
bip39toalgo.WordArray
|
Leftmost 32 bytes of private key |
|
kR |
string
|
bip39toalgo.WordArray
|
Rightmost 32 bytes of private Key |
|
A |
string
|
bip39toalgo.WordArray
|
<optional> |
32 bytes public key (y coordinatte only) |
c |
string
|
bip39toalgo.WordArray
|
<optional> |
32 bytes chain code |
P |
string
|
bip39toalgo.WordArray
|
<optional> |
32 bytes public key |
algo |
bip39toalgo.AlgoData
|
<optional> |
- Source:
Type:
-
Object
WordArray
Properties:
Name | Type | Description |
---|---|---|
words |
Array.<number>
|
Bytes array as signed integers |
sigBytes |
number
|
- Source:
Type:
-
Object