xGov-34 Algorand-Monero Swaps

Author Yared Afework (@HashMapsData2Value)

Category dApp

Focus DEX

Open-Source Yes

ALGO Requested 100,000 (Milestone 1 of 2)


This xGov proposal is a request for funding to produce a suite of tools that will allow for two entities, one owning XMR (Monero) and the other Algo (or ASA), to swap with each other.

This can be done trustlessly, though there is the possibility of one wasting the time of the other.

The benefits of introducing this are numerous, including making Algorand the gateway for Monero and turning it into a privacy layer for Algorand.

Note that this is scoped as an MVP with the absolute minimum necessary to make this work, and will require some technical know-how.

Milestone 1: Convert PoC into proper Beaker & Algokit code, pull down

Date: 3 month
Amount: 100000

  • Since I wrote the PoC lots of nice things have happened on Algorand. I need to recreate it with AlgoKit and into Beaker, adding tests and so on.
  • Scripts that install and set up the local Algorand and Monero nodes.
  • Scripts that install and set up the local Algorand and Monero wallets.
  • Simple script that will publish contract to Algorand and what’s necessary to Monero.

Link for details


Even though I like to see technical challenges to be solved, and the solution for bridging from monero to algorand seems to be great, I want Algorand ecosystem not to be mixed with the drug money from monero. For me it has high value right now that all transactions on algorand are not used for money launder nor terrorist financing. It is much easier to communicate with a bank that everything is open.

If you want to mix the monero with algorand, i suggest there need to be a project that tracks all dark transactions… Stolen money, txs from anonymizers or any transactions bridged from dark networks.

And this data needs to be public… Right now in the bridge or AMM I cannot difference between the dark money and standard algorand assets to prevent users using the service if they obtained dark assets. I would like to have this option.

1 Like

interesting proposal! love the idea of “Privacy for Algorand holders” you mentioned.

you mention “… other atomic swap protocols exist for Monero…”, can you link examples and maybe tell us about the volume they do? it might be hard to find somone interested in doing these kind of swap since its purely peer-to-peer and not an AMM style solution

Hey, I answered this and some other questions in this thread on reddit: Reddit - Dive into anything

Copying it over here:

Please provide some links on the competition and explanation what’s the experience there vs. what would be on Algorand, how much is the competition used, etc.

I’ll be honest and say that I haven’t used these services myself, I’ve only read about them, watched that video or followed the discussion on r/Monero.

But fundamentally the problem is that doing an atomic swap requires several transactions on both sides and waiting for confirmation. Monero has 10 blocks as a standard to wait before accepting that a transaction is “final”, which at a blocktime of 2 min means you need to wait 20 mins.

Let’s consider the “happy path”, i.e. when both parties act non-maliciously -i.e. no refund attempt, no attempt to waste the other’s time, no one disconnects from the Internet but remains responsive. Time in parenthesis is time for the other party to observe and confirm the action happened.

  1. The parties - Algo Alice and XMR Xavier - exchange info, agree on a deal, etc.
  2. Algorand smart contract gets published. (3.5 secs).
  3. Alice funds the account with her Algo. (3.5 secs).
  4. Xavier funds the lock up address with his XMR (20 mins).
  5. Alice flags to the smart contract that Xavier did indeed fund the XMR. (3.5 secs), putting it into “ready” mode.
  6. Xavier, on Algorand, provides his Monero secret key to the smart contract (and the entire world), which empties the Algo into his Algorand account. (3.5 secs).
  7. Alice, with Xavier’s leaked secret key, combines it with her secret key and gains spend control over the lock up address. She moves the XMR into a different address. (20 mins).

Strictly speaking, I believe 2 & 3 might be able to be done as one group transaction. And 7 isn’t quite necessary actually since Alice has spend control and can continue using the lock up address as her own address.

If 2/3 and 6 had to be done on, say, Bitcoin, this whole exchange would take at least 2+ hours extra. Algorand’s instant finality and very fast blocktime makes the user experience uniquely suitable.


Sounds like a future xGov proposal :slightly_smiling_face: Once we are suffering from the problem of Algorand being the nexus of a lot of cross-chain liquidity of unknown origin.

1 Like

Your team can start building this the minute funding gets approved?

Yes, I can. (There’s just me, no team.)

1 Like

I agree as well.

Can a solution to this be. Any wallet that interacts with Monero, automatically gets flagged via smart contract. And when you check that particular address say on Algoexplorer, you will know right away.

traditional finance can simply neglect wallets that have interacted with Monero.

Can something like this work?

You could have a service that monitors the blockchain for deployments of the smart contract, and flag those wallets.

Note however that the only thing that’d be visible will be ed25519 public keys. Monero isn’t the only blockchain that uses those.