skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
aibtcdev/skills114 installs

psbt

PSBT (Partially Signed Bitcoin Transaction) construction and signing — build PSBTs for ordinals purchases, estimate fees, sign with the active wallet, and broadcast finalized PSBTs.

How do I install this agent skill?

npx skills add https://github.com/aibtcdev/skills --skill psbt
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides functionality for managing Bitcoin Partially Signed Bitcoin Transactions (PSBTs), including fee estimation, signing, and broadcasting. It handles sensitive private keys through a local wallet manager and interacts with the mempool.space API. While these are privileged operations, they are necessary for the skill's stated purpose. The primary security consideration is the ingestion of external PSBT data, which represents a surface for indirect prompt injection.

  • Socketwarn

    1 alert: gptSecurity

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

PSBT Skill

Provides PSBT (Partially Signed Bitcoin Transaction) construction and signing operations on the Bitcoin L1. PSBTs enable multi-party signing workflows such as ordinals marketplace purchases where both buyer and seller must sign before broadcast.

  • estimate-fee — Read-only fee estimation for a PSBT given its structure.
  • sign — Sign one or more PSBT inputs with the active unlocked wallet (P2WPKH or Taproot keys).
  • broadcast — Finalize a fully signed PSBT and broadcast it to the Bitcoin network via mempool.space.

Usage

bun run psbt/psbt.ts <subcommand> [options]

Subcommands

estimate-fee

Estimate the network fee in satoshis for a given PSBT. Parses the transaction structure and computes vsize-based fee estimate for fast, medium, and slow fee tiers.

bun run psbt/psbt.ts estimate-fee --psbt <base64>

Options:

  • --psbt <base64> (required) — PSBT in base64 format

Output:

{
  "network": "mainnet",
  "vsize": 253,
  "inputsLength": 2,
  "outputsLength": 3,
  "feeEstimates": {
    "fast": { "satPerVb": 12, "totalSats": 3036 },
    "medium": { "satPerVb": 6, "totalSats": 1518 },
    "slow": { "satPerVb": 2, "totalSats": 506 }
  },
  "currentFeeSats": "1200"
}

sign

Sign PSBT inputs with the active wallet's BTC private keys (P2WPKH and/or Taproot). The wallet must be unlocked before calling this subcommand.

bun run psbt/psbt.ts sign --psbt <base64>

Options:

  • --psbt <base64> (required) — PSBT in base64 format to sign
  • --inputs <indexes> (optional) — Comma-separated input indexes to sign (signs all signable inputs if omitted)
  • --finalize (optional) — Finalize signed inputs immediately (default: false)

Output:

{
  "success": true,
  "network": "mainnet",
  "signedInputs": [1, 2],
  "finalizedInputs": [],
  "skippedInputs": [{ "index": 0, "reason": "no matching key for this input" }],
  "psbtBase64": "<updated-base64>"
}

broadcast

Finalize a fully signed PSBT and broadcast it to the Bitcoin network via mempool.space.

bun run psbt/psbt.ts broadcast --psbt <base64>

Options:

  • --psbt <base64> (required) — Fully signed PSBT in base64 format

Output:

{
  "success": true,
  "network": "mainnet",
  "txid": "abc123...",
  "explorerUrl": "https://mempool.space/tx/abc123...",
  "txHex": "0200..."
}

Notes

  • Wallet must be unlocked with bun run wallet/wallet.ts unlock before calling sign.
  • For ordinals purchase PSBTs (built by the MCP tool psbt_create_ordinal_buy): input index 0 is the seller's inscription UTXO; buyer inputs start at index 1. Sign only buyer inputs (index 1+) unless you are the seller.
  • broadcast calls tx.finalize() — all inputs must be fully signed or it will throw.
  • Fee estimates in estimate-fee are based on the PSBT's current vsize; they reflect the signed transaction size, not the unsigned size.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/aibtcdev/skills/psbt">View psbt on skillZs</a>