Changelog
Every version, dated.
Version updates live here, not in the blog — one row per release, newest first. The reasoning behind the big ones is in the posts.
Releases
ETZ Swap joins the quote board as provider seven — a no-KYC instant exchange, and the best-rated instant venue on the board at 52/B+: no ID required, Tor-friendly, and its policy rules out freezes outright (a flagged deposit is refunded, never held). It is also the second Monero (XMR) route — XMR now prices competitively instead of coming from a single venue. Its coin list is live-fed like CCE's: the server pulls the public currency feed on a schedule, so listings change on their own; anything whose decimals can't be verified is never quoted rather than guessed. Orders are placed as secure-token transactions — the transaction id plus token shown on the pay face is what you (or support) would quote to ETZ — and a refund, if one ever happens, goes to the return address you set. External ratings: kycnot.me 8/10 (approved), notkyc.life A+ 94/100.
RoutesThere is now a complete no-JavaScript mirror of the swap flow: quote form → route rows → deposit page → live status, four plain pages where every step is a form submit or a link — nothing to execute, nothing to inject. It lives at nojs.dexr.pro and the onion address now serves it exclusively: Tor Browser at its Safest level gets the full flow, not a broken page. What you trade away is the live extras — the picker is a plain dropdown, deposit addresses copy by long-press instead of QR, and the tracker refreshes with a button instead of polling. Quotes, execution, and tracking run through the same server machinery as the full app; orders get the same 30-day encrypted receipts (delete them from History on any device), and the settlement watcher counts them just the same. The main site also picks up proper homes for its sections — app., blog., and guides. subdomains — and the homepage footer strip points at the no-JS version.
The app page is rebuilt on the new design: the page is cut diagonally — ink above, the ember artwork flooding the floor — and one paper card on the seam carries the whole swap, morphing quote → pay → track without a page change. A quiet recent bar above the card shows the last five settled swaps with currency icons, live from the stats feed. The currency picker is now a full-screen Grid: the page dims and blurs, a chain rail runs down the left with per-chain counts, and the whole merged universe sits beside it as a searchable tile grid with a popular strip — Enter picks the first match, esc closes. The pay face gains a real scannable QR for the deposit address (address + amount on the chains with a payment scheme), rendered locally — no external service ever sees it. And the open order now rides in the URL hash (/app#dexr_…), never the query string: refresh-safe, share-safe, and once the server receipt exists the hash upgrades to the receipt id, so the link itself recovers the swap on any device. Opening such a link lands you straight on that order's status face.
The asset picker used to stop at what THORChain's pools, NEAR's 1Click feed, and Chainflip's statics listed — roughly 130 assets. It now unions the other three providers too: CCE.CASH's live currency feed (already the source of truth for its quotes — Monero, Litecoin, Dogecoin, Bitcoin Cash tokens and more), Mayan's per-chain token lists (Solana memes included, capped so the picker stays usable), and Symbiosis's supported tokens on the chains we route. Two latent bugs died on the way in: NEAR lists ZEC bridged on Solana/NEAR and selecting it previously died at quote time for lack of a Zcash chain entry, and the Find-order button could throw when the provider directory was slow to load. Find order itself now does what the name says — with a swap in progress it flips straight to that order's live status face; History's lookup box is the fallback for everything else. The picker grew into the union: the chain rail compacts to fit fifteen chains and shades its bottom edge while more sit below the fold, and icons now cover the merged tokens — fetched per asset at build time, matched by CoinGecko id or a verified name so a same-ticker impostor can never wear another coin's logo; anything unverifiable keeps the letter tile. The merge also exposed a serious latent bug it would be wrong to ship quietly: quote amounts resolved decimals from a symbol-only static table, falling back to the chain's native decimals — SOL.ZEC parsed at Solana's 9 instead of its real 8, quoting ten times the requested amount for any such token. Amounts now resolve decimals from the same live universe the picker lists, so a token always means exactly what the picker showed.
RoutesThe pay screen is now headed by the order's own id — Order dexr_… — and every dexr id (order book, server receipts) starts with dexr_ so it can never be confused with a provider's swap id or query code; CCE rows are labeled "Query code (for CCE support)" outright. Quote lifetime and the deposit window count down in live chips, and the tracker says when each next step happens (deposit confirm time per chain, provider settle estimate while swapping). The back-to-quotes button is gone — one mis-tap used to delete a live order; an unfunded order now simply idles in History and expires. Destructive actions (clear history, remove order, purge server receipt) are two-step: first tap arms, second confirms. The navbar gains Find order — swap id, query code, receipt id, or deposit tx all resolve in one box. Behind it all, a rendering bug that bled mirrored quote text onto the pay face is fixed properly (hard visibility swap at the flip midpoint), the active tracker's step label is readable on dark, and the pay panel and swap widget pick up the brochure's card finish.
CCE.CASH joins as provider six — our first Monero (XMR) route and the only venue carrying it. Its asset list is live-fed, never hardcoded: the server pulls the public currency feed weekly, so coins come and go on their own and per-coin send/receive flags are honored. Reputation badges are colored by tier everywhere (green to red), and external community ratings sit beside each provider on the about page. Rate limits tightened per endpoint and published in a self-hosted API reference at /api-docs (vendored Swagger UI — reading it calls no third party). One bug the sweep caught: inline hydration scripts were blocked by the site's own CSP, so rep badges on the about page never lit up — fixed by moving them to a real file. Edge note: nginx and journald on the server were found logging by default (access.log with clearnet IPs, 33MB of journal); both are now off or capped, making the no-logs pledge true at every layer, not just the app.
RoutesBlog posts and guides each moved into their own subfolder (/blog/, /guides/), and four new posts joined Tor-only on the list — rebuilding a swap from the chain, what non-custodial means here, an onion endpoint for the API, and why five providers — each with its own generated artwork. The developers page was corrected where it still described the v1.0 API: rate limits are one shared counter per endpoint keyed on nothing (no IP is read, ever), receipts are disclosed alongside the aggregate counter, and the counters count every provider, not just THORChain.
SiteEvery swap now keeps a recoverable receipt for 30 days — encrypted at rest — so you (or support) can rebuild it after a wiped browser, a dead PC, or a new device, using the receipt id or a reference your wallet already has. Delete it in one click anytime and get a signed, verifiable proof of deletion; all that remains is the anonymous amount and outcome. History also shows received value, fees, and dollar value per swap, and every link across the site is now clean (no more .html).
RoutesSwaps are now watched to completion on the server, so they count even after you close the tab — no browser needs to be open at the moment one settles. The app shows an anonymized recent-swaps list (amount, pair, value, outcome, time — never an address, txid, or IP). Deposit references are held in memory only, never written to disk. Each route also shows its own live "valid m:ss" countdown, and re-quotes itself before it lapses.
RoutesEvery swap now shows a live progress tracker — selected, deposit, swapping, settled — that updates itself over Tor. Status reads in plain language across all five providers, Symbiosis is tracked by watching the payout land on the destination chain, and EVM routes can be paid in one click from your own wallet. The homepage counters now count settled swaps from every provider, priced at the moment each one completes.
RoutesQuotes slide in beside the widget; picking one flips the screen to the deposit details, and going back removes the order from your history. Reduced-motion preferences are honored.
RoutesThe asset popup opens instantly: row markup is cached per filter and icons lazy-load, so opening over Tor no longer queues a hundred image requests.
RoutesChain rail on the left, searchable tokens on the right, fed by the live /api/assets endpoint. Icons ship with the build — nothing hotlinked.
RoutesEvery page rewritten on a new template: landing, docs, guides, blog, and a dark app page with an order book that tracks itself in your browser. New server, new onion.
SiteEvery currency dropdown became the same picker, fed by one live list: what the enabled providers actually advertise on /api/routes. Chain filter chips, quotes on click-out.
RoutesThe quote tab rebuilt as a swap widget instead of a settings form: a big amount field, pill asset pickers, live estimates, and auto-refresh on change.
RoutesRoute ranking moved to a reputation score where every point traces to a fact you can read: custody, ID requirements, freeze risk, logging, Tor handling, incident history. Symbiosis and SideShift joined; SideShift was paused the same day — its edge blocks every Tor exit.
ProvidersMayan graduated from quote-only to executable, opening a one-time deposit address like Chainflip and NEAR Intents. Live status tracking, per-request Tor circuits.
RoutesThe landing stats box became a small live count at the end of the top strip on every page. Route cards fixed, provider copy made plain.
SiteThe maintenance gate came down after real mainnet runs through the site's own UX — a one-time browser-vault swap signed in the browser, the key never touching a server. Counters visible from day one.
SiteEVM routes can run through a one-time vault generated inside your own browser — key shown once, stored encrypted locally, burned after the swap. Vanity onion; payout tracking fixed.
PrivacyTwo ways to check us rather than trust us: live aggregate swap counters, and a signed integrity manifest covering every executable asset we serve (html, js, css). Provider lineup tidied to match reality.
PrivacyMayan joined the provider lineup by default. A Proof tab showed live evidence for Tor-only egress, no server logs, and client-side encryption. Platform fee advertised honestly: 0%.
ProvidersThe app reduced to Quote, Track, and Status. Track merged the old Verify and Orders tabs: paste a txid and receive address, get a status badge, watch saved swaps auto-update. NEAR Intents joined.
RoutesNew transparent logo as brand mark and favicon, a light gradient theme, and browser-side refund detection.
SiteTHORChain, Chainflip, and LI.FI routes could each produce concrete execution instructions. A Tor gate locked quote and verify until the exit was confirmed live.
RoutesLI.FI routes graduated from comparison-only to executable: the app could build the exact EVM transaction — recipient contract, calldata, and value — for the quoted route.
RoutesInitial build: live THORChain quotes over Tor, a reachability matrix, optional Chainflip and LI.FI comparisons, and browser-side THORChain verification. No logs.
RoutesHow versions step
Tenths only: 1.7 becomes 1.8, never 1.7.1. Historic entries describe what was true when they shipped — the provider lineup has changed since (LI.FI paused, SideShift paused), and the pages linked above always describe the present.
dexr.pro