Skip to content
Back to skills

Scure Btc Signer

ASecurity

@scure/btc-signer: modern audited Bitcoin signer in TypeScript. Pure functional, minimal dependencies, browser-friendly. USE WHEN: building modern web/mobile Bitcoin apps, evaluating bitcoinjs-lib alternative.

  • 31 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
ai-agentstypescriptbashreactgitapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 8, 2026

npx -y skills add claude-dev-suite/claude-dev-suite --skill scure-btc-signer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scure Btc Signer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scure Btc Signer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/claude-dev-suite-scure-btc-signer/badge)](https://www.skillsdirectory.com/skills/claude-dev-suite-scure-btc-signer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bitcoin-libraries-scure-btc-signer
description: |
  @scure/btc-signer: modern audited Bitcoin signer in TypeScript.
  Pure functional, minimal dependencies, browser-friendly.
  USE WHEN: building modern web/mobile Bitcoin apps, evaluating
  bitcoinjs-lib alternative.
allowed-tools: Read, Grep, Glob
---

# @scure/btc-signer

Modern Bitcoin library by Paul Miller (paulmillr.com). Audited by
Trail of Bits. Smaller, cleaner API than bitcoinjs-lib.

Repo: `github.com/paulmillr/scure-btc-signer`.

## Install

```bash
npm install @scure/btc-signer
```

## Quick examples

### Address generation
```ts
import * as btc from "@scure/btc-signer";
import { hex } from "@scure/base";

const sk = hex.decode("000...01");
const pk = btc.utils.privateAdd(sk, sk);   // example
const addr = btc.WIF().encode(sk);   // WIF
const p2wpkh = btc.p2wpkh(secp.getPublicKey(sk));
console.log(p2wpkh.address);   // bc1q...
```

### PSBT
```ts
const tx = new btc.Transaction();
tx.addInput({
    txid: "...",
    index: 0,
    witnessUtxo: { script: spk, amount: 100000n },
});
tx.addOutputAddress(destAddr, 99000n, btc.NETWORK);
tx.sign(sk);
tx.finalize();
const rawTx = tx.extract();
```

### Taproot
```ts
const tr = btc.p2tr(internalPubkey);
console.log(tr.address);   // bc1p...
```

## Companion

- `@scure/bip32` — HD derivation.
- `@scure/bip39` — mnemonic.
- `@noble/curves` — secp256k1 (used internally).

## Compared

See [bitcoinjs-lib/SKILL.md](../bitcoinjs-lib/SKILL.md) for comparison.

## Use cases

- Modern browser wallets (smaller bundle).
- React Native (better browser-compat than bitcoinjs-lib).
- Server apps wanting audited library.

## Common pitfalls

- Newer ecosystem; some integrations not yet ported.
- BigInt used throughout; older browsers need polyfill.

## See also

- [bitcoinjs-lib/SKILL.md](../bitcoinjs-lib/SKILL.md)
- [mempool-js/SKILL.md](../mempool-js/SKILL.md)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.