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 psbtIs 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 unlockbefore callingsign. - 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. broadcastcallstx.finalize()— all inputs must be fully signed or it will throw.- Fee estimates in
estimate-feeare based on the PSBT's current vsize; they reflect the signed transaction size, not the unsigned size.
How can the creator link this skill?
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>