Technical Standards

  • Mnemonic standard

    - The mnemonic complies with the BIP39 standard and generates a mnemonic of 12 words by default.

    Generate seed by mnemonic

    - Generate the seed using the BIP39 standard process.

    - In the PBKDF2 algorithm, the mnemonic sentence is used as the password, "mnemonic" as the salt (passphrase is empty).

    Mnemonic sentence

    - English mnemonics: Remove head and tail spaces, add a space between each word.

  • Bitcoin MultiSig address generation

    MultiSig is implemented by P2SH, and the address is created by calling the bitcoind (litecoind for LTC, etc.) createmultisig interface, or it is equivalent to the following logic (take 2-3 MultiSig as an example):

    1. redeemScript = <OP_2> <A pubkey> <B pubkey> <C pubkey> <OP_3> <OP_CHECKMULTISIG>

    2. redeemScriptHash = RIPEMD160(SHA256(redeemScript))

    3. P2SHAddress = base58check.Encode("05", redeemScriptHash)

    MultiSig public key order

    - The order of the public keys is sorted in lexicographic order according to the public key itself (hexadecimal string as an ASCII string).

    - For example: A's pubkey: c0f832..., B's pubkey: aaff01..., C's pubkey: b8facc..., then: redeemScript = <OP_2> <B pubkey> <C pubkey> <A pubkey> < OP_3> <OP_CHECKMULTISIG>

    Source code for Ethereum / Solana MultiSig

    Github: https://github.com/bitbill/ownbit-multisig-contracts

    QR code format for Offline Signing

    bb_watch: Create a new Watch Wallet

    bb_addcoin: Add coin for Watch Wallet

    bb_sign: Sign a transaction

    bb_tx: broadcast the transaction to the network

    Encoding/Decoding: zlibCompress + Base64