Selected BIPs "schematically"

bips_selected | bips
| AgamaPoint | bip39 | mm_mind | mm_chart | iTing | g_m_s | G |

+/- BIP39
graph LR; %% left-right bin(random
coins
dice
cards
...)--binary (base2)
1-6 (base6)
(base52)-->e; t(Trezor
Model ONE, T)-.->e; cat(catropy
HW entropy generator)-->e; e(( entropy
.: ..: :.. . ::.
128b/256b ))-->|entropy_to_
phrase|mp[mnemonic phrase
/words]; ests(external
backup)-.restore.->mp; ests-->e; e-.export.->ests; mp-.->ms(master seed); seed-.->ms; e-.->ms; mp-. seed_to_
entropy .->e; mp-->|mnemo_to_seed|seed(( seed
bytes/hex )); pp( + passphrase).->seed; mp-.->pp; t<--init / restore-->mp; linkStyle 4 stroke:#f00,stroke-width:3px,stroke-dasharray: 5, 5; linkStyle 5 stroke:#00f,stroke-width:3px,stroke-dasharray: 3, 5; linkStyle 7 stroke:#555,stroke-width:3px,stroke-dasharray: 2, 5; linkStyle 8 stroke:#555,stroke-width:3px,stroke-dasharray: 2, 5; linkStyle 10 stroke:#f00,stroke-width:3px,stroke-dasharray: 5, 5; linkStyle 14 stroke:#f00,stroke-width:3px; classDef redB stroke:#f00,stroke-width:3px; class mp redB;

Mnemonic code for generating deterministic keys - BIP39
... AgamaPoint Python testing lib:
entropy = entropy_normalize(entropy) # entropy bin, dec or hex // hex_to_bin(e)..

phrase = bip39f.entropy_to_phrase(entropy) # mnemonic phrase == words
binary_seed = phrase_to_key(phrase)

mnemo_seed = mnemo_to_seed(phrase)
seed_bytes = mnemo.to_seed(phrase, passphrase) # hexadecimal_str: seed_bytes.hex()

root_key = create_root_key(seed_bytes)
...

Calculate I = HMAC-SHA512(Key = "Bitcoin seed", Data = S)
Split I into two 32-byte sequences, IL and IR.
Use parse256(IL) as master secret key, and IR as master chain code.

+/- BIP32
graph LR; seed(( seed
bytes/hex Chat icon)); seed-->privk(private key Chat icon); subgraph simple_tx Alice TX?; privk-->|ECC|pubk[public key Chat icon]; privk-->sig(signature
or encrypt
with shared key
); pubk-.->verif(verification); verif-->yn(yes/no); msg(message
or hash_msg)-.->sig; msg-.->verif; sig-.->verif; end pubk-->|SHA-256
Hierarchical
Deterministic
Wallets
|addr(address); bob(...send BTC to:)-->addr bob-.P2PK.->pubk addr-.1***
P2PKH.->std(BIP44 Standard) addr-.3***
P2SH.->sqw(BIP49 Segwit) addr-.bc1p
P2WPKH.->nsq(BIP84 New Segwit) addr-.bc1q.->tap(Taproot) addr-.bc1x.->etc(...) classDef plain fill:#ddd,stroke:#fff,stroke-width:3px,color:#000; classDef k8s fill:#326ce5,stroke:#fff,stroke-width:3px,color:#fff; classDef cluster fill:#333,stroke:#00ff00,stroke-width:2px,color:#00ff00; classDef redB stroke:#f00,stroke-width:3px; classDef bluB stroke:#00f,stroke-width:3px; classDef greB stroke:#0f0,stroke-width:3px; class service,pod1,pod2 k8s; class client plain; class cluster cluster; class privk redB; class pubk bluB; class addr greB;
Hierarchical Deterministic Wallets - BIP32
m / purpose’ / coin_type’ / account’ / change / address_index
coin = Bitcoin() # Main default

# BIP39-BIP44 | Standard Wallets
# Multi-Account Hierarchy for Deterministic Wallets
wallet = coin.wallet(words)
addr0 = wallet.new_receiving_address()

# BIP39-BIP49 | Segwit Wallets 
# Derivation scheme for P2WPKH-nested-in-P2SH based accounts
wallet = coin.p2wpkh_p2sh_wallet(words)
...

# BIP39-BIP84 | New Segwit Wallets
# Derivation scheme for P2WPKH based accounts
wallet = coin.p2wpkh_wallet(words)
...
mm_bips | mm_mind | mm_chart |
github/mermaid | diagram gide | live/edit | py/agama_point_crypto