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:

  1. Base32 Encoding/Decoding: Represent binary data with custom character sets for various encoding needs.

  2. SS58 Encoding/Decoding: Encode Substrate-based blockchain addresses and public keys in a compact and human-readable format.

  3. Base58 and Base58 XMR Encoding/Decoding: Efficiently encode binary data, with Base58 XMR tailored for Monero addresses.

  4. Base58Check Encoding/Decoding: Supports checksum creation and verification in blockchain-related data.

  5. Bech32 Encoding/Decoding: Including Bech32 for Bitcoin Cash (BCH) and Bech32 SegWit addresses, offering improved error detection and readability for blockchain addresses.

  6. Hex Encoding/Decoding: Encode binary data as hexadecimal and decode it back.

  7. Web3 Secret Storage Definition: Securely store and manage private keys using the Web3 Secret Storage format.

  8. 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:

  1. CBOR Encoding/Decoding: Compact representation of structured data with cross-language compatibility.

Cryptographic Algorithms:

  1. 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:

  1. Strobe Protocol: A framework for cryptographic protocols, providing simplicity and compatibility for a variety of devices.

Zero-Knowledge Proofs:

  1. Merlin Transcript: A STROBE-based transcript construction for zero-knowledge proofs.

Schnorrkel-based Cryptography:

  1. Schnorrkel-based Cryptographic Operations: Includes Schnorrkel for signing, verification, key management, and more.

Blockchain Support:

  1. BIP39 Mnemonic Generation and Management: Generate BIP39-compliant mnemonic phrases and manage cryptographic keys derived from them.

  2. Substrate Key, Address, and Coin Management: Efficiently manage keys and addresses in Substrate-based blockchains.

  3. Monero Key, Address, and Coin Management: Handle Monero cryptocurrency with support for key management, address derivation, and Monero mnemonics.

  4. BIP32 Multi-Curve Key Derivation and Address Management: Derive keys across multiple cryptographic curves with BIP32 compliance.

  5. SLIP10 Key Derivation and Management: Advanced key derivation capabilities.

  6. BIP38 Secure Paper Wallets: Encrypt private keys to safeguard cryptocurrency assets.

  7. BIP44 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins in compliance with the BIP44 standard.

  8. BIP49 Key, Address, and Coin Management: Similar to BIP44, with compliance to the BIP49 standard.

  9. BIP84 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins, complying with the BIP84 standard.

  10. BIP86 Key, Address, and Coin Management: Manage keys, derive addresses, and handle various coins, complying with the BIP84 standard.

  11. 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/core/tags
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