Nunchuk Wallet Transactions
If auth or network setup is the blocker, use nunchuk-setup.
Default workflow
Progress:
- Create the transaction
- Sign the transaction
- Broadcast the transaction
If the user explicitly asks for only sign, only broadcast, or only inspect, do only that step.
Create
Create a transaction:
nunchuk tx create --wallet <wallet-id> --to <address> --amount <satoshis>Sign
Sign with all matching stored keys:
nunchuk tx sign --wallet <wallet-id> --tx-id <tx-id>Sign with a specific stored key:
nunchuk tx sign --wallet <wallet-id> --tx-id <tx-id> --fingerprint <xfp>Merge an externally signed PSBT:
nunchuk tx sign --wallet <wallet-id> --tx-id <tx-id> --psbt <signed-psbt-base64>Inspect
List transactions:
nunchuk tx list --wallet <wallet-id>Get one transaction:
nunchuk tx get --wallet <wallet-id> --tx-id <tx-id>Broadcast
Broadcast a fully signed transaction:
nunchuk tx broadcast --wallet <wallet-id> --tx-id <tx-id>Common requests
User asks: send 100 USD to an address:
nunchuk tx create --wallet <wallet-id> --to <address> --amount 100 --currency USDUser asks: send 250 USD to an address, then sign and broadcast:
nunchuk tx create --wallet <wallet-id> --to <address> --amount 250 --currency USD
nunchuk tx sign --wallet <wallet-id> --tx-id <tx-id>
nunchuk tx broadcast --wallet <wallet-id> --tx-id <tx-id>User asks: sign with a hardware wallet or external signer:
# Get the current pending PSBT.
nunchuk tx get --wallet <wallet-id> --tx-id <tx-id> --json
# Sign that PSBT externally, then merge it back.
nunchuk tx sign --wallet <wallet-id> --tx-id <tx-id> --psbt <signed-psbt-base64>Defaults
tx createtreats--amountas satoshis by default.- Use
--currencyfor fiat or BTC amounts. tx createestimates the fee rate automatically.- If no key option is provided,
tx signauto-detects matching stored keys for the wallet and signs with all of them. - Use
tx get --jsonto retrieve the current pending PSBT before signing externally. - Use
--jsonwhen the user needs exact machine-readable output.
Gotchas
tx signskips keys that already signed the PSBT.tx sign --psbtcannot be used with--xprvor--fingerprint.tx broadcastrequires a fully signed transaction, status isREADY_TO_BROADCAST.