# @ledgerhq/psbtv2

> Partially Signed Bitcoin Transaction version 2 (BIP370) implementation

Latest version **0.5.0** (published 2026-05-04) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @ledgerhq/psbtv2
pnpm add @ledgerhq/psbtv2
yarn add @ledgerhq/psbtv2
bun add @ledgerhq/psbtv2
```

## Health

**Score 50/100 (C)** — status: active.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.5.0 |
| Published | 2026-05-04 |
| First published | 2026-01-16 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 618 |
| Maintainers | phenry-ledger, sergii-shkolin, gbrahm-ledger, ldg-github-ci, vbouzon, ledger-releaser |
| Keywords | Ledger, Bitcoin, PSBT, BIP370, BIP174 |

## Links

- npm: https://www.npmjs.com/package/@ledgerhq/psbtv2
- Repository: https://github.com/LedgerHQ/ts-libs
- Homepage: https://github.com/LedgerHQ/ts-libs/tree/main/libs/psbtv2
- Issues: https://github.com/LedgerHQ/ts-libs/issues
- npm.io page: https://npm.io/package/@ledgerhq/psbtv2

## Recent versions

- 0.5.0 (latest) — 2026-05-04
- 0.5.0-nightly.20260502030549 (nightly) — 2026-05-02
- 0.5.0-nightly.20260501030651 — 2026-05-01
- 0.5.0-nightly.20260430030641 — 2026-04-30
- 0.5.0-nightly.20260429231152 — 2026-04-29
- 0.5.0-nightly.20260429030620 — 2026-04-29
- 0.5.0-nightly.20260428030635 — 2026-04-28
- 0.5.0-nightly.20260425030518 — 2026-04-25
- 0.5.0-nightly.20260424030527 — 2026-04-24
- 0.5.0-nightly.20260423030511 — 2026-04-23
- 0.4.0 — 2026-04-22
- 0.4.0-nightly.20260422030546 — 2026-04-22
- 0.4.0-nightly.20260421030533 — 2026-04-21
- 0.4.0-nightly.20260418030511 — 2026-04-18
- 0.4.0-nightly.20260417030535 — 2026-04-17
- … 22 more at https://npm.io/package/@ledgerhq/psbtv2/versions

## README

# @ledgerhq/psbtv2

Partially Signed Bitcoin Transaction version 2 (PSBT v2) implementation following BIP370 and BIP174.

## Overview

This package provides a TypeScript implementation of PSBT v2, which is a data structure that carries all relevant information about a Bitcoin transaction through all stages of the signing process - from constructing an unsigned transaction to extracting the final serialized transaction ready for broadcast.

## Features

- Full PSBT v2 support (BIP370)
- Backward compatible with PSBT v0 (BIP174)
- Support for various address types:
  - P2PKH (Legacy)
  - P2WPKH-in-P2SH (Nested SegWit)
  - P2WPKH (Native SegWit)
  - P2TR (Taproot key path spending)

## Usage

```typescript
import { PsbtV2 } from "@ledgerhq/psbtv2";

// Create a new PSBT
const psbt = new PsbtV2();

// Deserialize from buffer
psbt.deserialize(psbtBuffer);

// Convert from PSBT v0 to v2
const psbtV0Buffer = Buffer.from("cHNidP8BAH...", "base64");
const psbtV2 = PsbtV2.fromV0(psbtV0Buffer);

// Allow transaction version 1 (version 2 is recommended per BIP68)
const psbtV2WithV1 = PsbtV2.fromV0(psbtV0Buffer, true);

// Access global fields
const version = psbt.getGlobalTxVersion();
const inputCount = psbt.getGlobalInputCount();
const outputCount = psbt.getGlobalOutputCount();

// Access input fields
const previousTxid = psbt.getInputPreviousTxid(0);
const outputIndex = psbt.getInputOutputIndex(0);

// Access output fields
const amount = psbt.getOutputAmount(0);
const script = psbt.getOutputScript(0);

// Serialize back to buffer
const serialized = psbt.serialize();
```

## API

### Global Fields

- Transaction version
- Fallback locktime
- Input count
- Output count
- TX modifiable flags
- PSBT version

### Input Fields

- Non-witness UTXO
- Witness UTXO
- Partial signatures
- Sighash type
- Redeem script
- BIP32 derivation paths
- Final scriptsig
- Final scriptwitness
- Previous transaction ID
- Output index
- Sequence
- Taproot key signatures
- Taproot BIP32 derivation

### Output Fields

- Redeem script
- BIP32 derivation paths
- Amount
- Script pubkey
- Taproot BIP32 derivation

## License

Apache-2.0

---
_Source: https://npm.io/package/@ledgerhq/psbtv2 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
