WalletRead the docsLaunch app
New: verify in your browser

Recompute any closed batch from its ciphertexts and the drand beacon

XMRPool docs

XMRPool is a dark pool for Monero. You trade XMR against ETH in sealed batches, and matched orders settle as atomic swaps with no bridge.

The parts

Four pieces work together. A Monero wallet that runs in your browser. Timelock encryption that seals each order until its batch closes. A batch auction that clears every order at one price. An atomic swap contract that moves ETH only against the secret that releases the XMR.

Your browsermonero-ts walletWASM, web workertlock sealingtlock-jsbatch verifiersame clearing codeXMRPool APIciphertexts onlydrand quicknetbeacon every 3 sMonero nodeyou pick itXmrSwap contractRobinhood Chainsealed orderblocks, txsbeaconmatched pairs
Where each part runs

A trade, start to end

  1. You write an order: side, size in XMR, limit price in ETH per XMR, and your addresses.
  2. Your browser encrypts it to the drand round at the end of the current ten-minute batch and sends the ciphertext with its SHA-256 commitment.
  3. At the close the drand beacon for that round is published. Anyone, us included, can now decrypt every order of the batch.
  4. The batch clears at one uniform price. Matched buyers and sellers are paired in commitment order.
  5. Each pair settles as an XMR to ETH atomic swap.
  6. The batch is published with its ciphertexts, so anyone can recompute it in the browser.

What is live

PartStatus
Browser wallet (create, restore, sync, subaddresses, send)Live on Monero mainnet
Sealed orders, batch close, clearing, public verificationLive
Swap contract and its tests, DLEq proof, shared addressWritten and tested; the contract is not deployed yet, so no swap settles today
Monero lock and sweep inside a swapAlpha code, not run end to end
Stealth payout address for the ETH legNext