blockchain_utils
Discover a versatile and powerful cryptographic toolkit, carefully crafted in pure Dart to serve developers, businesses, and blockchain enthusiasts across multiple platforms. This package offers a wide array of essential features, including encoding/decoding for various data formats, support for numerous blockchain addresses, robust cryptographic algorithms, mnemonic management, and more – all without relying on external dependencies. Whether you're securing private keys, interacting with blockchain networks, or ensuring data integrity, this cross-platform solution simplifies your crypto journey. Experience a comprehensive set of tools designed to meet your diverse encoding, cryptography, and blockchain needs on iOS, Android, the web, Linux, and beyond.
Features
Encoding and Decoding:
-
Base32 Encoding/Decoding: Represent binary data with custom character sets for various encoding needs.
-
SS58 Encoding/Decoding: Encode Substrate-based blockchain addresses and public keys in a compact and human-readable format.
-
Base58 and Base58 XMR Encoding/Decoding: Efficiently encode binary data, with Base58 XMR tailored for Monero addresses.
-
Base58Check Encoding/Decoding: Supports checksum creation and verification in blockchain-related data.
-
Bech32 Encoding/Decoding: Including Bech32 for Bitcoin Cash (BCH) and Bech32 SegWit addresses, offering improved error detection and readability for blockchain addresses.
-
Hex Encoding/Decoding: Encode binary data as hexadecimal and decode it back.
-
Web3 Secret Storage Definition: Securely store and manage private keys using the Web3 Secret Storage format.
-
UUIDv4 Generation: Generate random UUIDs (Universally Unique Identifiers) following the UUIDv4 standard.
Blockchain Address Encoding/Decoding:
- Zilliqa (ZIL)
- Tezos (XTZ)
- Ripple (XRP)
- Monero (XMR)
- Substrate address
- Solana (SOL)
- P2WPKH
- P2TR
- P2SH
- Bitcoin Cash P2PKH
- Harmony (ONE)
- OKEx
- Neo
- NEAR
- Nano
- Injective
- ICON
- Filecoin
- Ethereum
- Ergo
- EOS
- Elrond
- AVAX
- Atom
- Aptos
- Algorand
- Ada Shelley
- Ada Byron
Binary Data:
- CBOR Encoding/Decoding: Compact representation of structured data with cross-language compatibility.
Cryptographic Algorithms:
- Cryptographic Algorithms and Operations:
- AES (Advanced Encryption Standard)
- ChaCha
- ChaCha20Poly1305
- CRC32 (Cyclic Redundancy Check)
- CTR mode (Counter mode)
- ECB mode (Electronic Codebook mode)
- GCM (Galois/Counter Mode)
- HMAC (Hash-based Message Authentication Code)
- PBKDF2 (Password-Based Key Derivation Function 2)
- Poly1305
- scrypt (Password-based Key Derivation Function)
- XModem CRC
- Blake2b
- Keccak
- MD4 (Message Digest 4)
- MD5 (Message Digest 5)
- Rijndael (AES)
- SHA (Secure Hash Algorithm)
- SHA224
- SHA256
- SHA384
- SHA512
These algorithms provide a wide range of cryptographic functions, including encryption, decryption, message authentication, hashing, and more, to enhance security and data integrity in applications.
Protocols:
- Strobe Protocol: A framework for cryptographic protocols, providing simplicity and compatibility for a variety of devices.
Zero-Knowledge Proofs:
- Merlin Transcript: A STROBE-based transcript construction for zero-knowledge proofs.
Schnorrkel-based Cryptography:
- Schnorrkel-based Cryptographic Operations: Includes Schnorrkel for signing, verification, key management, and more.
Blockchain Support:
-
BIP39 Mnemonic Generation and Management: Generate BIP39-compliant mnemonic phrases and manage cryptographic keys derived from them.
-
Substrate Key, Address, and Coin Management: Efficiently manage keys and addresses in Substrate-based blockchains.
-
Monero Key, Address, and Coin Management: Handle Monero cryptocurrency with support for key management, address derivation, and Monero mnemonics.
-
BIP32 Multi-Curve Key Derivation and Address Management: Derive keys across multiple cryptographic curves with BIP32 compliance.
-
SLIP10 Key Derivation and Management: Advanced key derivation capabilities.
-
BIP38 Secure Paper Wallets: Encrypt private keys to safeguard cryptocurrency assets.
-
BIP44 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins in compliance with the BIP44 standard.
-
BIP49 Key, Address, and Coin Management: Similar to BIP44, with compliance to the BIP49 standard.
-
BIP84 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins, complying with the BIP84 standard.
-
BIP86 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins, complying with the BIP84 standard.
-
Electrum Mnemonic V1 and V2 with Key and Address Management: Support for both Electrum Mnemonic V1 and V2, including SegWit and Standard transactions.
These features make your package a comprehensive solution for encoding, cryptography, blockchain management, BIP39 mnemonic support, and diverse blockchain address encoding and decoding needs.
Example: Explore Our Toolkit
Discover the capabilities of our comprehensive crypto and blockchain toolkit through interactive tests. Visit our test page to access thousands of examples, showcasing pure Dart's cross-platform functionality. Learn encoding, cryptography, address management, mnemonics, and more.
Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository and create a new branch.
- Make your changes and ensure tests pass.
- Submit a pull request with a detailed description of your changes.
Feature requests and bugs
Please file feature requests and bugs in the issue tracker.
Libraries
- base32/base32
- base58/base58
- Library for working with Base58 encoding.
- base58/base58_base
- base58/base58_ex
- base58/base58_xmr
- bech32/bch_bech32
- bech32/bech32
- Library for working with Bech32 encoding.
- bech32/bech32_base
- bech32/bech32_ex
- bech32/bech32_utils
- bech32/segwit_bech32
- binary/binary
- binary/binary_operation
- binary/bit_utils
- binary/tracker
- binary/utils
- bip/address/ada_byron_addr
- bip/address/ada_shelley_addr
- bip/address/addr_dec_utils
- bip/address/addr_key_validator
- bip/address/algo_addr
- bip/address/aptos_addr
- bip/address/atom_addr
- bip/address/avax_addr
- bip/address/bch_addr_converter
- bip/address/decoder
- bip/address/decoders
- AN address_decoder library for decoding blockchain addresses
- bip/address/egld_addr
- bip/address/encoder
- bip/address/encoders
- A address_encoder liberary for encoding blockchain addresses from public keys.
- bip/address/eos_addr
- bip/address/ergo
- bip/address/eth_addr
- bip/address/fil_addr
- bip/address/icx_addr
- bip/address/inj_addr
- bip/address/nano_addr
- bip/address/near_addr
- bip/address/neo_addr
- bip/address/okex_addr
- bip/address/one_addr
- bip/address/p2pkh_addr
- bip/address/p2sh_addr
- bip/address/p2tr_addr
- bip/address/p2wpkh_addr
- bip/address/sol_addr
- bip/address/substrate_addr
- bip/address/trx_addr
- bip/address/xlm_addr
- bip/address/xmr_addr
- bip/address/xrp_addr
- bip/address/xtz_addr
- bip/address/zil_addr
- bip/algorand/algorand
- bip/algorand/mnemonic/algorand_entropy_generator
- bip/algorand/mnemonic/algorand_mnemonic
- bip/algorand/mnemonic/algorand_mnemonic_decoder
- bip/algorand/mnemonic/algorand_mnemonic_encoder
- bip/algorand/mnemonic/algorand_mnemonic_generator
- bip/algorand/mnemonic/algorand_mnemonic_utils
- bip/algorand/mnemonic/algorand_mnemonic_validator
- bip/algorand/mnemonic/algorand_seed_generator
- bip/bip/bip
- The 'bip' library serves as a comprehensive collection of libraries for working with various Bitcoin Improvement Proposals (BIPs) in the realm of cryptocurrency.
- bip/bip/bip32/base/bip32_base
- bip/bip/bip32/base/ibip32_key_derivator
- bip/bip/bip32/base/ibip32_mst_key_generator
- bip/bip/bip32/bip32
- The 'bip32' library provides a comprehensive set of tools for working with BIP-32 Hierarchical Deterministic Wallets, which are commonly used in cryptocurrencies to manage and derive keys.
- bip/bip/bip32/bip32_const
- bip/bip/bip32/bip32_ex
- bip/bip/bip32/bip32_key_data
- bip/bip/bip32/bip32_key_net_ver
- bip/bip/bip32/bip32_key_ser
- bip/bip/bip32/bip32_keys
- bip/bip/bip32/bip32_path
- bip/bip/bip32/khalow/bip32_kholaw_ed25519
- bip/bip/bip32/khalow/bip32_kholaw_ed25519_key_derivator
- bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base
- bip/bip/bip32/khalow/bip32_kholaw_mst_key_generator
- bip/bip/bip32/slip10/bip32_slip10_ed25519
- bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b
- bip/bip/bip32/slip10/bip32_slip10_key_derivator
- bip/bip/bip32/slip10/bip32_slip10_mst_key_generator
- bip/bip/bip32/slip10/bip32_slip10_nist256p1
- bip/bip/bip32/slip10/bip32_slip10_secp256k1
- bip/bip/bip38/bip38
- The 'bip38' library provides tools for working with BIP-38, a standard for encrypting and decrypting private keys in a human-readable format.
- bip/bip/bip38/bip38_addr
- bip/bip/bip38/bip38_base
- bip/bip/bip38/bip38_ec
- bip/bip/bip38/bip38_no_ec
- bip/bip/bip39/bip39
- The 'bip39' library provides a comprehensive set of tools for working with BIP-39 mnemonics, a standard for creating human-readable mnemonic phrases for cryptographic keys.
- bip/bip/bip39/bip39_entropy_generator
- bip/bip/bip39/bip39_mnemonic
- bip/bip/bip39/bip39_mnemonic_decoder
- bip/bip/bip39/bip39_mnemonic_encoder
- bip/bip/bip39/bip39_mnemonic_generator
- bip/bip/bip39/bip39_mnemonic_utils
- bip/bip/bip39/bip39_mnemonic_validator
- bip/bip/bip39/bip39_seed_generator
- bip/bip/bip39/word_list/languages
- The
bip39_menemonic_languages
library provides a collection of mnemonic word lists for different languages as defined in BIP-39 (Bitcoin Improvement Proposal 39). These word lists are used for creating and recovering cryptocurrency wallets. - bip/bip/bip44/base/bip44_base
- bip/bip/bip44/base/bip44_base_ex
- bip/bip/bip44/base/bip44_keys
- bip/bip/bip44/bip44
- The 'bip44' library provides tools for working with BIP-44, a standard for hierarchical deterministic wallets and key derivation in cryptocurrencies.
- bip/bip/bip44/bip44_base
- bip/bip/bip49/bip49
- The 'bip49' library provides tools for working with BIP-49, a standard for hierarchical deterministic wallets and key derivation in cryptocurrencies. Export statement for the BIP-49 base implementation, which includes key derivation and wallet management functions.
- bip/bip/bip49/bip49_base
- bip/bip/bip84/bip84
- The 'bip84' library provides tools for working with BIP-84, a standard for hierarchical deterministic wallets and key derivation in cryptocurrencies.
- bip/bip/bip84/bip84_base
- bip/bip/bip86/bip86
- The 'bip86' library provides tools for working with BIP-86, a standard for hierarchical deterministic wallets and key derivation in cryptocurrencies.
- bip/bip/bip86/bip86_base
- bip/bip/conf/bip44/bip44_coins
- bip/bip/conf/bip44/bip44_conf
- bip/bip/conf/bip49/bip49_coins
- bip/bip/conf/bip49/bip49_conf
- bip/bip/conf/bip84/bip84_coins
- bip/bip/conf/bip84/bip84_conf
- bip/bip/conf/bip86/bip86_coins
- bip/bip/conf/bip86/bip86_conf
- bip/bip/conf/bip_bitcoin_cash_conf
- bip/bip/conf/bip_coin_conf
- bip/bip/conf/bip_coins
- bip/bip/conf/bip_conf_const
- bip/bip/conf/bip_config
- The 'bip_config' library provides configuration files and information related to various BIP (Bitcoin Improvement Proposal) standards, including BIP-44, BIP-49, BIP-84, and BIP-86. It defines coin names, parameters, and coin configuration data for hierarchical deterministic wallets in cryptocurrencies, facilitating wallet development and key derivation for a variety of blockchain networks.
- bip/bip/conf/bip_litecoin_conf
- bip/cardano/bip32/cardano_byron_legacy_bip32
- bip/cardano/bip32/cardano_byron_legacy_key_derivator
- bip/cardano/bip32/cardano_byron_legacy_mst_key_generator
- bip/cardano/bip32/cardano_icarus_bip32
- bip/cardano/bip32/cardano_icarus_mst_key_generator
- bip/cardano/byron/cardano_byron_legacy
- bip/cardano/cardano
- The 'cardano' library provides tools and components related to Cardano blockchain, including key derivation, hierarchical deterministic wallets, mnemonic seed generation, and more.
- bip/cardano/cip1852/cip1852
- bip/cardano/cip1852/conf/cip1852_coins
- bip/cardano/cip1852/conf/cip1852_conf
- bip/cardano/mnemonic/cardano_byron_legacy_seed_generator
- bip/cardano/mnemonic/cardano_icarus_seed_generator
- bip/cardano/shelley/cardano_shelley
- bip/cardano/shelley/cardano_shelley_keys
- bip/coin_conf/coin_conf
- bip/coin_conf/coins_conf
- bip/coin_conf/coins_name
- bip/ecc/bip_ecc
- bip/ecc/curve/elliptic_curve_getter
- bip/ecc/curve/elliptic_curve_types
- bip/ecc/keys/ecdsa_keys
- bip/ecc/keys/ed25519_blake2b_keys
- bip/ecc/keys/ed25519_keys
- bip/ecc/keys/ed25519_kholaw_keys
- bip/ecc/keys/ed25519_monero_keys
- bip/ecc/keys/i_keys
- bip/ecc/keys/nist256p1_keys
- bip/ecc/keys/secp256k1_keys_ecdsa
- bip/ecc/keys/sr25519_keys
- bip/electrum/electrum
- The 'electrum' library provides tools for working with Electrum-style mnemonic phrases and address keys, including version 1 (v1) and version 2 (v2) of Electrum standards.
- bip/electrum/electrum_v1
- bip/electrum/electrum_v2
- bip/electrum/mnemonic_v1/electrum_v1_entropy_generator
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic_encoder
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils
- bip/electrum/mnemonic_v1/electrum_v1_mnemonic_validator
- bip/electrum/mnemonic_v1/electrum_v1_seed_generator
- bip/electrum/mnemonic_v1/wrodlist/languages
- Library for Electrum V1 mnemonic language support.
- bip/electrum/mnemonic_v2/electrum_v2_entropy_generator
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic_encoder
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils
- bip/electrum/mnemonic_v2/electrum_v2_mnemonic_validator
- bip/electrum/mnemonic_v2/electrum_v2_seed_generator
- bip/mnemonic/entropy_generator
- bip/mnemonic/mnemonic
- bip/mnemonic/mnemonic_decoder_base
- bip/mnemonic/mnemonic_encoder_base
- bip/mnemonic/mnemonic_ex
- bip/mnemonic/mnemonic_utils
- bip/mnemonic/mnemonic_validator
- bip/monero/conf/monero_coin_conf
- bip/monero/conf/monero_coins
- bip/monero/conf/monero_conf
- bip/monero/mnemonic/monero_entropy_generator
- bip/monero/mnemonic/monero_mnemonic
- bip/monero/mnemonic/monero_mnemonic_decoder
- bip/monero/mnemonic/monero_mnemonic_encoder
- bip/monero/mnemonic/monero_mnemonic_generator
- bip/monero/mnemonic/monero_mnemonic_utils
- bip/monero/mnemonic/monero_mnemonic_validator
- bip/monero/mnemonic/monero_seed_generator
- bip/monero/mnemonic/words_list/languages
- Library for Monero mnemonic language support.
- bip/monero/monero
- The 'monero' library provides tools for working with Monero cryptocurrency, including configuration data, mnemonic phrases, keys, and address generation.
- bip/monero/monero_base
- bip/monero/monero_exc
- bip/monero/monero_keys
- bip/monero/monero_subaddr
- bip/slip/slip32/slip32
- bip/slip/slip32/slip32_key_net_ver
- bip/slip/slip44/slip44
- bip/slip/slip173/slip173
- bip/substrate/conf/substrate_coin_conf
- bip/substrate/conf/substrate_coins
- bip/substrate/conf/substrate_conf
- bip/substrate/scale/substrate_scale_enc_base
- bip/substrate/scale/substrate_scale_enc_bytes
- bip/substrate/scale/substrate_scale_enc_cuint
- bip/substrate/scale/substrate_scale_enc_uint
- bip/substrate/substrate
- The 'substrate' library provides tools for working with the Substrate blockchain ecosystem, including coin definitions, configuration data, and encoding utilities.
- bip/substrate/substrate_base
- bip/substrate/substrate_ex
- bip/substrate/substrate_keys
- bip/substrate/substrate_path
- bip/wif/wif
- blockchain_utils
- The
blockchain_utils
library provides a collection of utilities and tools for working with various aspects of blockchain and cryptocurrency technologies. - cbor/cbor
- Library for working with Concise Binary Object Representation (CBOR) data format.
- cbor/core/cbor
- cbor/types/base
- cbor/types/bigfloat
- cbor/types/bigint
- cbor/types/boolean
- cbor/types/bytes
- cbor/types/cbor_tag
- cbor/types/datetime
- cbor/types/decimal
- cbor/types/double
- cbor/types/int
- cbor/types/int64
- cbor/types/list
- cbor/types/map
- cbor/types/mime
- cbor/types/null
- cbor/types/regex
- cbor/types/set
- cbor/types/string
- cbor/types/types
- cbor/types/url
- cbor/utils/cbor_utils
- cbor/utils/dynamic_bytes
- cbor/utils/extentions
- cbor/utils/float_utils
- compare/compare
- crypto/crypto/aead/aead
- crypto/crypto/aes/aes
- crypto/crypto/aes/aes_lib
- crypto/crypto/aes/padding
- crypto/crypto/blockcipher/blockcipher
- crypto/crypto/cdsa/cdsa
- The 'cdsa' library provides tools and components for working with various cryptographic algorithms, including elliptic curve cryptography (ECDSA and EDDSA) and related functionality.
- crypto/crypto/cdsa/curve/curve
- crypto/crypto/cdsa/curve/curves
- crypto/crypto/cdsa/ecdsa/private_key
- crypto/crypto/cdsa/ecdsa/public_key
- crypto/crypto/cdsa/ecdsa/signature
- crypto/crypto/cdsa/eddsa/privatekey
- crypto/crypto/cdsa/eddsa/publickey
- crypto/crypto/cdsa/point/base
- crypto/crypto/cdsa/point/ec_projective_point
- crypto/crypto/cdsa/point/edwards
- crypto/crypto/cdsa/point/point
- crypto/crypto/cdsa/point/ristretto_point
- crypto/crypto/cdsa/rfc6979/rfc6979
- crypto/crypto/cdsa/utils/ed25519_utils
- crypto/crypto/cdsa/utils/exp
- crypto/crypto/cdsa/utils/ristretto_utils
- crypto/crypto/cdsa/utils/utils
- crypto/crypto/chacha/chacha
- crypto/crypto/chacha20poly1305/chacha20poly1305
- crypto/crypto/crc32/crc32
- crypto/crypto/crypto
- The 'crypto' library provides a collection of cryptographic algorithms and utilities for various cryptographic operations and security functions.
- crypto/crypto/ctr/ctr
- crypto/crypto/ecb/ecb
- crypto/crypto/gcm/gcm
- crypto/crypto/hash/hash
- The
hash
library provides a collection of cryptographic hashing and HMAC (Hash-based Message Authentication Code) functions for secure data integrity verification and password protection. - crypto/crypto/hmac/hmac
- crypto/crypto/pbkdf2/pbkdf2
- crypto/crypto/poly1305/poly1305
- crypto/crypto/prng/fortuna
- crypto/crypto/schnorrkel/keys/keys
- crypto/crypto/schnorrkel/merlin/transcript
- crypto/crypto/schnorrkel/shnorrkel
- The 'schnorrkel' library provides tools for working with the Schnorrkel digital signature scheme, including key management and cryptographic functions.
- crypto/crypto/schnorrkel/strobe/strobe
- crypto/crypto/scrypt/scrypt
- crypto/crypto/x_modem_crc/x_modem_crc
- crypto/quick_crypto
- exception/exception
- hex/hex
- numbers/big_rational
- numbers/bigint_utils
- numbers/int_utils
- numbers/numbers
- secret_wallet/secret_wallet
- signer/bitcoin_signer
- signer/ecdsa_signing_key
- signer/eth/eth_signature
- signer/eth/evm_signer
- signer/signer
- signer/tron/tron_signer
- signer/xrp_signer
- ss58/ss58
- Library for SS58 address encoding and decoding.
- ss58/ss58_base
- ss58/ss58_ex
- string/string
- tuple/tuple
- uuid/uuid
- UUID Library