Bitcoin-related modules and tools

I develop and dogfood Bitcoin software in Perl. Here is a list of projects which are currently published:

  • Bitcoin::Crypto

    This is a CPAN module.

    Bitcoin::Crypto is a native Perl cryptographic toolkit focused on Bitcoin-related operations. It closely follows many Bitcoin Improvement Proposal (BIP) documents and keeps track of the most impactful additions to the Bitcoin protocol. It works with any cryptocurrency sharing same fundamentals as Bitcoin given the right configuration, although Bitcoin is the main focus.

    This is the foundation of all my other Bitcoin-related work in Perl. Frankly, you can't do much with Bitcoin if you can't generate an address for a private key, for example. Latest addition of transaction support has opened new possibilities of using this module (beyond the previous limit of keypair generation and manipulation).

  • App::Bitcoin::PaperWallet

    This is a CPAN module.

    This module lets you generate a simple text document with a mnemonic and a couple of addresses, which can then be printed and stored in a safe place. While many consider old type paper wallets to be inferior to hardware wallets, they are completely free and easier to understand. This one however is not a one-key paper wallet, but a full multikey HD wallet compatible with mnemonic-based software.

  • Bitcoin signer

    This is a GitHub repository

    A small fun project of mine - a proof of concept for an application that can be run on a ever disconnected machine like Raspberry PI, allowing you to plug it in, connect via ethernet to your main machine and execute a REST action creating and signing the transaction securely. This is pretty much finished and has already been used to move funds on the main chain.

  • btcpaywall (archived)

    This is a GitHub repository.

    This is a paywall for Bitcoin. It accepts payment requests, shows payment pages (paywalls) to end users and notifies target system when the payment is complete. It uses local Bitcoin node (in pruned mode, so it doesn't use much space), which means there's no need to trust anybody. Paywalls use native and compat segregated witness addresses, which means the fees are quite low. Collected funds can be cashed out using bundled scripts or (less reliably) a HD-compatible Bitcoin wallet.

    This repository got archived because of internal changes to bitcoin node which deprecated the API calls it used.