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.

This comprehensive package has been shaped by the influence of several key sources, culminating in its development for Dart.

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
  • Ton

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
    • XXhash

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.

  12. TonMnemonic: Support for Ton mnemonics has been added, enabling creation, validation, and seed generation.

These features make your package a comprehensive solution for encoding, cryptography, blockchain management, BIP39 mnemonic support, and diverse blockchain address encoding and decoding needs.

  1. Sign and Verification: Implements classes for signing and verifying transaction digests.
  • Bitcoin (ECDSA, Schnorr)
  • BitcoinCash (EDDSA)
  • Dogecoin (EDDSA)
  • Litecoin (EDDSA)
  • Dash (EDDSA)
  • BSV (EDDSA)
  • Ethereum (EDDSA)
  • Tron (EDDSA)
  • Solana (EDDSA)
  • XRP (EDDSA, ECDSA)
  • Solana (EDDSA, EDDSA Khalow)

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
bip/address/ada/ada
bip/address/ada/ada_addres_type
bip/address/ada/ada_byron_addr
bip/address/ada/ada_shelley_addr
bip/address/ada/gneric_addr_decoder
bip/address/ada/network
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/exception/exception
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/ton_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/bip/bip_coins
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_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/config/bip_bitcoin_cash_conf
bip/bip/conf/config/bip_coin_conf
bip/bip/conf/config/bip_litecoin_conf
bip/bip/conf/const/bip_conf_const
bip/bip/conf/core/coin_conf
bip/bip/conf/core/coins
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/config
bip/coin_conf/constant/coins_conf
bip/coin_conf/models/coin_conf
bip/coin_conf/models/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_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/core/substrate_base
bip/substrate/exception/substrate_ex
bip/substrate/keys/substrate_keys
bip/substrate/path/substrate_path
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/ton/mnemonic/ton_entropy_generator
bip/ton/mnemonic/ton_mnemonic_encoder
bip/ton/mnemonic/ton_mnemonic_generator
bip/ton/mnemonic/ton_mnemonic_language
bip/ton/mnemonic/ton_mnemonic_validator
bip/ton/mnemonic/ton_seed_generator
bip/ton/ton
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/exception/exception
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
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/crypto_ops/const/const
crypto/crypto/cdsa/crypto_ops/crypto_ops
crypto/crypto/cdsa/crypto_ops/exception/exception
crypto/crypto/cdsa/crypto_ops/models/models
crypto/crypto/cdsa/crypto_ops/operations/ops
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/keys
crypto/crypto/cdsa/eddsa/keys/privatekey
crypto/crypto/cdsa/eddsa/keys/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/crc16/crc16
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/prng/gamma
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
double/codec/double_utils
double/codec/float_utils
double/double_codec
exception/exception
exception/exceptions
exception/rpc_error
helper/extensions/extensions
helper/helper
hex/hex
layout/byte/byte_handler
layout/constant/constant
layout/core/core
layout/core/core/core
layout/core/types/array
layout/core/types/bit_sequence
layout/core/types/compact
layout/core/types/compact_bytes
layout/core/types/compact_layout
layout/core/types/constant
layout/core/types/coption_layout
layout/core/types/custom_layout
layout/core/types/lazy_struct
layout/core/types/lazy_union
layout/core/types/map
layout/core/types/none
layout/core/types/numeric
layout/core/types/optional_layout
layout/core/types/padding_layout
layout/core/types/raw
layout/core/types/struct
layout/core/types/tuple_layout
layout/core/types/union
layout/core/types/xdr_bytes
layout/exception/exception
layout/layout
layout/utils/utils
secret_wallet/exception
secret_wallet/web3_storage_defination
signer/bitcoin_signer
signer/cardano/cardano_signer
signer/cosmos/cosmos_nist256r1_signer
signer/cosmos/cosmos_signer
signer/ecdsa_signing_key
signer/eth/eth_signature
signer/eth/evm_signer
signer/signer
signer/solana/solana_signer
signer/substrate/core/signer
signer/substrate/core/verifier
signer/substrate/signers/substrate_ecdsa
signer/substrate/signers/substrate_eddsa
signer/substrate/signers/substrate_sr25519
signer/substrate/substrate
signer/tron/tron_signer
signer/xrp_signer
ss58/ss58
Library for SS58 address encoding and decoding.
ss58/ss58_base
ss58/ss58_ex
utils/binary/binary_operation
utils/binary/bit_utils
utils/binary/bytes_tracker
utils/binary/utils
utils/compare/compare
utils/compare/hash_code
utils/numbers/numbers
utils/numbers/rational/big_rational
utils/numbers/utils/bigint_utils
utils/numbers/utils/int_utils
utils/string/string
utils/tuple/tuple
utils/utils
uuid/uuid
UUID Library