npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2025 โ€“ย Pkg Stats / Ryan Hefner

@smartledger/bsv

v3.4.0

Published

๐Ÿš€ Complete Bitcoin SV development framework with legally-recognizable DID:web + W3C VC-JWT toolkit, Legal Token Protocol (LTP), Global Digital Attestation Framework (GDAF), StatusList2021 revocation, and 16 flexible loading options. Standards-based crede

Readme

SmartLedger-BSV

๐Ÿš€ Complete Bitcoin SV Development Framework with W3C Verifiable Credentials, DID:web, Legal Compliance, and 16 Flexible Loading Options

Version License BSV Modular W3C

The most comprehensive and flexible Bitcoin SV library available. NEW in v3.4.0: Legally-recognizable DID:web + VC-JWT toolkit with ES256/ES256K support, StatusList2021 revocation, and BSV anchoring. Choose from 16 different distribution methods: standalone modules, complete bundle, or mix-and-match approach.

๐Ÿ†• v3.4.0 - Legally-Recognizable Credentials

Why This Matters

  • โœ… W3C Standards: Full VC-JWT and DID:web compliance for legal recognition
  • โœ… Enterprise Ready: ES256 (P-256 NIST curve) for regulated industries
  • โœ… Blockchain Native: ES256K (secp256k1) for BSV integration
  • โœ… Revocation Built-in: StatusList2021 standard for credential management
  • โœ… Privacy Preserving: Hash-only BSV anchoring (no PII on-chain)
  • โœ… CLI Tools: Complete command-line interface for credential operations

Quick Start - Issue Your First Verifiable Credential

# Install SmartLedger BSV v3.4.0
npm install @smartledger/[email protected]

# Initialize DID:web issuer (generates ES256 keys)
npx smartledger-bsv didweb init --domain example.com --alg ES256

# Issue a credential
npx smartledger-bsv vc issue \
  --issuer did:web:example.com \
  --subject did:example:alice \
  --types "VerifiableCredential,DriversLicense" \
  --claims '{"licenseNumber":"DL123456","class":"C"}' \
  > credential.jwt

# Verify the credential
npx smartledger-bsv vc verify credential.jwt

# Anchor hash to BSV (privacy-preserving)
npx smartledger-bsv anchor hash credential.jwt

# Create revocation list
npx smartledger-bsv status create --issuer did:web:example.com > status-list.jwt

# Revoke a credential
npx smartledger-bsv status set --list status-list.jwt --index 42 --status revoked

Programmatic Usage

const bsv = require('@smartledger/bsv')

// Generate DID:web issuer keys
const keys = await bsv.DIDWeb.generateIssuerKeys({ alg: 'ES256' })

// Build DID documents (.well-known/did.json and jwks.json)
const docs = bsv.DIDWeb.buildDidWebDocuments({
  domain: 'example.com',
  p256: { jwk: keys.publicJwk, kid: keys.kid },
  controllerName: 'Example Corp'
})
// Deploy docs.didDocument to https://example.com/.well-known/did.json
// Deploy docs.jwks to https://example.com/.well-known/jwks.json

// Issue a Verifiable Credential as JWT
const result = await bsv.VcJwt.issueVcJwt({
  issuerDid: docs.did,
  subjectId: 'did:example:alice',
  types: ['VerifiableCredential', 'AgeCredential'],
  credentialSubject: {
    ageOver: 18,
    country: 'US'
  },
  privateJwk: keys.privateJwk,
  alg: 'ES256',
  kid: keys.kid
})

console.log('VC-JWT:', result.jwt)

// Verify the credential
const verification = await bsv.VcJwt.verifyVcJwt(result.jwt, {
  didResolver: async (did) => {
    // In production, fetch https://example.com/.well-known/jwks.json
    return { jwks: docs.jwks }
  },
  expectedIssuerDid: docs.did
})

console.log('Valid:', verification.valid)

// Anchor hash to BSV (no PII on-chain)
const hash = bsv.Anchor.sha256Hex(result.jwt)
const anchorPayload = bsv.Anchor.buildAnchorPayload({
  kind: 'VC_ANCHOR_SHA256',
  hash: hash,
  issuerDid: docs.did
})

// Include anchorPayload.json in OP_RETURN
// Later: verify with bsv.Anchor.verifyAnchorHash(originalData, anchorHash)

// Create revocation list (100k credentials)
const statusList = await bsv.StatusList.createStatusList({
  issuerDid: docs.did,
  privateJwk: keys.privateJwk
})

// Revoke a credential
const updated = await bsv.StatusList.updateStatusList({
  listVcJwt: statusList.listVcJwt,
  index: 42,
  status: 'revoked',
  privateJwk: keys.privateJwk
})

// Check revocation status
const status = bsv.StatusList.getCredentialStatusEntry({
  listVcJwt: updated.listVcJwt,
  index: 42
})

console.log('Status:', status) // 'revoked'

๐ŸŽฏ 16 Loading Options - Choose Your Approach

Core Modules

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | bsv.min.js | 449KB | Core BSV + SmartContract | unpkg.com/@smartledger/[email protected]/bsv.min.js | | bsv.bundle.js | 885KB | Everything in one file | unpkg.com/@smartledger/[email protected]/bsv.bundle.js |

๐Ÿ†• W3C Verifiable Credentials (v3.4.0)

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | ๐ŸŸข bsv-didweb.min.js | 418KB | DID:web generation | unpkg.com/@smartledger/[email protected]/bsv-didweb.min.js | | ๐ŸŸข bsv-vcjwt.min.js | 418KB | VC-JWT issue/verify | unpkg.com/@smartledger/[email protected]/bsv-vcjwt.min.js | | ๐ŸŸข bsv-statuslist.min.js | 486KB | StatusList2021 revocation | unpkg.com/@smartledger/[email protected]/bsv-statuslist.min.js | | ๐ŸŸข bsv-anchor.min.js | 417KB | BSV anchoring (hash-only) | unpkg.com/@smartledger/[email protected]/bsv-anchor.min.js |

Smart Contract & Development

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | bsv-smartcontract.min.js | 451KB | Complete covenant framework | unpkg.com/@smartledger/[email protected]/bsv-smartcontract.min.js | | bsv-covenant.min.js | 32KB | Covenant operations | unpkg.com/@smartledger/[email protected]/bsv-covenant.min.js | | bsv-script-helper.min.js | 27KB | Custom script tools | unpkg.com/@smartledger/[email protected]/bsv-script-helper.min.js | | bsv-security.min.js | 290KB | Security enhancements | unpkg.com/@smartledger/[email protected]/bsv-security.min.js |

Legal & Compliance

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | bsv-ltp.min.js | 817KB | Legal Token Protocol | unpkg.com/@smartledger/[email protected]/bsv-ltp.min.js | | bsv-gdaf.min.js | 604KB | Digital Identity & Attestation | unpkg.com/@smartledger/[email protected]/bsv-gdaf.min.js |

Advanced Cryptography

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | bsv-shamir.min.js | 433KB | Threshold Cryptography | unpkg.com/@smartledger/[email protected]/bsv-shamir.min.js |

Utilities

| Module | Size | Use Case | CDN | |--------|------|----------|-----| | bsv-ecies.min.js | 71KB | Encryption | unpkg.com/@smartledger/[email protected]/bsv-ecies.min.js | | bsv-message.min.js | 26KB | Message signing | unpkg.com/@smartledger/[email protected]/bsv-message.min.js | | bsv-mnemonic.min.js | 670KB | HD wallets | unpkg.com/@smartledger/[email protected]/bsv-mnemonic.min.js |

โšก 2-Minute Quick Start

Get started with Bitcoin SV development in under 2 minutes:

# Install via npm
npm install @smartledger/bsv

# Or include in HTML
<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>

๐Ÿ”ง v3.4.0 Update: Added legally-recognizable W3C Verifiable Credentials with DID:web + VC-JWT toolkit. ES256/ES256K support, StatusList2021 revocation, and privacy-preserving BSV anchoring. Complete CLI tooling included!

Basic Transaction (30 seconds):

const bsv = require('@smartledger/bsv'); // Node.js
// const bsv = window.bsv; // Browser

// 1. Generate keys
const privateKey = new bsv.PrivateKey();
const address = privateKey.toAddress();

// 2. Create transaction
const tx = new bsv.Transaction()
  .from(utxo)                    // Add input
  .to(targetAddress, 50000)      // Send 50,000 satoshis
  .change(address)               // Send change back
  .sign(privateKey);             // Sign transaction

console.log('Transaction ID:', tx.id);

๐Ÿ†• Legal Token Development (60 seconds):

// Create legal property token
const propertyToken = bsv.createPropertyToken({
  propertyType: 'real_estate',
  jurisdiction: 'us_delaware', 
  legalDescription: 'Lot 15, Block 3, Subdivision ABC',
  ownerIdentity: ownerDID
});

// Generate W3C Verifiable Credential
const credential = bsv.createEmailCredential(
  issuerDID, subjectDID, '[email protected]', issuerPrivateKey
);

// Threshold cryptography for secure key management
const shares = bsv.splitSecret('private_key_backup', 5, 3); // 5 shares, 3 needed

๐Ÿ†• Smart Contract Development (90 seconds):

// Generate authentic UTXOs for testing
const utxoGenerator = new bsv.SmartContract.UTXOGenerator();
const utxos = utxoGenerator.createRealUTXOs(2, 100000);

// Create BIP-143 preimage and extract fields
const preimage = new bsv.SmartContract.Preimage(preimageHex);
const amount = preimage.getField('amount');

// Build covenant with JavaScript-to-Script translation
const covenant = bsv.SmartContract.createCovenantBuilder()
  .extractField('amount')
  .push(50000)
  .greaterThanOrEqual()
  .verify()
  .build();

Next Steps:

๐Ÿ”ง API Reference

| Component | Method | Purpose | Example | |-----------|--------|---------|---------| | Core | new PrivateKey() | Generate private key | const key = new bsv.PrivateKey() | | | new Transaction() | Create transaction | const tx = new bsv.Transaction() | | | Script.fromASM() | Parse script | const script = bsv.Script.fromASM('OP_DUP') | | Covenant | CovenantInterface() | Covenant development | const covenant = new bsv.CovenantInterface() | | | createCovenantTransaction() | Covenant transaction | covenant.createCovenantTransaction(config) | | | getPreimage() | BIP143 preimage | covenant.getPreimage(tx, 0, script, sats) | | Custom Scripts | CustomScriptHelper() | Script utilities | const helper = new bsv.CustomScriptHelper() | | | createSignature() | Manual signature | helper.createSignature(tx, key, 0, script, sats) | | | createMultisigScript() | Multi-signature | helper.createMultisigScript([pk1, pk2], 2) | | Debug Tools | SmartContract.examineStack() | Analyze script | SmartContract.examineStack(script) | | | interpretScript() | Execute script | SmartContract.interpretScript(script) | | | getScriptMetrics() | Performance data | SmartContract.getScriptMetrics(script) | | Security | SmartVerify.verify() | Enhanced verification | SmartVerify.verify(sig, hash, pubkey) | | | EllipticFixed.sign() | Secure signing | EllipticFixed.sign(hash, privateKey) |

๐Ÿ’ก Tip: All methods include comprehensive error handling and validation. See documentation links for detailed guides.

๐Ÿ“š Quick Start Examples

๐Ÿ”ง Basic Development (476KB total)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-script-helper.min.js"></script>
<script>
  const privateKey = new bsv.PrivateKey();
  const utxos = new bsv.SmartContract.UTXOGenerator().createRealUTXOs(2, 100000);
</script>

๐Ÿ”’ Smart Contract Development (932KB total)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-covenant.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-smartcontract.min.js"></script>
<script>
  const covenant = bsv.SmartContract.createCovenantBuilder()
    .extractField('amount').push(50000).greaterThanOrEqual().verify().build();
  const debugInfo = bsv.SmartContract.examineStack(script);
</script>

๐Ÿ†• Legal & Identity Development (1.87MB total)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-ltp.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-gdaf.min.js"></script>
<script>
  // Legal Token Protocol
  const propertyToken = bsv.createPropertyToken({
    propertyType: 'real_estate', jurisdiction: 'us_delaware'
  });
  
  // Digital Identity
  const credential = bsv.createEmailCredential(issuerDID, subjectDID, '[email protected]', key);
</script>

๐Ÿ†• Security & Cryptography (1.17MB total)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-security.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-shamir.min.js"></script>
<script>
  // Threshold Cryptography
  const shares = bsv.splitSecret('my_secret_key', 5, 3); // 5 shares, 3 needed
  
  // Enhanced Security
  const verified = bsvSecurity.SmartVerify.verify(signature, hash, publicKey);
</script>

๐ŸŽฏ Everything Bundle (885KB)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.bundle.js"></script>
<script>
  // Everything available immediately
  const shares = bsv.splitSecret('secret', 5, 3);           // Shamir Secret Sharing
  const credential = bsv.createDID(publicKey);              // Digital Identity
  const propertyToken = bsv.createPropertyToken({...});    // Legal Tokens
  const covenant = bsv.SmartContract.createCovenantBuilder(); // Smart Contracts
</script>

๐ŸŽฏ Key Features

๐Ÿš€ Unique Capabilities (Only Bitcoin Library with These Features)

  • โœ… Legal Token Protocol: Compliant tokenization of real-world assets โ†’ Legal Guide
  • โœ… Digital Identity Framework: W3C Verifiable Credentials and DIDs โ†’ Identity Guide
  • โœ… Threshold Cryptography: Shamir Secret Sharing for secure key management โ†’ Cryptography Guide
  • โœ… Complete Smart Contract Suite: 23+ production-ready covenant features โ†’ SmartContract Guide

๐Ÿ’ผ Core Library Excellence

  • โœ… Complete BSV API: Full Bitcoin SV blockchain operations โ†’ API Reference
  • โœ… Security Hardened: SmartLedger elliptic curve fixes and enhanced validation โ†’ Security Features
  • โœ… Browser + Node.js: Universal compatibility with proper polyfills โ†’ Loading Options
  • โœ… TypeScript Ready: Complete type definitions included
  • โœ… Ultra-Low Fees: 0.01 sats/byte configuration (91% fee reduction)

๐Ÿ› ๏ธ Advanced Development Tools

  • ๐Ÿ”ง JavaScript-to-Script: High-level covenant development with 121 opcode mapping โ†’ Covenant Guide
  • ๐Ÿ”ง UTXO Generator: Create authentic test UTXOs for development โ†’ UTXO Guide
  • ๐Ÿ”ง Preimage Parser: Complete BIP-143 field extraction and manipulation โ†’ Preimage Tools
  • ๏ฟฝ Debug Framework: Script interpreter, stack examiner, and optimizer โ†’ Debug Examples
  • ๏ฟฝ PUSHTX Integration: nChain techniques for advanced covenant patterns โ†’ PUSHTX Insights

๐Ÿ“ฆ Flexible Architecture

  • ๐Ÿ“ฆ 12 Modular Options: Load only what you need (27KB to 885KB) โ†’ Loading Strategy
  • ๐Ÿ“ฆ Standalone Modules: Independent legal, identity, and crypto modules โ†’ Standalone Test
  • ๐Ÿ“ฆ Complete Bundle: Everything in one file for convenience โ†’ Bundle Demo
  • ๐Ÿ“ฆ CDN Ready: All modules available via unpkg and jsDelivr
  • ๐Ÿ“ฆ Webpack Optimized: Tree-shakeable and build-tool friendly

โšก Installation & Usage

๐Ÿ’ก Quick Start: Jump to 2-Minute Quick Start for instant setup examples

NPM Installation

# Main package
npm install @smartledger/bsv

# Alternative package name (legacy)
npm install smartledger-bsv

๐Ÿ“– Next Steps: After installation, see Loading Options to choose your distribution method

Node.js Usage

const bsv = require('@smartledger/bsv');

// Basic transaction
const privateKey = new bsv.PrivateKey();
const publicKey = privateKey.toPublicKey();
const address = privateKey.toAddress();

// SmartContract debugging
const script = bsv.Script.fromASM('OP_1 OP_2 OP_ADD OP_3 OP_EQUAL');
const metrics = bsv.SmartContract.getScriptMetrics(script);
const stackInfo = bsv.SmartContract.examineStack(script);

// Covenant development
const covenant = new bsv.CovenantInterface();
const contractTx = covenant.createCovenantTransaction({
  inputs: [...],
  outputs: [...]
});

Browser CDN (Choose Your Loading Strategy)

1. Minimal Setup - Core + Script Helper (476KB)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-script-helper.min.js"></script>
<script>
  const tx = new bsv.Transaction();
  const sig = bsvScriptHelper.createSignature(tx, privateKey, 0, script, satoshis);
</script>

2. DeFi Development - Core + Covenants + Debug (932KB)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-covenant.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-smartcontract.min.js"></script>
<script>
  const covenant = new bsvCovenant.CovenantInterface();
  const debugInfo = SmartContract.interpretScript(script);
  const optimized = SmartContract.optimizeScript(script);
</script>

3. Security First - Core + Enhanced Security (739KB)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.min.js"></script>
<script src="https://unpkg.com/@smartledger/[email protected]/bsv-security.min.js"></script>
<script>
  const verified = bsvSecurity.SmartVerify.verify(signature, hash, publicKey);
  const enhanced = bsvSecurity.EllipticFixed.createSignature(privateKey, hash);
</script>

4. Everything Bundle - One File Solution (764KB)

<script src="https://unpkg.com/@smartledger/[email protected]/bsv.bundle.js"></script>
<script>
  // Everything available under bsv namespace
  const keys = bsv.SmartLedgerBundle.generateKeys();
  const covenant = new bsv.CovenantInterface();
  const message = new bsv.Message('Hello BSV');
  const encrypted = bsv.ECIES.encrypt('secret', publicKey);
</script>

## ๐Ÿ”จ Basic Usage

### Creating Transactions
```javascript
const bsv = require('@smartledger/bsv');

// Create transaction with optimized fees
const transaction = new bsv.Transaction()
  .from({
    txId: 'prev_tx_id',
    outputIndex: 0,
    script: 'prev_locking_script',
    satoshis: 100000
  })
  .to('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', 95000)
  .feePerKb(10) // Ultra-low fee: 0.01 sats/byte
  .sign(privateKey);

console.log('Transaction ID:', transaction.id);
console.log('Fee rate: 0.01 sats/byte (91% reduction)');

UTXO Management

// Advanced UTXO state management
const utxoManager = {
  createWithChange: (inputs, outputs, changeAddress) => {
    const tx = new bsv.Transaction()
      .from(inputs)
      .to(outputs.address, outputs.amount)
      .change(changeAddress)
      .feePerKb(10);
    
    // Automatic change output creation and UTXO state update
    return tx;
  }
};

๐Ÿ†• Advanced Features (Unique to SmartLedger-BSV)

โš–๏ธ Legal Token Protocol (LTP)

const bsv = require('@smartledger/bsv');

// Create property rights token
const propertyToken = bsv.createPropertyToken({
  propertyType: 'real_estate',
  jurisdiction: 'us_delaware',
  legalDescription: 'Lot 15, Block 3, Subdivision ABC',
  ownerIdentity: ownerDID,
  attestations: [titleAttestation, valuationAttestation]
});

// Create obligation token  
const obligation = bsv.createObligationToken({
  obligationType: 'payment',
  amount: 100000, // satoshis
  dueDate: '2025-12-31',
  creditor: creditorDID,
  debtor: debtorDID
});

// Validate legal compliance
const compliance = bsv.validateLegalCompliance(propertyToken, 'us_delaware');
console.log('Legally compliant:', compliance.isValid);

๐ŸŒ Global Digital Attestation Framework (GDAF)

// Simple Interface - Direct from bsv object
const issuerDID = bsv.createDID(privateKey.toPublicKey());

// Create W3C Verifiable Credentials
const emailCredential = bsv.createEmailCredential(
  issuerDID, subjectDID, '[email protected]', issuerPrivateKey
);

// Generate zero-knowledge proofs
const proof = bsv.generateSelectiveProof(
  emailCredential,
  ['credentialSubject.verified'], 
  nonce
);

// Verify age without revealing exact age
const ageProof = bsv.generateAgeProof(credential, 18);
const isAdult = bsv.verifyAgeProof(ageProof, 18, issuerDID);

// Advanced Interface for complex applications
const gdaf = new bsv.GDAF({
  anchor: { network: 'mainnet' },
  attestationSigner: { customConfig: true }
});

๐Ÿ” Shamir Secret Sharing

// Split secret into threshold shares
const secret = 'my_private_key_backup';
const shares = bsv.splitSecret(secret, 5, 3); // 5 shares, need 3 to reconstruct

console.log('Generated', shares.length, 'shares');
shares.forEach((share, i) => {
  console.log(`Share ${i + 1}:`, share);
});

// Reconstruct secret from any 3 shares
const reconstructed = bsv.reconstructSecret([shares[0], shares[2], shares[4]]);
console.log('Secret recovered:', reconstructed === secret);

// Validate share integrity
shares.forEach((share, i) => {
  const isValid = bsv.validateShare(share);
  console.log(`Share ${i + 1} valid:`, isValid);
});

// Use cases: Key backup, multi-party security, recovery systems

๐Ÿ”’ Covenant Framework

JavaScript-to-Bitcoin Script Translation

const { CovenantBuilder, CovenantTemplates } = require('@smartledger/bsv/lib/smart_contract');

// Write covenant logic in JavaScript
const valueLock = CovenantTemplates.valueLock('50c3000000000000');
const script = valueLock.build();
console.log(script.cleanedASM); 
// Output: OP_SIZE 34 OP_SUB OP_SPLIT OP_DROP OP_8 OP_SPLIT OP_DROP 50c3000000000000 OP_EQUALVERIFY OP_1

// Custom covenant builder
const custom = new CovenantBuilder()
  .comment('Validate preimage value field')
  .extractField('value')
  .push('50c3000000000000')
  .equalVerify()
  .push(1);

Complete Opcode Mapping (121 Opcodes)

const SmartContract = require('@smartledger/bsv/lib/smart_contract');

// Simulate script execution in JavaScript
const result = SmartContract.simulateScript(['OP_1', 'OP_2', 'OP_ADD', 'OP_3', 'OP_EQUAL']);
console.log(result.finalStack); // ['01'] - TRUE

// Get comprehensive opcode information
const opcodes = SmartContract.getOpcodeMap();
console.log(Object.keys(opcodes).length); // 121 opcodes mapped

BIP143 Preimage Parsing

const { CovenantPreimage } = require('@smartledger/bsv/lib/covenant-interface');

// Enhanced preimage parsing with field-by-field access
const preimage = new CovenantPreimage(preimageHex);

console.log('Version:', preimage.nVersionValue);      // uint32 accessor
console.log('Amount:', preimage.amountValue);         // BigInt accessor  
console.log('Valid structure:', preimage.isValid);    // Boolean validation

PUSHTX Covenants (nChain WP1605)

const { CovenantInterface } = require('@smartledger/bsv/lib/covenant-interface');
const covenant = new CovenantInterface();

// Create PUSHTX covenant with in-script signature generation
const pushtxCovenant = covenant.createAdvancedCovenant('pushtx', {
  publicKey: '0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
  enforceOutputs: true,
  sighashType: 0x41
});

Perpetually Enforcing Locking Scripts (PELS)

// Create perpetual covenant that enforces rules across all future transactions
const pels = covenant.createAdvancedCovenant('perpetual', {
  publicKeyHash: '751e76e8199196d454941c45d1b3a323f1433bd6',
  feeDeduction: 512,
  enforceScript: true,
  enforceValue: true
});

๐Ÿ› ๏ธ Custom Scripts

Multi-signature Scripts

const { CustomScriptHelper } = require('@smartledger/bsv/lib/custom-script-helper');
const helper = new CustomScriptHelper();

// Create 2-of-3 multisig script
const multisigScript = helper.createMultisigScript([
  publicKey1, publicKey2, publicKey3
], 2);

Timelock Contracts

// Create timelock script (block height)
const timelockScript = helper.createTimelockScript(
  publicKey,
  750000, // block height
  'block'
);

๏ฟฝ Examples

Basic Examples

Documentation

๐Ÿ”ง CDN Bundles

| Bundle | Size | Description | |--------|------|-------------| | bsv.bundle.js | 684KB | Complete library with all features | | bsv.min.js | 364KB | Minified production version | | bsv-ecies.min.js | 145KB | ECIES encryption only | | bsv-message.min.js | 120KB | Message signing only | | bsv-mnemonic.min.js | 98KB | Mnemonic handling only |

๐Ÿ” Security

Enhanced Security Features

  • Elliptic Curve Fix: Updated to secure [email protected]
  • Parameter Fixing: Public key, ephemeral key, sighash flag validation
  • DER Canonicalization: Transaction malleability prevention
  • Preimage Validation: Complete BIP143 structure verification

๐Ÿ“ Changelog

v3.2.0 - JavaScript-to-Bitcoin Script Framework

  • โœ… Complete JavaScript-to-Bitcoin Script translation system
  • โœ… 121 Bitcoin Script opcodes mapped to JavaScript functions
  • โœ… High-level CovenantBuilder API for rapid development
  • โœ… Real-time script simulation and debugging capabilities
  • โœ… Template-based covenant patterns library
  • โœ… Automatic ASM generation from JavaScript operations
  • โœ… Enhanced documentation and comprehensive examples

v3.1.1 - Advanced Covenant Framework

  • โœ… Enhanced covenant interface with BIP143 + PUSHTX support
  • โœ… Perpetually Enforcing Locking Scripts (PELS) implementation
  • โœ… Transaction introspection with preimage analysis
  • โœ… Comprehensive documentation and examples

v3.0.2 - Custom Script Framework

  • โœ… Complete custom script development API
  • โœ… Multi-signature, timelock, and conditional script support
  • โœ… Transaction signature API gap resolution

v3.0.1 - Ultra-Low Fee System

  • โœ… 0.01 sats/byte fee configuration (91% reduction)
  • โœ… Advanced UTXO state management
  • โœ… Change output optimization

๐Ÿ“„ License


๐Ÿ“š Complete Documentation

๐Ÿš€ Getting Started

๐ŸŽฏ Development Guides

๐Ÿ”ง Technical Resources

๐ŸŒ Loading Strategy Examples

| Use Case | Recommended Load | Size | Features | |--------------|---------------------|----------|--------------| | Simple Transactions | bsv.min.js | 449KB | Core BSV + SmartContract | | DeFi Development | Core + Covenant + Debug | 932KB | Advanced contracts + tools | | Enterprise Apps | bsv.bundle.js | 764KB | Everything included | | Mobile/Lightweight | Core + Script Helper | 476KB | Essential tools only | | Research/Analysis | Core + SmartContract | 900KB | Full debug capabilities |

๐Ÿ”— Cross-References

From Quick Start โ†’ Deep Dive:

From Examples โ†’ Implementation:

From Concepts โ†’ Code:

๐ŸŽ“ Learning Path

  1. Start: 2-Minute Quick Start
  2. Practice: Examples Directory
  3. Build: Custom Script Guide
  4. Advanced: Covenant Development
  5. Deploy: Production Guidelines

๏ฟฝ Complete Documentation

๐Ÿ“š Getting Started Guides

๐Ÿ†• Advanced Features Documentation

๐Ÿ“Š Technical References

๐Ÿ“‹ Examples & Demos

๐ŸŽฎ Try the Interactive Demos:

# Terminal-based interactive demo
npm run demo

# Or run specific features
npm run demo:basics     # Library basics & tests
npm run demo:covenant   # Covenant builder
npm run demo:preimage   # BIP-143 preimage parser
npm run demo:utxo      # UTXO generator
npm run demo:scripts   # Script tools

# Web-based demo (open in browser)
npm run demo:web

๐Ÿ” Troubleshooting & Support


๏ฟฝ๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿค Contributing

We welcome contributions to SmartLedger-BSV! Please see our Contributing Guide for details.

๐Ÿข Enterprise Support


SmartLedger-BSV v3.3.4 - Complete Bitcoin SV Development Framework

Built with โค๏ธ for the Bitcoin SV ecosystem โ€ข 9 Loading Options โ€ข Enterprise Ready