How LeoDex Quoting Works — What Leaves Your Browser and What Doesn't
Điểm chính
- •An anonymous quote request contains the pair, the amount, and your slippage setting. No addresses leave your browser until you provide one.
- •Some protocols refuse to price a route without a syntactically valid address, so our servers fill in disclosed, LeoDex-owned pricing accounts — server-side, for pricing only.
- •Those system addresses are hard-blocked as recipients on both the client and the server. Funds only ever move to an address you typed or connected.
When you open LeoDex and type in a swap, the quote request that leaves your browser contains the pair, the amount, and your slippage setting. That's it. No wallet address, no placeholder, nothing address-shaped you didn't provide. This is the complete request behind the screenshot above:
GET /streaming-quotes?from_asset=BTC.BTC&to_asset=ZEC.ZEC&amount=1&slippage=3
Open DevTools and check — it's the same for every pair.
Why quoting involves addresses at all
Some of the protocols we aggregate refuse to price a route without a syntactically valid address. NEAR Intents validates the recipient and refund fields even on an indicative quote. THORChain and Maya build the swap memo from a destination. The address doesn't change the price — but the request is rejected without one.
So our servers fill that gap. When a quote arrives without addresses, the backend inserts disclosed, LeoDex-owned pricing accounts — one per chain, the same ones every time (on NEAR routes it's our named protocol account, leodex.near). This happens server-side. Your browser never sends them, and they exist for exactly one purpose: satisfying a protocol's request format so you can see a price.
Why they can never receive your funds
The pricing accounts are hard-blocked as recipients — in the app and again on the server. Paste one into the receive field and this is what you get:
Execution is a separate step from pricing. When you actually swap, the deposit is built from the addresses you provided — your destination, your refund address — and the server rejects the request otherwise. A pricing account can't end up in a real swap by accident, because the code path that moves funds refuses to accept one.
If you audited us before
Earlier versions of LeoDex filled in those pricing addresses from the browser, so an anonymous quote request carried a bc1q… or t1… value in its query string. More than one sharp-eyed user read that as an injected attacker wallet. It never was — same disclosed accounts, same recipient block — but we agreed the traffic shouldn't invite the question. Since v2.2.3, it doesn't.
Câu hỏi thường gặp
I saw an address in my network tab on an older version. Was I compromised?
No. Before v2.2.3 the app itself attached our disclosed pricing addresses to quote requests. They were LeoDex system accounts, never a third party's, and they were already blocked as recipients. Current versions send no addresses at all until you provide one.
Can a swap ever pay out to one of these system addresses?
No. They're rejected as recipients in the app and again by the API. Deposits are built only from addresses you typed or connected.
What happens when I connect a wallet?
Your real addresses replace the server-side pricing accounts, so refund handling and route pricing bind to you. That's also visible in the network tab — your address, because you provided it.