Crates.io | artimonist |
lib.rs | artimonist |
version | 2.0.1 |
created_at | 2025-01-15 07:50:48.593285+00 |
updated_at | 2025-08-22 01:03:43.410341+00 |
description | A tool for generating mnemonics and wallets. |
homepage | https://artimonist.org/ |
repository | https://github.com/artimonist/core/ |
max_upload_size | |
id | 1517230 |
size | 434,281 |
let mut mx = [[None; 7]; 7];
mx[1][1] = Some('🍔');
mx[1][5] = Some('🍟');
mx[3][3] = Some('🍩');
mx[5][1] = Some('🍦');
mx[5][5] = Some('🌭');
let diagram = SimpleDiagram(mx);
🍔 | 🍟 | |||||
🍩 | ||||||
🍦 | 🌭 | |||||
let master = diagram.to_master("🚲🍀🌈".as_bytes())?;
let mnemonic = master.bip85_mnemonic(0, 15, Default::default())?;
"nice dumb debris type pair until convince pet depend dragon seed exchange rebel belt alcohol"
let priv_key = master.bip85_wallet(0)?;
L3X74sTsPBpoJx7MNWt36qnsGE1ubdf2BQVTczU7i14D94BhNdmc
let xpriv = master.bip85_master(0)?;
xprv9s21ZrQH143K3Dm1EavEpwYyfZD7su3245k5CES8qnt6VVxznxnPqMnUx5cFLJDao9mcyELm9UVNbBTMYodNabKmvcj3WazUaRNqpz4qd7A
let pwd = master.bip85_password(0, 20, Password::Emoji)?;
🐬🔑🍎🐔🔒🚗🐸💧🌷✋🐍🚲💀💪💀🍄✈🍀🍉⚡
mnemonic 12 words entropy = (2048)¹² = (2¹¹)¹² = 2¹³²
mnemonic 24 words entropy = (2048)²⁴ = (2¹¹)²⁴ = 2²⁶⁴
(In fact, because the tail of 4bits/8bits is a checksum, the real entropy is 2¹²⁸/2²⁵⁶.)
emoji characters amount 1,431 ≈ 2¹⁰
9 cells permutation in 7 * 7 grid = (A₄₉⁹) = 49! / 40! ≈ 2⁴⁹
9 emoji characters in simple diagram = (2¹⁰)⁹ * 2⁴⁹ = 2¹³⁹ > 2¹³²
18 cells permutation in 7 * 7 grid = (A₄₉¹⁸) = 49! / 31! ≈ 2⁹⁵
18 emoji characters in simple diagram = (2¹⁰)¹⁸ * 2⁹⁵ = 2²⁷⁵ > 2²⁶⁴
So, 9 emoji characters provide the equivalent encryption strength of 12 mnemonics.
and 18 emoji characters provide the equivalent encryption strength of 24 mnemonics.
mnemonic words | emoji characters | entropy |
---|---|---|
12 | 9 | 2¹³⁹ |
15 | 11 | 2¹⁷⁰ |
18 | 13 | 2²⁰⁰ |
21 | 16 | 2²⁴⁵ |
24 | 18 | 2²⁷⁵ |
unicode characters amount 155,063 ≈ 2¹⁷
6 cells permutation in 7 * 7 grid = (A₄₉⁶) = 49! / 43! ≈ 2³³
6 unicode characters in simple diagram = (2¹⁷)⁶ * 2³³ = 2¹³⁵ > 2¹³²
12 cells permutation in 7 * 7 grid = (A₄₉¹²) = 49! / 37! ≈ 2⁶⁵
12 unicode characters in simple diagram = (2¹⁷)¹² * 2⁶⁵ = 2²⁶⁹ > 2²⁶⁴
So, 6 unicode characters provide the equivalent encryption strength of 12 mnemonics.
and 12 unicode characters provide the equivalent encryption strength of 24 mnemonics.
mnemonic words | unicode characters | entropy |
---|---|---|
12 | 6 | 2¹³⁵ |
15 | 8 | 2¹⁸⁰ |
18 | 9 | 2²⁰² |
21 | 11 | 2²⁴⁷ |
24 | 12 | 2²⁶⁹ |
ComplexDiagram can be filled with 50 unicode characters in a cell, providing better encryption strength.
(In fact, higher entropy values are meaningless because the length of the private key is 256 bits. So, we support multisig address derivation.)