Sitemap

Bitcoin PSBT Builder

4 min readMay 28, 2025

--

Have you ever thought to yourself or asked your fellow bitcoiners: if there was only a way to create a transaction using UTXOs from multiple wallets, wait no more!

PSBT Builder is a tool that helps us create Partially Signed Bitcoin Transactions (PSBT) using any UTXO as input from any wallet.

It’s available online, runs on your browser, and is open-source; ideas are welcome!

Some use cases:

  1. Use UTXOs from multiple wallets
  2. Pay transaction fees for loved ones, friends, and others.
  3. Transfer standalone UTXOs with Ordinals using different wallets
  4. Consolidate UTXOs from different wallets
  5. Distribute Bitcoin to different addresses

To show its power, I will be using #1 as an example:

Use UTXOs from multiple wallets

First, open PSBT Builder, which is hosted on GitHub. Set the network, I’m going to select Testnet4 as shown below:

Press enter or click to view image in full size

Next, you need two UTXOs from different wallets (different seeds), mine are:

  1. tb1p4dz9e8c27x80z2zct5y0eg5lcqq8nks7768t5yvu8u98g0kq76csuws0vy
  2. tb1p247v3zw36znycsyf20284px96cyc9aa6qpt3y8774ekqt7u4v7rqghk2mt

Send some bitcoin to these addresses, view the transaction details on mempool.space and copy:

  1. Transaction Id (txid)
  2. Output index (vout)
  3. Value (sats sent to this address)
  4. ScriptPubKey
Press enter or click to view image in full size
txid: 08aef22914a85af59a2a022fa759803f2656f7e2a4ee2e9bfd00b0235ffd4948
vout: 1
value: 5000
ScriptPubKey: 5120ab445c9f0af18ef128585d08fca29fc00079da1ef68eba119c3f0a743ec0f6b1

Here’s the information from the other transaction:

txid: edc4aca4ea5e003b82bf3531bc80b074dcb7caba899698098e5e92de0974ec9e
vout: 1
value: 5000
ScriptPubKey: 5120557cc889d1d0a64c408953d47a84c5d60982f7ba0057121fdeae6c05fb956786

Now we enter this information in the PSBT Builder:

Press enter or click to view image in full size

Now we need an output address and a change address, I’m adding a change address because I’m assuming wallet #2 is paying the transaction fees.

Receiver address: tb1puzdept0yxvxgn959rm8q5289lmerz2j3lt9euvxlh0kqn2gxrfqq5mmwhq
Change address: tb1psgkl78ge7c2vt89qtm5da28c0erq8lf5mnt6m0my5uuf64m72asssyp0ru

Because Wallet #1 is going to keep the same bitcoin as before this transaction, I’m going to create the first output and put the same amount of sats it originally has, which is 5,000 sats, and I add it as so.

I also add the change address, which is from wallet #2 and I set the fee rate to 2 sat/vB which is double the rate of other transactions in testnet4

Press enter or click to view image in full size

Now, click the [Create & Download PSBT] button to download the PSBT, and share it with both the owner of wallet #1 and wallet #2, both need to sign the file separately and then combine it using the PSBT Builder tool as follows.

I load it onto Sparrow to verify that it has the correct information and that it is not tampered with:

Press enter or click to view image in full size

Now, sign it from wallet #1, and then sign it with wallet #2. Because I loaded both wallets onto Sparrow, I can toggle the signing wallets from a dropdown as seen in the screenshot above. Person A is wallet #1 in this case, I proceed to sign, and save the signed PSBT:

Press enter or click to view image in full size

And I do the same with wallet #2.

Once I have both files, I load them into the PSBT Builder and click Combine & Finalize:

Press enter or click to view image in full size

I can now download the final PSBT or broadcast. I download the file and load it onto Sparrow for inspection, as you can see, it now shows the view final transaction and broadcast transaction because the PSBT was created correctly:

Press enter or click to view image in full size

Once broadcasted, it changes the interface:

Press enter or click to view image in full size

If we open the transaction in mempool.space we can see the two 5k inputs, one output with 5k sats, and the other one with less because it paid for fees and the transaction fee, which goes to the miners:

Press enter or click to view image in full size

We can also see Sparrow showing the transactions on the different wallets and balances:

Wallet #1

Press enter or click to view image in full size

Wallet #2

Press enter or click to view image in full size

And that’s it, happy combining!

LFG! 🚀

--

--

Salvador Guerrero
Salvador Guerrero

Written by Salvador Guerrero

Computer Science Engineer, Cross-Platform App Developer, Open Source contributor. 🇲🇽🇺🇸