The only SAFE way to do a two-party transaction between untrusted peers (a solution using BIP38)

Trustless Escrow Easy Four Step Process

If you encrypted your private key with Safari 6.0.x, due to a bug in the Safari 6.0.x JIT engine you may need to use a different browser.

It is recommended that you ...

  • Do not use Safari 6.0.x
  • Do run the BIP38 test suite
  • Test the decryption with different browsers before sending coins to an address.

The person who will be receiving the Bitcoin payment should create a unique passphrase that ONLY YOU, the receiver of the payment, should be in possession. This passphrase is used to generate an encrypted private key that the sender of the Bitcoins will not have access.

IMPORTANT! - You will need to remember the passphrase you use because this passphrase is the ONLY way you can verify the transaction is confirmed as well as the ONLY way to withdraw the Bitcoins out of the escrow wallet.

Once you have generated an Escrow Code, you can send that generated Escrow Code to the other party and have them visit and select Step #2.


You should have received an Escrow Code from the other party in the contract. You need to copy/paste that code EXACTLY as you received from the other party. Press the "Generate All" button and wait for the three fields below to be generated.

Now that you have the three fields above filed out you will need to save each of these fields. You should immediately send the Bitcoin Address and the Confirmation Code to the other party in the contract. The Confirmation Code will allow the other party to verify that everyone has the correct information. This will allow the other party to watch on the Blockchain Explorer and see when the Bitcoins you send will confirm into the generated Bitcoin wallet.

Do not give the other party the encrypted key yet, until you are ready to release the Bitcoins due to the fulfillment of the contract from the other party's side.


At this point the sender of the Bitcoins will have given you a Confirmation Code and a Bitcoin Address. You will use the Confirmation Code along with the original passphrase you created during Step #1 to verify that everything is properly in order. If the Bitcoin addresses match: the one the other party sent you and the one you confirmed using the Confirmation Code & Passphrase, then you can tell the other party that they can send the Bitcoins. You will not have access to the Bitcoins until the entire transaction is completed and the other party sends you the Encrypted Private Key.

You can now watch on the Blockchain Explorer to see when the Bitcoins confirm to the escrow wallet. (This is done by putting the Escrow Bitcoin Address in a Blockchain explorer search box.).

Once verified, the other party can send coins to the address. You will not have access to the coins until the other party sends you the encrypted private key.

Once the other party receives your product or service they will send you the Encrypted Private Key. At this point you can continue to Step #4.


Finally, using the initial passphrase from Step #1 and the Encrypted Private Key the other party in the transaction sent you you can decrypt the private key of the Escrow Bitcoin address.

Now you can proceed to your regular Bitcoin wallet and import the private key and transfer the Bitcoins that are sitting in the Escrow Bitcoin address.

** Congratulations on a successful trustless Bitcoin transaction. **


Encrypted Private Keys

The test suite does take some time to complete so please be patient.

This project is a fork of the abandoned old codebase. So as the fork moves further from the original codebase, due to the project no longer being maintained, you will discover a very different user experience.
If you found this escrow system helpful and want to donate to its continued development and upkeep, you can send donations to 16QRZuRpbL2C7iCLrNPshBA9Vfhp2skgif