Skip to main content

Try it Live

Run Signature examples in the interactive playground

Conversions

Methods for converting signatures between different formats.

toBytes

Get raw signature bytes (strips metadata).

Signature

Parameters

  • signature - BrandedSignature to convert

Returns

Plain Uint8Array (64 bytes) without metadata.

Example

Use Cases

Notes

  • Returns reference to same underlying buffer (zero-copy)
  • Metadata still accessible on original signature
  • Useful when algorithm tracked externally

toCompact

Convert to compact format (r + s).

Signature

Parameters

  • signature - BrandedSignature to convert

Returns

Uint8Array (64 bytes) in compact format:
  • ECDSA: r (32) + s (32)
  • Ed25519: signature (64)

Example

Use Cases

Format Details

ECDSA (secp256k1, p256):
Ed25519:
Recovery ID:
  • Not included in compact format
  • Must be stored/transmitted separately
  • Required for secp256k1 address recovery

toDER

Convert ECDSA signature to DER encoding.

Signature

Parameters

  • signature - ECDSA BrandedSignature (secp256k1 or p256)

Returns

DER-encoded SEQUENCE of r and s integers.

Throws

  • InvalidAlgorithmError - If signature is not ECDSA (Ed25519 not supported)

Example

DER Structure

Encoding Rules

Minimal encoding:
  • Leading zeros removed
  • Padding byte (0x00) added if high bit set (to indicate positive)

Length Calculation

DER length varies based on r and s values:

Use Cases

Ed25519 Not Supported

Recovery ID Handling

Comparison

Format Characteristics

FormatSizeMetadataUse Case
toBytes64 bytesStrippedRaw storage
toCompact64 bytesStrippedCompact serialization
toDER70-72 bytesStrippedBitcoin, certificates

Metadata Preservation

Round-Trip Compatibility

Performance

Serialization Patterns

Full Serialization (with metadata)

Compact Serialization (algorithm known)

Wire Format

See Also