1 XMR = $428.37

Please login

Region:

Escrow Guide

How it works

The Monero multisig escrow tool helps to keep traders safe when buying or selling. Sellers must first enable escrow as a payment method when creating their listings. Then buyers can select the payment method "Escrow (beta)", plus a mediator of their choice, when they order, and have peace of mind that they can get refunded in the case of a dispute.

The escrow tool offers non-custodial 2-of-3 Monero multisig. It runs in your browser via Monero JavaScript (client-side). No mnemonics, wallet files or private keys are sent to the server. In addition, multisig sync data and private messages are encrypted to the traders’ public keys.

The various steps, such as prepare_multisig or export_multisig_info, are done automatically in the background. You only need to keep the tab open until the step is completed.

Traders don’t need to be online at the same time, but the multisig cannot progress to the next stage until each trader logs in and completes their step.

The four escrow stages

The multisig escrow has four stages: Preparation, Deposit, Decision and Payout.

Stage One - Preparation

These steps generate the multisig wallet and are done automatically in the background. Traders just need to keep their tab open while each step runs.

Steps:

1) A mnemonic is generated for each trader. Traders must backup their mnemonics.
2) All traders must join and exchange public keys (which happens in the background). After this, the chatbox will be unlocked and the multisig process can begin.
3) prepare_multisig must be done by the buyer, seller and mediator
4) make_multisig must be done by the buyer, seller and mediator
5) exchange_multisig_keys must be done by the buyer, seller and mediator
6) exchange_multisig_keys (second time) must be done by the buyer, seller and mediator

After the preparation stage is completed, the multisig address can be seen in the "Info" tab.
Each trader must backup their mnemonic! The mnemonic must be entered every time you visit your escrow. If you lose your mnemonic, you lose access to your escrow and its funds. As the escrow tool is client-side, XmrBazaar never sees any mnemonics and therefore cannot help you to recover your mnemonic.

Stage Two - Deposit

This stage requires active input from the buyer.

The buyer must send the correct amount of XMR to the multisig deposit address, which will be displayed on screen.

The buyer must then click on "Check for deposit". This starts to sync the wallet. After the deposit is detected, the escrow can progress to stage three.

Stage Three - Decision

This stage requires active input from at least two participants.
After making the final decision, both signers must stay online to generate, sign and broadcast the multisig transaction!

In the decision stage, two buttons are displayed: "Refund" and "Payout". The buyer may either request a refund or pay the seller. Likewise, the seller may request payment or choose to voluntarily refund the buyer.

If the buyer and seller disagree (e.g. the buyer requests a refund, but the seller requests payout), the mediator must decide whether the buyer should be refunded or the seller should be paid.

Additionally, if one trader makes a decision, and the other trader does not respond for 7+ days, the mediator may decide to refund or payout the remaining trader.

The result of the decision determines who will sign the 2-of-3 multisig transaction. The two signers must then complete stage four, in order to send the payout transaction.

Example 1

Buyer: Requests refund
Seller: Requests payout
Mediator: Agrees to refund buyer

Result: 2 out of 3 traders agreed to refund the buyer
Signers: Buyer and mediator
The buyer and mediator must remain online to complete stage four (payout)

Example 2

Buyer: Pay seller
Seller: Accept payout
Mediator: No action required

Result: 2 out of 3 traders agreed to pay the seller
Signers: Buyer and seller
The buyer and seller must remain online to complete stage four (payout)

Example 3

Seller: Requests payout
Buyer: *no response for 7+ days*
Mediator: Agrees to pay seller

Result: 2 out of 3 traders agreed to pay the seller
Signers: Seller and mediator

As the buyer did not respond to the seller’s decision within 7 days, the mediator may decide to payout the seller.
The seller and mediator must remain online to complete stage four (payout)

Stage Four - Payout

This stage is necessary in order to withdraw funds from the escrow wallet. After depositing funds and making a decision, please stay online to complete the final payout stage!

These steps prepare, generate, sign and broadcast the multisig transaction and are done automatically in the background. Traders just need to keep their tab open while each step runs.

Depending on the decision, signer1 may be the buyer or seller, and signer2 may be the seller or mediator.

Steps:

1) export_multisig_info must be done by signer1 and signer2 (requires syncing)
2) import_multisig_info must be done by signer1 and signer2
3) generate_tx must be done by signer1
4) sign_tx and broadcast_tx must be done by signer2
5) Your payout, refund or mediator fee has now been sent to your wallet!
After completing the export_multisig_info step, please do not clear IndexedDB or switch devices/browsers. export_multisig_info generates one-time keys which are saved in IndexedDB. If these one-time keys are lost, generate_tx will throw a "stale multisig data" error, and you will need to do the export_multisig_info step again!
Tor Browser automatically clears IndexedDB after you close the browser. In this case, it is easier if both signers are online at the same time, so that the transaction can be generated before you close Tor Browser (and lose the IndexedDB contents). Alternatively you can use Tor via a persistent browser like Firefox inside Whonix Workstation or Tails (with persistent storage).

Troubleshooting

I can’t see an option to use escrow when making an order
When publishing a listing, the seller can choose to accept direct payments, escrowed payments, or both. If the seller only chose to accept direct payments, you will not be able to use escrow. In that case, please message the seller and ask them to update their listing to accept escrowed payments.

If the listing is a digital download, you will not be able to use escrow. This is because digital downloads allow buyers to download the product (link, unique code, file) instantly after sending payment (verified via view key).
Escrow tool does not load
First please check that you (or the customer) selected "Escrow (beta)" as the payment method when making the order. On the "View Order" page, look for "Payment method" and check that it is "Escrow (beta)" and not "Direct payment".

If it says direct payment, you can cancel the order, then make a new order with escrow.

If it is an escrowed order, and you still don’t see the escrow tool, please enable JavaScript and check Inspect Element -> Console for any errors. If it still doesn’t work, please try a different browser or device if possible.

The escrow tool requires Monero JavaScript in order to create a multisig wallet in your browser and perform the multisig steps in the background.

If you want to use Monero CLI or MMS instead, you will need to do that manually (i.e. message the other traders, ask them to setup multisig with you via Monero CLI or MMS, and then manually mark the order as paid/completed).
Cannot use the chatbox
The chatbox is unlocked after all three traders 1) joined the escrow and 2) logged in to share their public keys (done in the background).
Unable to sync
Please try a different browser or internet connection, or click on "Node" in the menu and try a different remote node.
Forgot my mnemonic
Unfortunately it is impossible for XmrBazaar to recover your mnemonic. Because the escrow tool is non-custodial, XmrBazaar never sees any mnemonics or wallet files. Additionally, the mnemonic is not stored in IndexedDB, only in memory (it is lost if you close the tab). This is why you must backup the mnemonic to a text file, on paper, to encrypted storage or similar.
I deposited too much funds
Any excess deposits will be refunded to the buyer in the payout transaction
I want to change the amount or payout address
It is not possible to change the escrow amount or payout address after the order has been made.

You can see the payout address by clicking on "Info" in the menu.

If no deposits have been made, please cancel the order and then make a new order with the correct amount and payout address.

If a deposit has already been made, please download the backup (click on "Backup" in the menu) and continue the multisig process using Monero CLI (instructions are given in the backup file). With Monero CLI, you will be able to input the new addresses and/or new amount using the "transfer" command.
The mediator cannot make a decision
The mediator can only make a decision if 1) the buyer has requested a refund, but the seller requests to be paid or 2) one trader has made a decision, but the other trader has not responded after 7+ days.
I want to change my decision
If the escrow is still at the Decision stage, you can click "Reset Decision", and then make a new decision. If the escrow is already at the Payout stage, you and the other trader will need to download the backup (click on "Backup" in the menu) and continue the multisig process with Monero CLI (instructions are given in the backup file).
Stuck on "make decision" stage
After a final decision has been made (e.g. buyer and seller agree, or mediator has resolved a dispute), both signers will need to login to determine who is signer1 and who is signer2 (this happens automatically in the background). After that, the escrow will progress to the export_multisig_info step (and then import_multisig_info, generate_tx, sign_tx, and finally broadcast_tx).
Trader disappeared before signing
After the decision stage, both signers must be present to prepare, generate, sign and broadcast the transaction. If the other signer disappeared, please try to contact them via a different method. If not possible, please try to contact the third trader (buyer, seller or mediator). If the third trader is online, you can either 1) wait 1 week until the "Reset Signers" button appears, and then continue the multisig process with the third trader or 2) ask the third trader to download their backup and continue the multisig process with you via Monero CLI.

As it is a 2-of-3 multisig, two signatures are required in order to withdraw the funds. Because the escrow tool is non-custodial, XmrBazaar never sees any mnemonics or wallet files, and unfortunately cannot sign a transaction or help you to recover funds.
What does "Reset Signers" do?
The Reset Signers button appears if there has been no activity for longer than 1 week. If you are just waiting for the product to ship, you can ignore the button. However, if the delay is due to a missing trader, the remaining trader can choose to reset signers in order to sign with the third trader instead.

Example: The buyer agrees to payout the seller, but leaves before signing the transaction and does not come online again. The seller contacts the mediator, who is still online and is happy to sign the payout transaction. The seller then clicks on "Reset Signers", then the seller clicks on "Request Payout" and the mediator clicks on "Pay Seller". Now the seller and mediator can proceed with generating the payout transaction.
I get a "stale multisig data" error
The "stale multisig data" error occurs if one signer clears their IndexedDB between the steps export_multisig_data and sign_tx. export_multisig_data saves one-time keys into IndexedDB, which are later required in the generate_tx and sign_tx steps. If you cleared IndexedDB, you will need to do export_multisig_data again and ensure that the IndexedDB contents are not cleared until sign_tx has been completed.
The "estimated download" for syncing is too large
Monero wallets need to sync before funds can be sent. If the escrow is fairly new, you may only need to sync a few days of blocks (less than 250 MB). If the escrow is older than one month, you may need to sync 1+ GB of blocks. Unfortunately this is the same for all Monero wallets.

scan_tx was investigated as a way to decrease the sync, but unfortunately it does not seem to be compatible with import_multisig_info (possibly due to the detach_blockchain step).

If your estimated download is very large (e.g. 160 GB = the size of the full Monero blockchain), it is possible that your restore height is set to zero. In that case, click on "Node" in the menu, enter a restore height that is earlier than the deposit TX (e.g. 3300000), then click on "Update Restore Height". Then click on the refresh icon next to "Stage: Payout" to retry sync.
My mediator fee is slightly lower than expected
The Monero TX fee for the payout transaction is deducted from the mediator fee (around 1 cent).
How long does the escrow process take?
If all traders are online, it can be quick. Otherwise, you would need to wait until each trader comes online and completes their step.

Stage 1 - Preparation: Takes around 2 minutes to generate the multisig wallet, if all traders are online.

Stage 2 - Deposit: May take a few minutes to sync the deposit and wait for one confirmation.

Stage 3 - Decision: Depends on what product or service you are buying. It may take anywhere from a few minutes (if buying a digital product like an ebook or gift card) to a few weeks (if buying a physical product with shipping, a rental, or freelance work).

Stage 4 - Payout: May take 5-30 minutes, depending on how many blocks you need to sync and your internet speed. Note: If the escrow was created 4+ weeks ago, you may need to sync 1 GB+ of blocks.

The quickest escrow (for a digital product) took around 35 minutes from start to finish, which included waiting for 10 confirmations (10-block lock).
I have a different question
Please contact XmrBazaar support by private message or email here.

Screenshots

Screenshot 1: Select escrow + mediator



View full image

Screenshot 2: Deposit funds (Stage 2 out of 4)



View full image

Screenshot 3: Make decision (Stage 3 out of 4)



View full image