[Product] Incognito universal swap

Unified privacy tokens and interoperable apps >

Privacy multichain: use-cases, caveats and solutions >

In the previous topic, we’ve discussed the second major part of Incognito - the multichain (alongside privacy). In technical terms, it’s a capability of sending coins along with arbitrary messages from a blockchain to another but in the concrete real use-cases for end-users, it may be a universal swap function that will allow users to:

  • Swap privacy coins (e.g. XMR, LTC, ZEC, DASH, …) with Incognito exchange’s liquidity pools. It can be seen that these privacy coins have been slowly delisted from CEXs and it’s barely to find the supported pools for those coins on other DEXs.

  • Swap a coin from one blockchain to another through Incognito chain.

  • Swap a coin on a source chain for another coin on a destination chain through Incognito chain. This is where sending arbitrary message capability shines since it allows the swap to utilize the external DEXs’ liquidity pools.

  • Swap a coin for another with the best rate by aggregating liquidity from external DEXs across blockchains.

That sounds complicated, huh? No worries, from the end-user view, those will be merged into a dead-simple UI that depends on the swapping coins, it will fall into one of the above four cases.

Let’s check out the following UI of the web-based app to have better intuition.


To enter the privacy De-Fi world in the Incognito ecosystem, you need to deposit assets into Incognito chain first.

On the web, we will still support two options for the deposit function like what you have experienced on the mobile app:

  • Option 1: deposit from other platforms (like CEXs for example) by sending funds to a temporary address.

  • Option 2: deposit directly to Incognito smart contracts from your own crypto wallets like Metamask.

In option (1), you just need to connect to Incognito wallet extension but in option (2), you will need to connect both Metamask and Incognito extensions. The former is used for sending your funds to Incognito smart contracts and the latter is used for receiving counterpart privacy coins.


As aforementioned, on the same swap view, it depends on which token(s) and network(s) you are selecting to determine which case of swap (along with liquidity pool) the swap falls into.

For example:

  • If you select XMR as ‘From token’, USDC as ‘To token’, Incognito chain for both ‘From and To networks’ → you’re swapping with Incognito exchange’s pools.

  • If you select ETH for both ‘From and To token’, Incognito chain as ‘From network’ (after deposited from Ethereum network) and Polygon as ‘To network’ → you’re taking ETH out of Polygon’s vault to your Polygon address.

  • If you select MATIC as ‘From token’, USDC as ‘To token’, Incognito chain as ‘From network’ and Polygon as ‘To network’ → your swap might be split into two smaller ones: one swap with liquidity pools of Uniswap and another swap with liquidity pools of QuickSwap on the same Polygon network. As a result, you will receive the two swapped USDC in your Polygon wallet.

  • If you select USDC as ‘From token’, ETH as ‘To token’, Incognito chain for both ‘From and To network’ → your swap might be split into three smaller ones; they respectively swap with liquidity pools of Raydium on Solana, Uniswap on Polygon and PancakeSwap on BSC. Consequently, you will receive a unified privacy ETH from those smaller swaps in your Incognito wallet.

Please note that all these swaps are completely anonymous and the splits are for searching for the best rate of the initial swaps that also take fees into account.

Closing thoughts

In this topic, we just go through the universal swap - the first product that comes from the foundational components we’ve been developing for years now: privacy blockchain, bridges, Incognito AMM exchange and unified privacy token protocol. We do believe that despite of fragmentation of blockchains, their L2 and DEXs, the complicated things should be completely abstracted from user to user. What they need is an integrated place allowing them to swap tokens regardless of what happens behind the scene.

Also, with sending arbitrary messages capability, Incognito products should not be limited to swap (swap is the most popular usecase in DeFi now though) but will be able to extend to broader usercases such as universal lending or universal NFT marketplace, etc.

Thank you!


Well said :black_heart:

I also have a question. At least one side (from or to) of Swap feature always be Incognito, won’t it?

Yes, exactly…
We understand that’s a tradeoff for UX (and even trust since new users may be concerned if they have to deposit funds to a new platform). We like the idea you proposed earlier with a seamless experience from end to end.
But introducing a non-privacy flow/feature to a privacy-first platform like Incognito, is a big change, it breaks what we (and the community) have built for years :wink:


I have over 6 failed attempts at swap, first time is ever happened. I am trying to swap prv to xmr with no sucess.

Please reference this post:


I also notice there is no update change in all crypto coins. Ive seen prv remain at .3466 since yesterday

It is normal since :point_down:

I need a reply when all the bugs are fix. I’ve never seen this kind of problems with your program

Anyway I can fix it in my end?