Hierarchical Deterministic (HD) Wallet
Website: https://hdwallet.io
Documentation: https://hdwallet.readthedocs.io
Source-Code: https://github.com/talonlab/python-hdwallet
Manual: https://talonlab.gitbook.io/hdwallet/manual
Powered by Talon-Lab
Overview
The HDWallet Project delivers a unified solution for generating Hierarchical Deterministic Wallets compatible with 200+ cryptocurrency protocols. By integrating diverse cryptographic standards including entropy generation methods, mnemonic systems, elliptic curve algorithms (ECC), HD derivation paths, and address formats HDWallet streamlines secure multi-asset management. Designed for developers and users alike, it offers three interfaces: a command-line tool (CLI), an offline desktop application, and a web-based platform, ensuring flexibility across security and usability needs.
Introduction
The fragmented cryptocurrency ecosystem requires users to manage multiple wallets, each adhering to distinct protocols. This complexity increases security risks and operational inefficiencies. HDWallet addresses these challenges by unifying key management under a single, deterministic framework. Starting from a master seed, HDWallet generates hierarchical keys and addresses for diverse blockchain networks, enabling users to securely manage thousands of assets through one platform.
Core Innovation
Hierarchical Deterministic (HD) Structure: Rooted in BIP32, HDWallet derives all keys and addresses from a single master seed. Users back up only the seed (via a mnemonic phrase) to restore entire wallets, reducing key management complexity.
For more: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
Why HDWallet Matters
- Complete Privacy & Autonomy
Most wallets today are online or custodial, meaning they can be traced or even locked by third parties. HDWallet is designed to operate fully offline, ensuring no IP logs, no forced KYC, and no external oversight—giving you control over your keys and transactions.
- Unlimited Address Generation
Generate as many addresses as you need, for as many blockchains as you want. Keep your holdings as decentralized and private as possible with streamlined address management.
- Open‑Source & Community‑Driven
HDWallet’s codebase is publicly available, reflecting our commitment to transparency. We welcome contributions from developers, security researchers, and community members to help us improve and evolve.
How It Works
The HDWallet structure begins with Master Entropy, which is derived from a chosen Strength level. This entropy serves as the core randomness for generating the master keys. In this system, Master Entropy can be either generated from scratch or derived from a Master Mnemonic phrase. This two-way conversion allows users to either create entropy first or start with a mnemonic phrase, depending on their preference or specific use case. The Master Mnemonic, a human-readable representation of entropy, is generated using a specific word list that varies by Language. This mnemonic provides users with a convenient way to back up their wallets.
Once a Master Mnemonic is defined, it can also be converted back into Entropy for further cryptographic operations. The mnemonic-derived entropy is then transformed into a Master Seed, forming the foundation of the HD wallet’s hierarchical key structure. This seed is used to derive the Master Node (m/), a root entity from which all private and public keys are subsequently derived. The Root Extended (X) Private Key and Root Extended (X) Public Key are generated from this master node, forming the primary keys in the hierarchical structure.
Following the root, Child Keys (m/*) are derived from the Root Extended Private Key and, for non-hardened keys, the Root Extended Public Key. These child keys can be extended into additional layers, allowing for an almost infinite number of addressable accounts. The Extended (X) Private Key and Extended (X) Public Key are produced at each hierarchical level to support derivation paths that comply with standards like BIP32 and BIP44.
The Private Key can be converted into Wallet Import Format (WIF), which offers compatibility with various wallet applications. The Public Key derived from the private key enables the generation of the final Address the unique identifier for cryptocurrency transactions. This systematic structure of key derivation ensures that HDWallet can securely manage a vast array of addresses and keys, reducing complexity and maintaining compatibility with multiple blockchain protocols.
Features and Capabilities
Multi-Currency Support
HDWallet is designed to handle over 200 different cryptocurrency protocols, enabling users to manage a wide range of digital assets within a single platform. This eliminates the need for multiple wallets and simplifies portfolio management.
Advanced Cryptographic Support
Integrates various Elliptic Curve Cryptography (ECC) algorithms, including Kholaw-Ed25519 and multiple SLIP10 variants. This ensures compatibility with the cryptographic requirements of numerous cryptocurrencies.
Hierarchical Deterministic (HD) Standards
Supports multiple HD standards and derivation paths such as BIP32, BIP44, BIP49, BIP84, BIP86, and a proprietary HDW derivation protocol. This flexibility allows users to choose derivation methods that best suit their needs.
Diverse Address Formats
Accommodates a wide range of address formats, including XinFin, Cosmos, Ethereum, Bitcoin's P2PKH, P2SH, and P2TR (Taproot), ensuring seamless interoperability across different blockchain networks.
Entropies, Mnemonics, and Seeds Support
Compatible with various entropy and mnemonic standards like Algorand, BIP39, Electrum V1 and V2, and Monero. This allows users to create wallets using familiar and widely accepted methods.
Flexible User Interfaces
Command Line Interface (CLI) - Tailored for developers and advanced users who prefer or require command-line operations. It allows for easy integration into scripts and automation tools.
Desktop Application (Offline Capable) - Offers enhanced security by functioning without internet connectivity. Users can access all features of HDWallet while minimizing exposure to online threats.
Web-Based Application - Provides convenient access to essential wallet functionalities for users who prefer online management. It includes appropriate security measures to protect user data.
Integration of XinFin (XDC) Wallet into HDWallet
We are excited to announce that XinFin (XDC), a leading enterprise-grade hybrid blockchain platform, is now fully supported within the HDWallet ecosystem. This integration enables users and developers to securely generate, manage, and transact with XDC tokens and addresses directly through HDWallet’s unified framework.
Features of XinFin (XDC) Wallet Support
-
Derivation Path Compliance: XDC adheres to the BIP44 standard with the coin type index 550 (as defined in SLIP-44). example derivation path
m/44'/550'/0'/0/0
for the first XDC address. -
Address Format: XDC addresses use a hexadecimal format prefixed with xdc (e.g.,
xdc4c5496c...
), compatible with the Ethereum Virtual Machine (EVM). - Cryptographic Compatibility: Utilizes secp256k1 elliptic curve cryptography, aligning with Ethereum and other EVM-based chains.
- Seamless Interoperability: Generate XDC wallets alongside 200+ other cryptocurrencies within the same HDWallet instance.
Examples
Generate an XinFin (XDC) Wallet using:
Library
Installation: pip install hdwallet
#!/usr/bin/env python3
from hdwallet import HDWallet
from hdwallet.mnemonics import BIP39Mnemonic
from hdwallet.cryptocurrencies import XinFin
from hdwallet.hds import BIP44HD
from hdwallet.derivations import (
BIP44Derivation, CHANGES
)
# Initialize XinFin HDWallet
hdwallet: HDWallet = HDWallet(
cryptocurrency=XinFin, hd=BIP44HD, network=XinFin.NETWORKS.MAINNET, passphrase=None # "talonlab"
).from_mnemonic( # Get XinFin HDWallet from mnemonic phrase
mnemonic=BIP39Mnemonic(
mnemonic="abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
)
).from_derivation( # Drive from BIP44 derivation
derivation=BIP44Derivation(
coin_type=XinFin.COIN_TYPE, account=0, change=CHANGES.EXTERNAL_CHAIN, address=(0, 10) # or "0-10"
)
)
print("Mnemonic:", hdwallet.mnemonic())
print(f"Base HD Path: m/44'/{XinFin.COIN_TYPE}'/0'/0/<address>", "\n")
# Print dived XinFin HDWallet information's
for derivation in hdwallet.dumps(exclude={"root", "indexes"}):
# Print path, address and private_key
print(f"{derivation['at']['path']} {derivation['address']} {derivation['private_key']}")
Output
Mnemonic: abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
Base HD Path: m/44'/550'/0'/0/<address>
m/44'/550'/0'/0/0 xdcF4f4Ec5A2380A1599ff802b798FC002F83a001A8 f5f43f03dd8bc815a911f505156fe0c67a3b390db3839472ca4995fd6087df25
m/44'/550'/0'/0/1 xdcc8725Efa8B6684B259E129DcDd14102d00b284F1 d22441e70e285c497db9a4248e7bc79db46688ae06637ba19095ab7a75a2acd9
m/44'/550'/0'/0/2 xdcAA8A837d4cCb6a8cE34Ee9544AaEA00e58150Bc8 869b17599e815c27eb606ea85be952d6ac9ca1dcb180b1fd4856362bde884ebe
m/44'/550'/0'/0/3 xdcE025663931eA8eB905e26e66633f5C3CCA3B4145 ef8819ed6e1f48c7a7acf1426fcb3d55c24bee46410ef1f63d4f9534748fdd9f
m/44'/550'/0'/0/4 xdc8D466B82b804f415364a4B59B6edc78FDEbE88d4 120d976fe4a08c6cf04982dddbb34ba5a3d3c30e6666971ef3f0fb18c5c56d2b
m/44'/550'/0'/0/5 xdc09607b5a0AbFA94518211f38C9c96f571168cFd9 f852caa5d372593d278be40a2b4b445f8f741db1caa21d4d7c125481b3fa766a
m/44'/550'/0'/0/6 xdc46ad48050f6fA70660a6336d31F1066f8f0a2d42 4559966bc88200a6ef75e83039a34c5747b38c0b408279ce86773bfe4579d713
m/44'/550'/0'/0/7 xdcA87671F844980193ED4F368176e28A769ECA8993 7ff15110b50d35a5882b8cacfd5ebdc2591da5044187379bd9de9ee4d0d0096f
m/44'/550'/0'/0/8 xdccBf6cC04c0814566eeF2040FF95B11E8564D6B5e 6e2ebd15054cca73f2bf1e1873bd8e50affe6b922fab76e336ed8c53c45438c7
m/44'/550'/0'/0/9 xdc7C2745fF0ed2e8Ff28857bdb642EC998B78f1a48 9ef9e1fd77bc60264645cd926c02a4f302602f59e5f9fdbe13e75d00cd4c3242
m/44'/550'/0'/0/10 xdcD6bf428Fc361A3a94357b27672a7AecDbf5d5194 1302bb68e8167f364aecab41a7ac0809c054db36941817edc9633061dab92416
Command Line Interface (CLI)
Installation: pip install hdwallet[cli]
hdwallet dumps --symbol XDC --hd BIP44 --derivation BIP44 --mnemonic "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" --address "0-10" --format csv --include-header
Output
at:path address public_key private_key
m/44'/550'/0'/0/0 xdcF4f4Ec5A2380A1599ff802b798FC002F83a001A8 025db1bc2f5fd23435367b26017537a2fc3208705740412eaff7b92103287a95ac f5f43f03dd8bc815a911f505156fe0c67a3b390db3839472ca4995fd6087df25
m/44'/550'/0'/0/1 xdcc8725Efa8B6684B259E129DcDd14102d00b284F1 03368d81355afa7f34fa88e6cffc60b1feccfab9bf66c5893ff2abfdd556b7837b d22441e70e285c497db9a4248e7bc79db46688ae06637ba19095ab7a75a2acd9
m/44'/550'/0'/0/2 xdcAA8A837d4cCb6a8cE34Ee9544AaEA00e58150Bc8 03edd88a1f61fd3be5f659041bae8cd56f04cd4ee4b4ff7c3a49182c011b0f9993 869b17599e815c27eb606ea85be952d6ac9ca1dcb180b1fd4856362bde884ebe
m/44'/550'/0'/0/3 xdcE025663931eA8eB905e26e66633f5C3CCA3B4145 020e090d38bb3a1bde9d80a69ef8c46ebe32f619dd83103ee19fa49215db970847 ef8819ed6e1f48c7a7acf1426fcb3d55c24bee46410ef1f63d4f9534748fdd9f
m/44'/550'/0'/0/4 xdc8D466B82b804f415364a4B59B6edc78FDEbE88d4 034148ed9f91c5fc532d47f3b6b3ecddc7b30efbb0af3fe46f4028f6a392ce64a8 120d976fe4a08c6cf04982dddbb34ba5a3d3c30e6666971ef3f0fb18c5c56d2b
m/44'/550'/0'/0/5 xdc09607b5a0AbFA94518211f38C9c96f571168cFd9 0297de06ccd22f30b09fd726fc5ab6c10d4e083c6efb4a518237e54024121799d4 f852caa5d372593d278be40a2b4b445f8f741db1caa21d4d7c125481b3fa766a
m/44'/550'/0'/0/6 xdc46ad48050f6fA70660a6336d31F1066f8f0a2d42 03d5eefae463ab2b5c41f3f96a528821b49a0df9322f5f9657d1c6bf6d3a347ca3 4559966bc88200a6ef75e83039a34c5747b38c0b408279ce86773bfe4579d713
m/44'/550'/0'/0/7 xdcA87671F844980193ED4F368176e28A769ECA8993 033f25ca82ec956770a446e8180abde3eed834046f939414a40cff0344b069e386 7ff15110b50d35a5882b8cacfd5ebdc2591da5044187379bd9de9ee4d0d0096f
m/44'/550'/0'/0/8 xdccBf6cC04c0814566eeF2040FF95B11E8564D6B5e 03b16b662a0767cca44d6119a783b704365008a969049cac938b8f94baa7bb69ad 6e2ebd15054cca73f2bf1e1873bd8e50affe6b922fab76e336ed8c53c45438c7
m/44'/550'/0'/0/9 xdc7C2745fF0ed2e8Ff28857bdb642EC998B78f1a48 0286512efbf08a6895be490de73e149ebaa128f86186b08578bf7380dadee6466b 9ef9e1fd77bc60264645cd926c02a4f302602f59e5f9fdbe13e75d00cd4c3242
m/44'/550'/0'/0/10 xdcD6bf428Fc361A3a94357b27672a7AecDbf5d5194 035dcf3c7b91d4a7ab1d4f179bccad0a95ed09b045c82c23055a063ee3f93d5ec0 1302bb68e8167f364aecab41a7ac0809c054db36941817edc9633061dab92416
Client Desktop Application
Download: https://github.com/talonlab/hdwallet-desktop/releases
Client Online Website
Explore: https://hdwallet.online
Benefits for Users & Developers
- Unified Multi-Chain Management: Manage XDC alongside Bitcoin, Ethereum, Cosmos, and other supported assets in a single wallet.
- Deterministic Security: All XDC keys and addresses derive from a single master seed, ensuring secure backup and recovery.
- Developer-Friendly: Access XDC wallets programmatically via HDWallet’s Python API or CLI with minimal code.
Roadmap
HDWallet V0 (Initial)
Initial release with basic HD wallet functionality, focusing on Bitcoin and Ethereum. Designed as a research-oriented implementation to explore HD wallet concepts.
HDWallet V1
Expanded support for 140+ cryptocurrencies and implemented standard derivations like BIP32, BIP44, BIP49, and SegWit. Introduced advanced hierarchical structures for wallets.
HDWallet V2
Added a Command Line Interface (CLI) and improved performance and security. Extended cryptocurrency support and enhanced usability for developers.
HDWallet V3 (Current)
Launched a desktop and online wallet platform. Introduced advanced derivations (HDW), expanded mnemonic and ECC support, and added 78+ cryptocurrencies.
HDWallet V4 (Future)
Plan to add Sign/Verify and broader cryptocurrency support. Focus on advanced standards and seamless user experience.
Planned Features:
In-Wallet Sign/Verify: Native support for signing transactions across 200+ protocols (e.g., XDC, EVM chains, UTXO-based assets).
Multi-Signature Wallets: Collaborative transaction authorization via customizable threshold schemes.
Hardware Wallet Integration: Compatibility with Ledger, Trezor, and Keystone devices.
BIP-325 (Signet): Enhanced testing environments for developers.
SLIP-0039 (Shamir Backup): Social recovery for seed phrases.
HDWallet V5 (Future)
Transaction broadcasting, Node integration, and User experience enhancements
Goal
To develop a user‑empowering HD Wallet that maximizes privacy, security, and self‑custody by operating fully offline and supporting limitless cryptocurrency addresses. Our solution aims to eliminate external tracking (e.g., IP or KYC requirements), giving individuals complete ownership of their keys and transactions while seamlessly managing multiple blockchain assets under one unified, private wallet infrastructure.
How You Can Contribute or Sponsor
Make a Donation
We welcome donations in various cryptocurrencies. Every bit counts toward the continued success of HDWallet. Feel free to send any amount to our official donation addresses/public keys.
-
XinFin:
xdcD3cbCB0B6F82A03C715D665b72dC44CEf54e6D9B
-
Ethereum:
0xD3cbCB0B6F82A03C715D665b72dC44CEf54e6D9B
-
Monero:
47xYi7dw4VchWhbhacY6RZHDmmcxZdzPE9tLk84c7hE72bw6aLSMVFWPXxGMEEYofkjNjxoWfnLSHejS6yzRGnPqEtxfgZi
We accept a wide range of cryptocurrencies! If you'd like to donate using another coin, generate an address using the following ECC public keys at https://hdwallet.online
SLIP10-Secp256k1: 029890465120fb6c4efecdfcfd149f8333b0929b98976722a28ee39f5344d29eee
SLIP10-Ed25519: 007ff5643c73e46e6c6a0dfd702894610505423e145dc8a93df19ff44eb011323b
Kholaw-Ed25519: 005a49188ccd3d841dd877d7c00078da5c90452cbd69d4cef7a959f679fcc0e0e3
SLIP10-Ed25519-Blake2b: 0051e8b29f7d0214dc96843cdbdcc071dc65397016ea6f7381f81bf42d76c7357c
SLIP10-Nist256p1: 039ee4e2aadd6f4e7938d164b646c4b424114b8dd57252287151398ba0baf25780
Sponsor Us Directly
If you’re a developer or an organization, consider contributing to our cause. By becoming a sponsor, you’ll receive regular updates on development milestones and have the opportunity to influence project direction.
Contribute Code
If you’re technically inclined, join our developer community! Fork the project, submit pull requests, and help us test and refine new features. We welcome all skill levels.
Spread the Word
Not a coder? No problem. You can still help by sharing our story on social media, writing about HDWallet, or simply telling your friends and colleagues.
Thank You!
Prepared by Meheret (Telegram: https://t.me/meherett)
Discussion (1)