Package Exports
- bip322-js
- bip322-js/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bip322-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
BIP322-JS
A Javascript library that provides utility functions related to the BIP-322 signature scheme.
Limitations
Only P2PKH, P2SH-P2WPKH, P2WPKH, and single-key-spend P2TR are supported in this library.
Documentation
Available at https://acken2.github.io/bip322-js/
Supported Features
- Generate raw toSpend and toSign BIP-322 transactions
- Sign a BIP-322 signature using a private key
- Verify a simple BIP-322 signature
Example
// Import modules that are useful to you
const { BIP322, Signer, Verifier } = require('bip322-js');
// Signing a BIP-322 signature with a private key
const privateKey = 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k';
const address = 'bc1q9vza2e8x573nczrlzms0wvx3gsqjx7vavgkx0l';
const message = 'Hello World';
const signature = Signer.sign(privateKey, address, message);
console.log(signature);
// Verifying a simple BIP-322 signature
const validity = Verifier.verifySignature(address, message, signature);
console.log(validity); // True
// You can also get the raw unsigned BIP-322 toSpend and toSign transaction directly
const scriptPubKey = Buffer.from('00142b05d564e6a7a33c087f16e0f730d1440123799d', 'hex');
const toSpend = BIP322.buildToSpendTx(message, scriptPubKey); // bitcoin.Transaction
const toSpendTxId = toSpend.getId();
const toSign = BIP322.buildToSignTx(toSpendTxId, scriptPubKey); // bitcoin.Psbt
// Do whatever you want to do with the PSBTMore working examples can be found within the unit test for BIP322, Signer, and Verifier.