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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@btc-stamps/tx-builder

v0.1.7

Published

Transaction builder for Bitcoin Stamps and SRC-20 tokens with advanced UTXO selection

Readme

@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.

InstallationQuick StartExamplesDocumentationAPI Reference


🎯 Why tx-builder?

@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.

✨ Key Features

  • 🖼️ 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

📦 Installation

Node.js / TypeScript

npm install @btc-stamps/tx-builder
# or
yarn add @btc-stamps/tx-builder
# or
pnpm add @btc-stamps/tx-builder

Deno

import { TransactionBuilder } from 'npm:@btc-stamps/tx-builder@^0.1.6';

Requirements

  • 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)

🚀 Quick Start

Bitcoin Stamps with UTXO Protection

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
});

SRC-20 Tokens

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,
});

🛡️ Advanced UTXO Protection

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);

⚡ UTXO Selection Algorithms

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';

🌐 Network Support

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


📚 Learn More


🧪 Testing

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

🤝 Contributing

Contributions welcome! See Contributing Guide for details.

Development Setup

# 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

📄 License

MIT License - see LICENSE file.

🙏 Acknowledgments

Built on top of excellent libraries:

💬 Support


GitHub: btc-stamps/tx-builderNPM: @btc-stamps/tx-builderJSR: @btc-stamps/tx-builderTelegram: @BitcoinStamps

Built with ❤️ by the Stampchain team

Star on GitHub