Search

Search for projects by name or address

Privacy

Monero via Cake Wallet logo
Monero via Cake Wallet

This route has no Ethereum contracts. Real-time monitoring is not supported.

About

A shielded ledger round trip: Cake Wallet's swap screen moves Ethereum funds into Monero and back, handing each leg to a centralized instant exchange.


  • Markdown
  • Metrics
    Not trackedData tracking is not available for this project.

  • Privacy
    Link privacy
  • Trusted setup
  • Exit window
  • Reproducibility

  • Tracked on
    Ethereum logo
  • Attributes
    BridgedTransfersAny amount
  • Public observerChain analystNetwork observerPrivileged insiderFuture adversary

    About

    A shielded ledger round trip: Cake Wallet's swap screen moves Ethereum funds into Monero and back, handing each leg to a centralized instant exchange.

    Cake Wallet lets users move funds out of one Ethereum address and into a new one through Monero, which hides the path between them. Its swap screen sends the funds to an exchange service that pays out XMR. A second swap later turns the XMR back into an Ethereum asset. Both Ethereum transfers are public.

    Users trust the swap services, which hold the funds during each swap, and Cake Labs, which ships the wallet and picks the services. A service can hold a deposit until the user passes identity checks, and a party holding the records of both legs can link them. Funds in transit sit with the service, so leaving depends on its payout or refund.

    Architecture

    Monero hides which output a transaction spends with ring signatures. Each input names 16 outputs, the real one and 15 decoys the wallet picks, and proves that one of them is spent. The rings stay public forever. This protects against observers who see only the chain.

    Shielded pools such as Tornado Cash, Privacy Pools or Zcash’s shielded pool prove membership in the whole pool. A withdrawal there hides among all deposits, even from a party that knows one of them.

    Flow

    1. Quote. EVM asset to XMR: the app polls every enabled service and takes the best rate unless the user picks one.
    2. Ethereum to the service. The app sends the amount, the Monero payout address and Cake’s API key, for some providers with a markup. The Ethereum wallet address goes along as refund address. The service returns a deposit address it controls. The deposit is a plain, public transfer from the user’s wallet. It goes first to the Blink Labs private mempool, on by default, then to the RPC.
    3. Into Monero. The service sends XMR to the payout address. The transaction hides sender, recipient and amount.
    4. Inside Monero. The user can self-transfer the XMR any number of times. Outputs unlock after ten blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over..
    5. Back to Ethereum. From the Monero wallet the user picks XMR to the Ethereum asset. The app sends the Ethereum exit address and, as refund address, a subaddress not yet used for a swap. The service returns a Monero deposit address, the wallet pays it, and the service pays the exit address from its hot wallet.

    App

    An EVM wallet in Cake has one address. It is sent as refund address on entry, and an exit to the same wallet pays the very address that deposited. On entry, picking an in-app Monero wallet pays to its primary address every time, so a service can tie a user’s entries together.

    Built-in Tor is off by default. Without it, the swap services, Blink, Etherscan, the nodes, Cake’s price API and Moralis see the user’s IP. Moralis receives every Ethereum wallet the app opens, and the app offers no switch for it. With Tor on, every call shares one circuitA program written for the purpose of being proven within a proving system. A circuit is a mathematical representation of the computation to be executed, arithmetic circuits and zkVM execution trace are examples of circuits. Circuits can be written in different languages, ranging from low-level to high-level. for up to ten minutes, so each leg needs its own app session. Keeping both Ethereum wallets in the app links them for Moralis whenever both are opened close together.

    Swap services

    Each service sees its whole leg. The entry service always knows the output it paid, because it created it. The exit service receives the Monero transaction and sees its rings. A party holding both legs therefore finds its payout output in the rings behind the exit. If all of the XMR is paid back, the received amount also matches the payout minus the public fee. Self-transfers in between only widen the search, by about 30 times per transaction. The swap screen lets the user pick a different exchange for each leg. Cake Labs holds no user funds, and the app talks to each service directly.

    Compliance

    Services can freeze a deposit automatically and hold it for identity and compliance checks, as ChangeNOW documents.

    Fees

    Cake ships its API keys, and for some providers a markup, as build secrets, so its share of the fee is set outside the source.

    What the protocol promises: Hides which funds leaving Ethereum come back as which, by passing them through Monero between two custodial swaps. Both Ethereum legs are public.

    Ethereum is public by default. Each protocol is rated on its main privacy promise, like hiding who paid, who received, how much, or which deposit became which withdrawal. Against each adversary, the colour says whether it holds for a careful user with the app's own settings: green yes, yellow only with significant extra work, red no. Fields marked at risk stay private only under the condition in their note.

    Public observerChain analystNetwork observerPrivileged insiderFuture adversary
    Public observer
    Private

    The Monero transactions between the deposit into a swap service and the payout from its hot wallet hide sender, recipient and amount. Both Ethereum transfers show address, token and amount.

    Advice: Exit to a new in-app Ethereum wallet made with Create New Recovery Phrase.

    InsideSenderprivateRecipientprivateAmountprivateAssetexposedLinkat risk
    Chain analyst
    Private

    Only amount and timing can pair a deposit into a swap service with a payout from a hot wallet serving every asset the service trades.

    Advice: Withdraw common amounts rather than everything at once. Wait before exiting and pick a different time of day than the deposit. Exit to a fresh address every time and spend from it with a different wallet than the one that deposited.

    Compared with a public observer
    InsideAssetexposedLinkat risk
    Network observer
    At risk

    Built-in Tor sends every call over one shared circuitA program written for the purpose of being proven within a proving system. A circuit is a mathematical representation of the computation to be executed, arithmetic circuits and zkVM execution trace are examples of circuits. Circuits can be written in different languages, ranging from low-level to high-level. for up to ten minutes, so only separate app sessions keep the legs apart. Moralis receives every Ethereum wallet the app opens, so deposit and exit wallets kept in the app pair up whenever both open close together.

    Advice: Turn on built-in Tor and restart the app, since the Ethereum client keeps the connection it started with. After the entry, delete the deposit wallet from Cake and restart, so later sessions only see the exit wallet.

    Compared with a public observer
    InsideAssetexposedLinkat risk
    Privileged insider
    Exposed

    Each swap service custodies its leg and can hold the funds until the user passes identity checks, and identities on both legs link them. The entry service knows the XMR output it paid the user, and the exit service sees the rings of the transaction that pays it. Together they find that output in the rings behind the exit, and self-transfers only widen the search.

    Compared with a public observer
    InsideSenderat riskAssetexposedLinkat risk
    Future adversary
    Exposed

    Whoever breaks elliptic-curve cryptography recovers every Monero output key from public chain data, so every ring shows its real spend. A known address also yields its view key, and anyone learns a service’s address by starting a trade. The user’s XMR can then be followed from the entry service to the exit service, where amounts and timing pair it with both Ethereum legs.

    Compared with a public observer
    InsideSenderexposedRecipientat riskAmountat riskAssetexposedLinkexposed

    Funds can be stolen if

    1. a swap service does not pay out.
    2. a service’s hot wallet is compromised during the trade.

    Funds can be frozen if

    1. a service holds the deposit pending identity verification.
    2. a service refunds minus fees and blacklists the deposit address.

    Privacy can be lost if

    1. a service holds a leg until the user identifies, since identities on both legs link them (see privileged insider).
    2. one party sees both legs, like one service used twice, and finds its payout in the rings behind the exit (see privileged insider).
    3. swap services, Blink, Etherscan, Moralis, the RPC and the Monero nodeA software client that participates in the network. see the user’s IP, since Tor is off by default (see networkA constellation of nodes (peers) that communicate via a peer-to-peer protocol, for example, in propagating transactions and blocks to other nodes. observer).
    4. elliptic-curve cryptography is broken, which reveals the real spend in every ring (see future adversary).

    Three parties change this swap route, each instantly and offchain since there are no onchain contracts.

    Cake Labs LLC (the wallet)

    Cake picks the swap services, their defaults and its API keys with each app release. Cake Wallet is MIT-licensed and self-custodial.

    The swap services (the custodians)

    Each service sets its own terms, limits and compliance rules and can change them at any time.

    Monero (the chain)

    Rules change through scheduled hard forks. The mainnet table ends at version 16, active since blockAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. 2,689,608 (August 2022), with a ring size of 16.