@btc-stamps/tx-builder - v0.1.7
    Preparing search index...

    @btc-stamps/tx-builder - v0.1.7

    @btc-stamps/tx-builder ๐Ÿš€

    npm version npm downloads npm package size JSR License: MIT Node.js CI codecov Maintenance Dependencies Status PRs Welcome

    The Bitcoin transaction builder for Bitcoin Stamps and SRC-20 metaprotocols

    Build Bitcoin transactions with native support for Bitcoin Stamps, SRC-20 tokens, Ordinals protection, and extensible metaprotocol support.

    Installation โ€ข Quick Start โ€ข Examples โ€ข Documentation โ€ข API Reference


    @btc-stamps/tx-builder is the only transaction builder with first-class support for Bitcoin Stamp metaprotocols. This can be extended to support other metaprotocols like Runes or BRC-20.

    • ๐Ÿ–ผ๏ธ Bitcoin Stamps: Complete Bitcoin Stamp metaprotocol support
    • ๐Ÿช™ SRC-20 Tokens: Full lifecycle support (deploy, mint, transfer)
    • ๐Ÿ›ก๏ธ UTXO Protection: Automatic protection of Ordinals, Inscriptions, Stamps & Counterparty assets
    • โšก Smart Selection: 6 UTXO selection algorithms with optimization
    • ๐Ÿ”Œ Zero Config: Works out-of-the-box with reliable defaults
    • ๐ŸŒณ Tree-Shakeable: Optimized for modern bundlers with sideEffects: false
    • ๐Ÿ“ฆ Lightweight: Minimal dependencies, maximum performance
    • ๐Ÿงช Battle-Tested: Comprehensive test suite with 430+ tests
    • ๐Ÿ”’ Type-Safe: Full TypeScript support with detailed types

    npm install @btc-stamps/tx-builder
    # or
    yarn add @btc-stamps/tx-builder
    # or
    pnpm add @btc-stamps/tx-builder
    import { TransactionBuilder } from 'npm:@btc-stamps/tx-builder@^0.1.6';
    
    • Node.js >= 18.0.0 or Bun >= 1.0.0
    • TypeScript >= 5.0.0 (for TypeScript users)
    • Deno: Partial support via npm compatibility (see guide)

    import { BitcoinStampBuilder, SelectorFactory } from '@btc-stamps/tx-builder';

    // Zero-config setup with automatic UTXO protection
    const selectorFactory = SelectorFactory.getInstance();
    const builder = new BitcoinStampBuilder(network, selectorFactory);

    // Build stamp transaction - automatically protects:
    // โœ… Ordinals (sats with inscriptions or runes)
    // โœ… Bitcoin Stamps (all types)
    // โœ… Counterparty assets (XCP, PEPECASH, etc.)
    // โœ… SRC-20 tokens
    const result = await builder.buildStampTransaction(utxos, {
    stampData: {
    imageData: imageBuffer,
    filename: 'my-stamp.png',
    },
    fromAddress: 'bc1q...',
    feeRate: 20,
    algorithm: 'protection-aware', // Optional: explicitly use protection-aware selection
    });
    import { SRC20Encoder, SRC20TokenBuilder } from '@btc-stamps/tx-builder';

    const encoder = new SRC20Encoder();

    // Deploy new token
    const deployData = await encoder.encode({
    p: 'SRC-20',
    op: 'DEPLOY',
    tick: 'KEVIN',
    max: '21000000',
    lim: '1000',
    });

    // Build transaction
    const psbt = await new SRC20TokenBuilder().buildSRC20Transaction({
    encodedData: deployData,
    utxos: selectedUTXOs,
    changeAddress: 'bc1q...',
    feeRate: 15,
    });

    Built-in protection for Ordinals, Inscriptions, Stamps, Counterparty assets, and SRC-20 tokens is automatic in all builders.

    // For custom protection configuration:
    const selector = selectorFactory.createSelector('protection-aware', {
    protectionConfig: {
    enableOrdinalsDetection: true, // Detect inscriptions and runes
    enableCounterpartyDetection: true, // Detect UTXO attached assets
    enableStampsDetection: true, // Detect UTXO attached stamps
    },
    });

    // Use with any builder
    builder.setSelector(selector);

    Optimize transaction fees with multiple selection strategies:

    import {
    AccumulativeSelector, // Fast selection
    BlackjackSelector, // Target exact amounts
    BranchAndBoundSelector, // Optimal selection
    WasteOptimizedSelector, // Long-term optimization
    } from '@btc-stamps/tx-builder';

    Zero-configuration with reliable defaults:

    // Works immediately - no setup required
    const provider = new ElectrumXProvider(); // Uses blockstream.info, fortress.qtornado.com, etc.

    Networks: Mainnet, Testnet, Regtest with automatic server selection



    npm test              # Run all tests
    npm run test:unit # Unit tests only
    npm run test:coverage # Coverage report

    Contributions welcome! See Contributing Guide for details.

    # Clone the repository
    git clone https://github.com/btc-stamps/tx-builder.git
    cd tx-builder

    # Install dependencies
    npm install

    # Run tests
    npm test

    # Build the package
    npm run build

    MIT License - see LICENSE file.

    Built on top of excellent libraries:


    GitHub: btc-stamps/tx-builder โ€ข NPM: @btc-stamps/tx-builder โ€ข JSR: @btc-stamps/tx-builder โ€ข Telegram: @BitcoinStamps

    Built with โค๏ธ by the Stampchain team

    Star on GitHub