BIP-0322: Generic Signed Message Format
The aim of this repository is to demonstrate how the Bitcoin Improvement Proposal (BIP) 0322 for a generic signed message format could be used to sign Verifiable Credentials from a Bitcoin address. Ultimately, this address will be identified through a did:btcr DID.
This repository makes use of the buidl-python Bitcoin library developed by Jimmy Song. It also uses Jupyter Notebooks to document the approach taken when implementing the BIP 0322 specification.
Currently implemented in repo:
- BIP 322 Walkthrough Signing, Verification
- BIP 322 Buidl Python API and library. This has been submitted as a P.R. to buidl-python
- BIP 322 p2sh multisig
- BIP 322 p2wsh multisig
- WIP BIP322 Signatures for Verifiable Credentials
- WIP BIP322 p2tr signature
- Will Abramson
- Legendary Requirements
- will@legreq.com
This work was funded by Ryan Grant, Digital Contract Design. Thanks also go to Joe Andrieu, Kalle Alm, Pieter Wuille and Jimmy Song for engaging with and supporting various aspects of this work.
- Python v3.8
- Pip
- Create a virtual environment
python -m venv venv
- Activate the virtual environment
source venv/bin/activate
- Install python packages
pip install -r requirements.txt
- Launch the jupyter server
jupyter notebook
- Run through the notebooks
shift + enter runs a cell