@exodus/bip322-js
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

BIP322-JS

Unit Test Status Coverage Status

A Javascript library that provides utility functions related to the BIP-322 signature scheme. This is a fork of https://github.com/ACken2/bip322-js with dependencies change in order to reduce audit load. No breaking API changes present at the moment.

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

  1. Generate raw toSpend and toSign BIP-322 transactions
  2. Sign a BIP-322 signature using a private key
  3. 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 PSBT

More working examples can be found within the unit test for BIP322, Signer, and Verifier.

Package Sidebar

Install

npm i @exodus/bip322-js

Weekly Downloads

1,601

Version

2.0.2

License

MIT

Unpacked Size

19.1 kB

Total Files

12

Last publish

Collaborators

  • juraex
  • kevva
  • doguhan
  • ps.mcnally
  • janwe
  • yevhenii_molodyk
  • javiexodus
  • ismamz
  • exojo
  • feri42
  • jprichardson
  • farisissa
  • ryanzim
  • headfire
  • gutenye
  • mosesbot
  • roccomuso
  • dcastagnoli
  • sonaye
  • ves
  • tenaciousmv
  • asyakost
  • bulgakovk
  • chalker
  • andrejb
  • jaydp17
  • olistic
  • joepie91
  • merlz
  • vbonini
  • mol0d
  • devopsrobot
  • jenish-sojitra
  • markoexodus
  • nachoalvarez
  • giovannirco
  • filipexodus
  • cryptosgr
  • andrescarreon
  • diegomura
  • lanre-mark
  • sunilagrawal
  • guillecura
  • mariosvlad
  • federico-po
  • akinncar
  • fboucquez
  • lanahizzle
  • kwwood
  • umito
  • mzndako
  • joshuabot
  • iaacek
  • meniem
  • skapala
  • awilson-rs
  • ezenwankwogabriel
  • ggabarrin-rs
  • ralph.ba
  • danh.t.vo
  • voltagebots
  • ryansquared-npm
  • alexandrbbm
  • sergii_bo
  • florianmathieu
  • angelloz
  • exodus-justin.za
  • alex.alexandrius
  • rec
  • rg911
  • jamiemaw
  • james-gre
  • shehryar6
  • geoffreyrousset
  • clarkexo
  • tunguyennnnn
  • jschopen
  • cawfree
  • marcos.kichel
  • andrewtoth-exodus
  • cdotta-exodus
  • exorich
  • mmehta-10
  • kryptkeep
  • 633kh4ck
  • mbaraniak-exodus
  • jeehahn
  • hasakura
  • awesomeniko
  • davidexodus
  • r4vn
  • nantoaqui
  • exoleo
  • ale-exo
  • frankliexodus
  • bekatd
  • ronaldcrb
  • muratso
  • metasal
  • yalomist
  • joshua-rogers-exodus
  • jdmdreamer
  • vikas027
  • angel_exodus