New: 2-of-3 Multisig Escrow (non-custodial)
You asked for trust-minimized. Here it is.
- Buyer, seller, and operator each hold one key. Any two move funds. On a normal deal the operator never touches your money - buyer and seller co-sign the release themselves. Nobody can unilaterally take the funds, us included.
- Your keys are generated in your own browser (WebAssembly Monero wallet) and never touch our server. We only relay opaque multisig data - no seeds, no keys, ever.
- One-time restore key per party, shown once and saved by you, so you can come back and co-sign a release later - even days later.
- Disputes: the operator is a tiebreaker only. On a dispute we co-sign with the side that's owed — refund to the buyer or release to the seller. We never take custody.
- Live 0/10 block confirmation tracking for both buyer and seller, so both sides always see exactly where the funds are.
- Works over Tor (set Tor Browser to Standard for the in-browser wallet; operator-mediated needs no JS and runs at every security level).
Cheaper fees
- Operator-mediated cut to 1% + $3 minimum Big drop for everyday deals.
- Multisig: 3% + $3 minimum - a small premium for full non-custodial and an always-on mediator.
- No fee at all on disputes or refunds, either mode.
Security hardening
- Per-escrow PIN on operator-mediated.Every sensitive action - release, set payout, set refund, dispute - now requires a private PIN you set on first open. If someone gets your link, they still can't act as you. Lockout after repeated wrong attempts.
- Multisig is protected by the key itself - the in-browser key plus your one-time restore key. A link alone can never sign anything.
- Set-your-own-PIN / do-your-own-setup guidance throughout, so no party - including whoever created the escrow — can act on another's behalf.
Everything else
- Built-in escrow chat for both parties and the operator, on every deal.
- "Resume an escrow" - paste your link and jump right back in.
- Full operator dispute panel (private, SSH-only) for reviewing and co-signing multisig disputes.
- Same code on clearnet and .onion. No CDN, no external calls, no accounts, no KYC, minimal logs - never sold
Operator-mediated stays zero-JavaScript and works at every Tor security level. Multisig is *opt-in* for anyone who wants to hold their own keys.
xmrescrow[.]app · verify releases and this post with my PGP key at **/pgp**
Link: xmrescrobcw33cnm5ajyzn5xaqr5vkdsqxmptc55plgvxsnqybmhszqd.onion
---
PGP: CD37A31282542C2ACE91FED3A345CD6C2674D00A
gpg --fetch-keys https://xmrescrow.app/pgp.txt
General
From v1.0.9.5 Beta → v1.1.0. The beta's over. This is the biggest update since launch: a second, fully non-custodial escrow mode, a real fee cut, and a security overhaul. Here's everything.
Started by XMREscrow · Jul 18, 2026
News & Updates posted below! Thread for XMRescrow development
https://github.com/xmrescro/xmrescrow-client
https://github.com/xmrescro/xmrescrow-client
This site is vibe coded asf
Anyone who's serious about their business isn't going to trust or use a vibe coded escrow.
Why would someone use your service over quickescrow?
Anyone who's serious about their business isn't going to trust or use a vibe coded escrow.
Why would someone use your service over quickescrow?
"Vibe coded" is cope for "I judged the CSS."
Serious people dont pick escrows by font choice, they pick who holds keys, whats logged, how disputes work, and what you can verify.. XMRescrow is XMR only, quickescrow is flawed for accepting BTC. quickescrow exists, cool, different product.
We're monero escrow with operator mediated and 2-of-3 mutlisig, not a general swap desk.
Serious people dont pick escrows by font choice, they pick who holds keys, whats logged, how disputes work, and what you can verify.. XMRescrow is XMR only, quickescrow is flawed for accepting BTC. quickescrow exists, cool, different product.
We're monero escrow with operator mediated and 2-of-3 mutlisig, not a general swap desk.
quickescrow isnt trying to be a open-client browser 2-of3 XMR only escrow, we are. Vault exists for friction. you pick.
How to verify our Monero multisig escrow can't touch your funds (don't take my word for it)
A few people asked, fairly, why they should trust a new escrow with their XMR. Short answer: for the multisig mode, you shouldn't have to - so here's exactly how to check, in a few minutes, that your key never leaves your browser and that the operator can't move funds alone.
1. Read the client. It's open source: github.com/xmrescro/xmrescrow-client. The wallet code is the monero-ts WebAssembly library — the same one used across the Monero ecosystem. Diff it against the upstream `monero-ts` npm package; if they match, the wallet running in your browser is the audited upstream code, not something I swapped in.
2. Watch your own network traffic. Open your browser dev tools → Network tab while you set up a multisig escrow. You'll see the page exchange *opaque multisig data* with the server (prepare/make/exchange rounds) - and you will not see your private key or seed leave the browser, because it never does. The server only ever relays the multisig hex that all parties need to build the shared address.
3. Check the math, not me. It's a standard 2-of-3. Three keys: yours, your counterparty's, mine. Any two sign. On a normal deal, you and your counterparty co-sign the release directly - my key is never used. I hold exactly one of three, so I cannot move the funds alone. That's not a policy I promise to follow; it's what 2-of-3 means.
4. Verify who I am. Operator identity is PGP-signed - fingerprint CD37 A312 8254 2C2A CE91 FED3 A345 CD6C 2674 D00A, the same on the site (/pgp), the warrant canary (/canary, clearsigned, `gpg --verify`), and the @xmrescrow profile. Cross-check them; if one differs, something's wrong.
The custodial "Vault" mode is a different trust model and I don't pretend otherwise — that's what the per-escrow PIN, canary, and PGP identity are for, and it exists for people who'd rather not run a browser wallet (and it works with JavaScript fully off, at Tor's safest level).
Happy to answer anything — including walking through the ceremony or the dispute co-signing in detail. Don't trust, verify.
A few people asked, fairly, why they should trust a new escrow with their XMR. Short answer: for the multisig mode, you shouldn't have to - so here's exactly how to check, in a few minutes, that your key never leaves your browser and that the operator can't move funds alone.
1. Read the client. It's open source: github.com/xmrescro/xmrescrow-client. The wallet code is the monero-ts WebAssembly library — the same one used across the Monero ecosystem. Diff it against the upstream `monero-ts` npm package; if they match, the wallet running in your browser is the audited upstream code, not something I swapped in.
2. Watch your own network traffic. Open your browser dev tools → Network tab while you set up a multisig escrow. You'll see the page exchange *opaque multisig data* with the server (prepare/make/exchange rounds) - and you will not see your private key or seed leave the browser, because it never does. The server only ever relays the multisig hex that all parties need to build the shared address.
3. Check the math, not me. It's a standard 2-of-3. Three keys: yours, your counterparty's, mine. Any two sign. On a normal deal, you and your counterparty co-sign the release directly - my key is never used. I hold exactly one of three, so I cannot move the funds alone. That's not a policy I promise to follow; it's what 2-of-3 means.
4. Verify who I am. Operator identity is PGP-signed - fingerprint CD37 A312 8254 2C2A CE91 FED3 A345 CD6C 2674 D00A, the same on the site (/pgp), the warrant canary (/canary, clearsigned, `gpg --verify`), and the @xmrescrow profile. Cross-check them; if one differs, something's wrong.
The custodial "Vault" mode is a different trust model and I don't pretend otherwise — that's what the per-escrow PIN, canary, and PGP identity are for, and it exists for people who'd rather not run a browser wallet (and it works with JavaScript fully off, at Tor's safest level).
Happy to answer anything — including walking through the ceremony or the dispute co-signing in detail. Don't trust, verify.
XMRescrow v1.1.1 -- we ran a security audit on our own escrow flow and hardened it.. AGAIN!
Biggest fix: multisig now shows the deposit address to BOTH parties so you can confirm it matches before funding.
Also: self-healing PIN lockout, access tokens no longer logged (bug), restore-key refresh recovery, and PGP-signed commits on the open-source client (same key as the site + canary, GitHub-Verified).
O: Dont trust - verify: blog + git below!
Biggest fix: multisig now shows the deposit address to BOTH parties so you can confirm it matches before funding.
Also: self-healing PIN lockout, access tokens no longer logged (bug), restore-key refresh recovery, and PGP-signed commits on the open-source client (same key as the site + canary, GitHub-Verified).
O: Dont trust - verify: blog + git below!
v1.1.2 -- You can now embed Monero 2-of-3 escrow on your own site in one line!
New in XMREscrow: a drop-in badge that adds non-custodial Monero escrow to any marketplace or community. It's just a link + image. it deep-links into the real multisig flow where each key is generated in the user's own browser, so your site never touches keys or funds. Partners get referral codes (revenue share or a user discount). Open-source client, free to embed. Full disclosure, I run it. Details at /embed or the repo. Verify, don't trust.
New in XMREscrow: a drop-in badge that adds non-custodial Monero escrow to any marketplace or community. It's just a link + image. it deep-links into the real multisig flow where each key is generated in the user's own browser, so your site never touches keys or funds. Partners get referral codes (revenue share or a user discount). Open-source client, free to embed. Full disclosure, I run it. Details at /embed or the repo. Verify, don't trust.
Update - v1.1.5: practice mode, and see what you sign before you sign it
Someone asked for a way to learn the service without risking real funds first. Fair request, so it is the headline here.
Practice mode
There is now a walkthrough of both escrow types at /demo. Same screens as a real trade, filled with example data. No escrow created, no address real, nothing stored, no Monero involved. The Vault walkthrough runs with JavaScript fully off, same as the real flow, so it works at Tor's safest setting. The multisig one covers what people actually get stuck on - where your key comes from, why the restore key matters, what co-signing means. A minute each.
Review before signing
Both sides now see a review screen before any multisig transaction is signed: how much, to which address. Nothing signs until you confirm, cancelling signs nothing. For the co-signer, the destinations are read out of the transaction itself where the browser supports it, rather than repeated back from our page - a signing screen that just echoes the server would defeat the point of multisig. The payout address also locks once a release is under way, so what you review is what gets paid.
Multisig annoyances fixed
Setup no longer fails on the first click and works on the second. A stalled setup now tells you whether your counterparty is on their page, when they were last seen, or whether they never opened their link. A completed escrow stops polling and says you are done.
Fees
Two independent price sources instead of one, with the last known price remembered. If prices are genuinely unavailable we decline to create an escrow rather than guess - a guessed rate is a wrong fee. Note the fee is calculated once at creation and stored, so later price moves never affect an existing escrow.
Also
Outbound notifications route over Tor. Interface is in nine languages and follows your browser automatically, so both sides do not need to read English.
Client and build verification: github.com/xmrescro/xmrescrow-client
PGP CD37 A312 8254 2C2A CE91 FED3 A345 CD6C 2674 D00A
Someone asked for a way to learn the service without risking real funds first. Fair request, so it is the headline here.
Practice mode
There is now a walkthrough of both escrow types at /demo. Same screens as a real trade, filled with example data. No escrow created, no address real, nothing stored, no Monero involved. The Vault walkthrough runs with JavaScript fully off, same as the real flow, so it works at Tor's safest setting. The multisig one covers what people actually get stuck on - where your key comes from, why the restore key matters, what co-signing means. A minute each.
Review before signing
Both sides now see a review screen before any multisig transaction is signed: how much, to which address. Nothing signs until you confirm, cancelling signs nothing. For the co-signer, the destinations are read out of the transaction itself where the browser supports it, rather than repeated back from our page - a signing screen that just echoes the server would defeat the point of multisig. The payout address also locks once a release is under way, so what you review is what gets paid.
Multisig annoyances fixed
Setup no longer fails on the first click and works on the second. A stalled setup now tells you whether your counterparty is on their page, when they were last seen, or whether they never opened their link. A completed escrow stops polling and says you are done.
Fees
Two independent price sources instead of one, with the last known price remembered. If prices are genuinely unavailable we decline to create an escrow rather than guess - a guessed rate is a wrong fee. Note the fee is calculated once at creation and stored, so later price moves never affect an existing escrow.
Also
Outbound notifications route over Tor. Interface is in nine languages and follows your browser automatically, so both sides do not need to read English.
Client and build verification: github.com/xmrescro/xmrescrow-client
PGP CD37 A312 8254 2C2A CE91 FED3 A345 CD6C 2674 D00A
http://xmrescrobcw33cnm5ajyzn5xaqr5vkdsqxmptc55plgvxsnqybmhszqd.onion/demo