Skip to content
Bob Holden edited this page Sep 18, 2019 · 5 revisions

Welcome to the Bitcoin-Merchants-Toolbox!

  • Notes from 20190912:
    • Hopefully this will clarify things:
      • The exported "Account-Level Extended Public Key" is already derived to this level:

        BIP32 Root Key (m) -> CKDpriv (m/XX') -> CKDpriv (m/XX’/0’) -> CKDpriv (m/XX’/0’/0’)

      • The proposed "Extractor Tool":
        • Inputs the exported account-level extended public key which contains:
          • the Parent Public Key
          • the Parent Chain Code
        • Then derives:

          CKDpub (M/XX’/0’/0’/0)

        • and outputs a public key and chain code for the deriver tools.
      • The Proposed Derivers derive payment addresses using the child index "x":
        • BIP44 Deriver derives:

          CKDpub (M/44’/0’/0’/0/x) for payment addresses beginning with "1"

        • BIP49 Deriver derives:

          CKDpub (M/49’/0’/0’/0/x) for payment addresses beginning with "1"

        • BIP84 Deriver derives:

          CKDpub (M/84’/0’/0’/0/x) for payment addresses beginning with "1"

Target Audience

This project has been created for Merchants(Individuals or any size Business) that sell products and services online and want to take advantage of receiving payments via bitcoin without handing personal or business information to a third-party who may not be secure enough to safeguard the information.

Key Concepts

  • Bitcoin HD Wallets:
    • are based on a Master Private Key, which is a Cryptographically Secure Randomly Generated 256 bit number, which IS the Wallet.
    • use a scheme to create Private and Public keys for each level of the derivation path from a master private key
    • use Derivation Path Levels to segregate

and provide a private and public key for each level of the path.

Accounts which are parts of a

  • An Account-Level Extended Public Key is exported by the HD Wallet for the Account Level of the derivation path.
  • Payment Addresses are derived from the public key of the lowest level of the derivation path, meaning that in order to create a public key to be used in a payment address, we need the next to last level's public key as the parent public key that is used in the final child key derivation process.

The Tools in the Toolbox

This toolbox contains 4 basic tools:

  • Public KeyChain Extractor
    • Inputs an account-level, extended public key that is exported from the Merchants, Bitcoin BIP 32/44/49/84 HD Wallet
    • Outputs a public key and chain code for the Change Level of the derivation path
  • xPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/44'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "1".
  • yPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/49'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "3".
  • zPub Deriver:
    • Inputs:
      • Change Level Public Key of the derivation path (m/84'/0'/0'/0/)
      • User provided index number of the payment address to be generated (the position of the address in the wallet)
    • Output:
      • Payment address beginning with "bc1".

User Hardware/Software Requirements:

  • A Web Server running programming software that is able to dynamically deliver web content to the user that includes:
    • A shopping cart
    • An "invoice numbering and tracking" system
    • A QR Code Generator
Clone this wiki locally
You can’t perform that action at this time.