@reservebtc/bip322-connector
v1.0.0
Published
One-click BIP-322 signature verification for Bitcoin wallets - MetaMask-like UX
Maintainers
Readme
BIP-322 Connector
One-click BIP-322 signature verification for Bitcoin wallets with MetaMask-like UX.
Features
- ✅ One-click signing - Simple as MetaMask
- 🔐 BIP-322 compliant - Industry standard
- 🎯 Multi-wallet support - UniSat, Xverse, Leather, OKX
- ⚛️ React component - Drop-in UI widget
- 📦 TypeScript - Full type safety
- 🚀 Zero dependencies - Lightweight
Installation
npm install @reservebtc/bip322-connectorQuick Start
Vanilla JavaScript
import { BIP322Connector, WalletDetector } from '@reservebtc/bip322-connector'
// Detect available wallets
const wallets = WalletDetector.detectAll()
console.log('Available wallets:', wallets)
// Connect and sign
const connector = new BIP322Connector()
await connector.connect('unisat')
const result = await connector.sign(
'bc1q...',
'Sign this message'
)
console.log('Signature:', result.signature)React Component
import { BIP322SignButton } from '@reservebtc/bip322-connector'
function MyApp() {
const handleSigned = (result) => {
console.log('Signed!', result)
}
return (
<BIP322SignButton
message="Sign this message"
onSigned={handleSigned}
/>
)
}API Reference
BIP322Connector
Main class for wallet connection and signing.
Methods:
connect(walletName: SupportedWallet): Promise<void>- Connect to walletsign(address: string, message: string): Promise<BIP322SignatureResult>- Sign messagedisconnect(): void- Disconnect from walletgetWalletName(): SupportedWallet | null- Get connected wallet
WalletDetector
Utility for detecting installed wallets.
Methods:
detectAll(): WalletDetectionResult[]- Detect all available walletsisInstalled(walletName: SupportedWallet): boolean- Check if wallet installedgetProvider(walletName: SupportedWallet): any- Get wallet providergetFirstAvailable(): WalletDetectionResult | null- Get first available wallet
BIP322SignButton (React)
React component for one-click signing.
Props:
message: string- Message to signonSigned: (result: BIP322SignatureResult) => void- Success callbackonError?: (error: Error) => void- Error callback (optional)className?: string- Custom CSS class (optional)style?: React.CSSProperties- Inline styles (optional)
Supported Wallets
- UniSat Wallet
- Xverse Wallet
- Leather Wallet (ex-Hiro)
- OKX Wallet
Examples
See /examples directory for complete examples:
- Vanilla JavaScript example
- React example
- Next.js example
Why BIP-322 Connector?
Before (6 steps, 2 minutes):
- Install wallet
- Find signing feature
- Copy message
- Paste in wallet
- Sign
- Copy signature back
After (1 click, 5 seconds):
<BIP322SignButton message="Sign this" onSigned={handleSign} />Live Demo
https://app.reservebtc.io/verify
Contributing
We welcome contributions! Please see CONTRIBUTING.md
License
MIT License - see LICENSE
Credits
Built by ReserveBTC team.
Improving Bitcoin DeFi UX, one signature at a time.
