Signatures
Overview
Purpose
Basic Usage
import { Signature, PrivateKey, PublicKey, Hash } from '@bsv/sdk';
// Sign a message hash with a private key
const privKey = PrivateKey.fromRandom();
const messageHash = Hash.sha256(Array.from(Buffer.from('Hello BSV')));
// Create signature
const signature = privKey.sign(messageHash);
// Verify signature
const pubKey = privKey.toPublicKey();
const isValid = signature.verify(messageHash, pubKey);
console.log('Signature valid:', isValid); // true
// Get DER encoding of signature
const derEncoded = signature.toDER();
console.log('DER:', Buffer.from(derEncoded).toString('hex'));
// Parse DER encoded signature
const parsedSig = Signature.fromDER(derEncoded);
console.log(
'Parsed signature equals original:',
Buffer.from(parsedSig.toDER()).equals(Buffer.from(signature.toDER()))
); // trueKey Features
1. Creating Signatures with Sighash Types
2. DER Encoding and Decoding
3. Low-S Signature Normalization
4. Signature Recovery and Verification
API Reference
Constructor
Static Methods
Signature.sign(hash: number[], privKey: PrivateKey, ephemeralKey?: boolean): Signature
Signature.sign(hash: number[], privKey: PrivateKey, ephemeralKey?: boolean): SignatureSignature.fromDER(der: number[] | Buffer): Signature
Signature.fromDER(der: number[] | Buffer): SignatureSignature.fromCompact(compact: number[] | Buffer): Signature
Signature.fromCompact(compact: number[] | Buffer): SignatureInstance Methods
verify(hash: number[], pubKey: PublicKey): boolean
verify(hash: number[], pubKey: PublicKey): booleantoDER(): number[]
toDER(): number[]toCompact(): number[]
toCompact(): number[]toChecksigFormat(): number[]
toChecksigFormat(): number[]Instance Properties
Common Patterns
Pattern 1: Transaction Signature Creation
Pattern 2: Message Signing and Verification
Pattern 3: Multi-Signature Verification
Security Considerations
Performance Considerations
Related Components
Code Examples
Best Practices
Troubleshooting
Issue: Signature verification fails
Issue: Transaction signature invalid
Issue: DER encoding error
Issue: Cannot recover public key from signature
Further Reading
Status
Last updated
