124 services, one Sunday, 26 percent of the catalogue gone

On the morning of 2026-05-31, our directory shrank from 475 listings to 351. One hundred and twenty-four services, slightly more than a quarter of everything we had ever indexed, were removed in a single batch write. Two thousand nine hundred and seventy-six translation rows went with them, because every service carries 24 language variants and the arithmetic is unforgiving. The cut was not editorial in the usual sense, which is to say nobody sat in a room and argued about which projects deserved a place in our taxonomy. The cut was archaeological. We went looking for tombstones, and we found a graveyard.

This raises a question that any directory eventually has to answer, and that most directories prefer to avoid for as long as possible: what does it actually mean to list a service that has stopped existing? A catalogue entry is a promise, however small, that the thing on the other end of the link is reachable, alive, and worth a reader's attention. When a quarter of those promises turn out to be broken, the responsible move is not to keep them on the shelf for SEO weight. The responsible move is the post-mortem you are reading.

Why we did it, and the case against silent decay

There is an obvious temptation in directory work, which is to let dead listings rot in place. Catalogue size flatters the operator, search engines reward depth, and removing entries feels like erasing labour. The counterargument is that a directory whose listings cannot be trusted is just a search engine with worse results. Readers who arrive at a no-KYC aggregator are usually trying to make a specific transaction, often under time pressure, and sending them to a service that ceased operations in 2024 is worse than admitting we never had a listing for that vertical at all. The first outcome wastes their attention. The second at least preserves the possibility that they will find what they need somewhere honest.

Silent decay also corrupts the secondary signal that aggregators send, which is the implicit endorsement that comes with continued listing. If we keep anonexch indexed eighteen months after it went dark, every passing month of inaction reads, fairly or not, as a quiet "still fine, still recommended". Removing the listing is the only honest way to retract that endorsement once the underlying service is no longer there to endorse.

The method, and the small technical aside about groundshade

Our upstream cross-reference for service status is kycnot.me, which surfaces an archival banner on the slug page of any service it has stopped tracking. The banner reads, in the yellow that anyone who scrapes the site eventually recognises, "Archived service, no longer exists or ceased operations". Detecting it is a single string match. Getting to the page where you can perform that match was, for about two days last week, the harder part of the job.

kycnot.me defends its endpoints behind a groundshade Proof-of-Work challenge, which is a SHA-256 puzzle with eighteen leading zero bits of difficulty. The first scrape attempt hit a wall of 403 responses and a JSON blob from /.well-known/groundshade/challenge containing a token and a salt. The protocol is openly documented, so writing about it here costs no security: the client brute-forces a 64-bit little-endian nonce until SHA-256 of salt || nonce begins with eighteen zero bits, posts the winning nonce to /.well-known/groundshade/passage together with a plausible browser-fingerprint probe, receives a session cookie, and is allowed to make requests for some bounded period after that. The expected work is around two hundred and sixty-two thousand hashes, which on a single thread of our scraping host runs in roughly two hundred milliseconds. We reused one cookie across the batch, sequenced the requests to avoid bursts, and pulled all 475 slug pages in under twenty minutes of wall time. The banner check happened in memory. The rest of the script wrote slugs into storage/app/archived_slugs.txt for human review, then into scripts/detect_archived.php for the actual deletion pass.

Who exactly we deleted

The deleted set is not a clean cohort. Some of the names will be familiar to anyone who read no-KYC forum traffic during the 2023 to 2024 stretch, and some will not. A representative slice, with the small amount of context we still have on each:

agora, the ɅGORɅ Marketplace, an early 2024 darknet-adjacent listing that disappeared inside ten months

global-monero, a Monero on-ramp aggregator whose homepage stopped resolving sometime in late 2025

bit2card-no-kyc-crypto-card, a virtual card issuer of the kind that proliferated in the 2023 wave and rarely outlasted its first compliance scare

4chan-anonymity-tool, a single-purpose privacy wrapper that never had a working homepage at the point of our detection pass

anonexch, anonswap, anontrade, anopay, the small constellation of anon-prefixed swap services that launched in adjacent weeks and went dark in a similar cluster

cheap-crypto-deal, an OTC broker whose Telegram channel stopped posting in mid-2025

724-pharmacy-online, the rare non-financial listing in this batch, archived upstream without public explanation

clearvoice-co, a privacy-routed VoIP experiment, beta from start to finish

bit-bank-switzerland, a name that promised more than it delivered and was archived inside a year

cannaexpress, a vertical-specific marketplace whose disappearance tracked the broader 2025 contraction in that category

The pattern across these is recognisable. Almost all of them entered our directory during a "new launches" period in 2023 or 2024, almost all of them had modest public traction at the time, and almost all of them were already dark on the open web before our detection pass even started.

What the data tells us about service half-life

The honest finding, computed against our own entry timestamps and the upstream archival dates where they are visible, is that the median no-KYC service in our directory entered before 2024 and was archived within twelve to eighteen months of listing. This matches the broader pattern reported in industry surveys of cryptocurrency project mortality, where the modal outcome for a new project is not failure with a clean obituary but quiet abandonment, which is exactly the failure mode our scraper is designed to catch. A 2022 Chainalysis post on token mortality found that the large majority of new token launches lost all meaningful activity inside a year, and there is no particular reason to expect service-side projects, which carry operational costs that tokens do not, to live longer.

The implication for users is uncomfortable. Any aggregator that has not done what we just did is, with high probability, sitting on a catalogue where between a fifth and a third of listings are functionally dead. Reviews from 2024 that recommend specific services should be read with the assumption that the underlying service may not have survived the intervening eighteen months, and the absence of a follow-up review is not evidence that nothing changed.

What this changes for the Directory

The verdict, and the durability commitment we owe readers in exchange for asking them to trust a smaller catalogue, is concrete. We will run the detection script quarterly, on a fixed cadence, and publish the deletion count each time. Every listing will carry a freshness badge tied to the most recent successful upstream verification, so a reader can see at a glance whether a given entry was confirmed alive last week or last quarter. The archival policy is now explicit: deleted rows are written to storage/app/backups/archived_services_20260601_211501.jsonl and archived_translations_20260601_211501.jsonl before removal, retained indefinitely, and any service that returns from the dead can be restored from backup without re-translation work. The directory will get smaller before it gets larger again, and that is the trade we are choosing to make.

Sources

Internal detection script, scripts/detect_archived.php, and the resulting storage/app/archived_slugs.txt

kycnot.me service pages and the /.well-known/groundshade/challenge and /passage endpoints

bitcointalk.org no-KYC service review threads, 2023 to 2025, used to confirm the deletion candidates

Chainalysis blog reporting on cryptocurrency project mortality and token lifecycle attrition

arXiv literature on cryptocurrency project survival and abandonment rates

Edit log

2026-05-25 : Ran first detection pass against kycnot.me, hit the groundshade PoW wall, paused to figure out the protocol.

2026-05-27 : Wrote the SHA-256 nonce search loop in PHP, validated against the known-archived global-monero slug.

2026-05-30 : Reviewed the 124 hits with a junior editor, removed two false positives that were 502 errors not actual archives.

2026-06-02 : Drafted the half-life section after pulling our own service-entry timestamps and computing the median.

2026-06-04 : Final pass, verified backup integrity, removed em-dashes, added the freshness badge proposal to the engineering backlog.