Writing
Notes from running a router that prices eighteen swap providers at once. Where a piece quotes a figure, that figure was measured against live providers on a stated date rather than repeated from somewhere else.
Subscribe by feed — Atom, no account and no email address, which is the only kind of subscription this site is willing to offer.
- The spelling was ours13 November 2026PegasusSwap disputed the 35% answer rate published here. They were right. This site was sending ERC20 where they take ETH, and LITECOIN where they take LTC, and every wrong name came back looking like a pair they do not trade.
- Thirty-five percent of what12 November 2026A provider that answers 35% of requests looks unreliable. Split its misses by reason and most are pairs it does not trade: SideShift answers 41% of everything and 99.7% of what it trades. One provider does not move at all, because its misses say “Client banned”.
- A rank describes the field11 November 2026Another comparison board put Stereoswap first of eighteen, and that one line moved it up the queue here. Asked at the same second as this site’s own fan-out, it came seventeenth of eighteen, 1.71% behind. Both readings are true, which is the problem with quoting either.
- Nothing formed and nothing broke10 November 2026Four sets of providers are published here as pricing off one book, measured pooled over the whole record — which says the gap is fixed and cannot say since when. Split 6,302 recorded moments at the median and run the arithmetic twice: no pairing crossed the threshold in either direction, and the two dashes are providers nobody was asking yet.
- The record was in the footer9 November 2026The question was whether to put the measurements on a second domain, the way the competition does. The cheaper question first: were they linked from our own header? They were not — three links to things you can do, and the only reason to believe any of them was four scrolls down.
- The money came back because it could be frozen8 November 2026About $6.3bn left Binance on 29 October and over $2.3bn of it was frozen, which is the property most people here dislike doing the thing it is for. The risk that actually reaches a non-custodial swap is not custody — it is the screening that follows, meeting a clause you agreed to without reading.
- The cheaper operator changes with the direction8 November 2026Five Lightning operators are asked on every page load and two answer. Between those two, one is half the price going in, loses coming out to Liquid, and wins by 11% coming out to Bitcoin. Three comparisons, three different answers.
- Answering is not the same as being worth asking7 November 20265,077 recorded fan-outs in, the two things a buyer would want ranked together turn out to be almost unrelated. One provider answers 99.9% of the time and sits 1.27% behind the best price; another answers three times in four and sits 0.21% behind. They win the same share.
- The note outlived the problem7 November 2026The same provider row went red for the third time, and the explanation written down after the last one absorbed it. The key was accepted, the board was quoting, and the only thing failing was the half of the check the site itself had stopped using.
- The crash that belonged to nobody6 November 2026A headline feature was broken, reproducibly, on clean page loads. It was a test server that had been running for a week against a build replaced many times since — and the thing that made the report convincing was true.
- A date is the one field where being wrong looks exactly like being right5 November 2026Twelve of nineteen pages claimed a review date weeks before their last change, one by a month. Nothing failed, nothing could, and the same date is what the sitemap hands a search engine as the reason to come back.
- The amount nobody could send4 November 2026A payment request works backwards from what must arrive, which is a division. The whole tail of it went onto the deposit screen: thirteen decimals of a token that has six.
- The rate nobody asked for3 November 2026A provider could hold a rate for months and was never asked, so it vanished from every comparison where somebody wanted one. Another was asked, answered, and then created the order floating anyway.
- An outage is not a choice2 November 2026Three of five rows in a list of operators were somebody else's downtime. A fourth was a refusal about the amount — and that one is worth keeping, because the reader can act on it.
- Two implementations of one format, and the check that caught them disagreeing1 November 2026A payment button on somebody else's checkout cannot import our code, so the encoder was written twice. The check comparing them failed on its first run, over a field nobody would have missed.
- The name nobody had checked31 October 2026A script written to catch exactly this had never been run, because a comment said it could not be. It ran in four seconds and found a coin ordered under a name the provider does not have.
- A contract address is not a wallet30 October 2026Three providers refused the same payment request in three different sentences, and only one of them said why. The payout address was the Tether contract — valid by every test, and somewhere nothing can be recovered from.
- The operator everybody used stopped29 October 2026Boltz suspended every swap in August and four independent wallets lost their swap feature the same day, because each had wired itself to the same operator. No money was lost: the contracts held while the company running them did not.
- The page that blamed the browser28 October 2026An order page went blank after every real exchange, and the browser was blamed four times. All thirty-one requests had returned 200. The page had loaded perfectly and then thrown during its own render — which looks identical from the outside, and is nothing like the same thing.
- Four providers quoted Lightning27 October 2026Asked what they would pay for Bitcoin over Lightning, four providers answered. Three returned their ordinary on-chain price, unchanged to the satoshi, because a network they do not recognise is ignored rather than refused.
- Four local builds and a crash loop26 October 2026A release passed its build four times and would not start. Two routes disagreed about the name of one URL segment, which a build does not check and a server refuses at boot — so the deployment crashed every ten seconds while the previous version kept serving.
- A fixed rate that floated25 October 2026Choosing a fixed rate changed the quotes on screen and nothing about the order that followed. The comparison honoured the choice, the order was created without it, and both screens were internally consistent.
- The exception nobody had chosen24 October 2026Twelve providers carried the same half percent and one did not, because its fee is set on a scale of its own. The quote looked better than the others for a reason that had nothing to do with the provider being better.
- The day with no commits23 October 2026Thirteen commits on the 22nd, eleven on the 24th, and nothing in between. A site that publishes its own effort figures cannot quietly backfill the one day that has none — a count adjusted when it is unflattering is a presentation rather than a measurement.
- A staircase made of other people’s limits22 October 2026We expected the price of a large swap to decay the way an order book does. It does not. It is flat, then it drops half a percent in one step, then it is flat again — and the step is exactly where the cheapest providers stop accepting the amount.
- The quote was clean and the payout was short21 October 2026A partner asked whether our fee was charged equally. Checking found the opposite of what we expected: the comparison was never tilted, and exchanges through one provider paid about half a percent less than the panel had promised. Nothing on screen was wrong, which is why nothing on screen could reveal it.
- Three times in four20 October 2026This site publishes a measured record of what every provider has actually paid. Its own front page claimed the cheapest one is rarely the same name twice. The record says one provider has won 838 of 1,108 comparisons — and the honest version of that sentence is a better argument than the one it replaced.
- The tag that measured nothing19 October 2026Analytics fired correctly on every page for the whole life of this site, and the property named after the site recorded nothing at all. A wrong measurement id is indistinguishable from a right one from inside the browser — and a comment in the file had already explained the silence away.
- When randomness makes it worse18 October 2026A split divides a transfer into uneven legs so the shape says nothing. The shape was uneven and entirely reconstructable, so it was randomised — and the randomness measured 0.2981 where 0.3 was the floor, which meant a change made for privacy was sometimes spending it.
- Nobody agrees what to call Tron17 October 2026Twelve swap providers, and no two of them name a blockchain the same way. One calls a chain by its coin, another by its token standard, a third by whichever of the two the asset happens to be. The cost is seven translation functions in one file — and a refusal that lies about which half of the question was wrong.
- The war did not move Monero16 October 2026The obvious thesis says conflict and sanctions drive people to privacy coins. Through a year of US–Iran escalation it did not happen: Monero fell during the fighting and reached multi-year highs weeks later, on a rule change. What moves this market is regulation, and that has a practical consequence for anyone running a service in it.
- The provider was never broken16 October 2026A provider refused every request here for a fortnight and two support emails went out about it. The account had been fine the whole time, the integration was quoting in production, and the cause was thirteen characters of template text that no check could see because a placeholder is a perfectly good string.
- The tape nobody keeps15 October 2026Every fifteen minutes this site asks ten providers what they would pay, ranks the answers, and deletes them. That fan-out is a price tape for a market that publishes none - and the one number in it that cannot be rebuilt afterwards is the benchmark it was measured against.
- The supplier leaked the thing we sell14 October 2026A provider was added to this site on measured merit, and three days later its own listing turned out to record an unresolved breach that published the exact pairing this site exists to break. Then the obvious question came back the other way: does this site do the same?
- The paragraph said so and the colour did not13 October 2026A ledger panel that stated its own limitation in plain prose, directly above a table showing projected fees in green under the heading "Fee earned". The caveat was accurate, unread, and no defence at all — including against the person who wrote it.
- Nothing is opaque twice in a row12 October 2026A search built to add third and fourth hops to a private route, which returned the opposite finding: every pair has exactly one path that writes no public record, and it is always two hops. No provider swaps Monero for Monero, so every extra leg has to land somewhere a stranger can read.
- No provider swaps Monero for Monero11 October 2026A route planner was built to find out whether three hops hide more than two. It searched every path between every pair and returned the same answer each time, for a reason nobody had thought to check: the longer route has to come back out into the daylight somewhere.
- A decision the URL could not carry10 October 2026The same collision between a rehearsal and a real plan, fixed four times across two sittings. Every fix but the last sat somewhere along the path a query string travels between two pages - and the page that rewrites that query runs before the one that reads it, by nesting rather than by luck.
- Three comments and a check9 October 2026Four pages shipped reachable from nowhere at all - in the sitemap, linked by nothing. Each was found weeks later by accident, and three of them left a comment behind explaining the lesson. The fourth is what a comment costs when it should have been a test.
- The fee that meant two things8 October 2026A record showing no fee meant either that the customer paid the deposit themselves or that the fee was switched off for everybody. The same blank, opposite meanings, and nothing stored that could tell them apart. On inferring a fact from its side effect.
- The one word that coincided7 October 2026Eight swap providers describe the same six stages of an exchange, and no two use the same words. A vocabulary that overlaps partially is more dangerous than one that does not overlap at all: when a single word is spelled alike, everything looks like it works.
- What a sitemap cannot do6 October 2026Forty-three pages offered to Google, twenty indexed, eighteen never crawled at all. One of them was reachable from nowhere on the site - and the other seventeen were linked perfectly well. What a sitemap promises and what a link actually buys.
- What an address says, and what it does not5 October 2026One address, two geolocation services, two cities 150 kilometres apart. Both were confident and neither was wrong: the range is a hosting range, and a datacentre has no resident to locate. What a country header and a city lookup each actually tell you.
- A plan's total is a sum, not a rate4 October 2026Ten thousand dollars split across three providers, priced two ways on one screen: the best rate stretched across every leg, or each leg priced at the provider that will run it. Twenty dollars apart, and the larger figure is always the wrong one.
- An order nobody paid3 October 2026A record saying 0.01 BTC, a blank status, and no way to tell whether money ever moved. What a ledger writes when an exchange is created, what it cannot write afterwards, and why a missing status is a question rather than an answer.
- An absence and a refusal2 October 2026Eight providers asked about an order that does not exist. Seven say they have never heard of it; one says the request itself is wrong. Those are different answers, and a lookup that flattens them into one cannot tell a missing order from a malformed question.
- Waiting buys nothing, until it buys everything1 October 2026Spacing transfers apart is supposed to make them harder to link. Measured against live Bitcoin blocks: a two-minute gap separates two transfers about one time in six, eleven minutes about two times in three, and the first minutes of any wait are worth far more than the last.
- The word that costs 282 satoshis30 September 2026Ask eight swap providers for Bitcoin over Lightning. Four quote a price identical to on-chain Bitcoin without saying so, four refuse outright, and one answers a different question correctly — where the saving turns out to be a flat 282 satoshis, worth 1.2% on twenty dollars and nothing much on a thousand.
- Eight ways to say no29 September 2026The same transfer, too small, put to eight swap providers in one pass. Seven refuse and no two refuse alike: different status codes, different wording, one JSON-RPC error and one authorisation failure that has nothing to do with the amount.
- Splitting unequally costs nothing28 September 2026Equal legs are the easiest split to reassemble, and the obvious fix looks like it should cost money. Measured on two separate days: unequal legs scored twenty points better on linkability and came out cheaper both times.
- Why small swaps cost more27 September 2026Seven providers priced at six transfer sizes in one pass. The gap between best and worst runs 21% on 25 USDT and 1.7% on 5,000 — and the provider that pays best at the smallest size pays worst at the largest.
- What a crypto swap actually costs26 September 2026The quoted rate is not the price. Measured across eight providers on live pairs: how far apart they are, how far the best one still sits under the real market, and what splitting a transfer costs on top.