159 lines
16 KiB
Markdown
159 lines
16 KiB
Markdown
# Named-source liveness — Q22
|
||
|
||
Q21 established that the archive names sources in its own prose without anchoring them: **39 rows** —
|
||
`@handle` tokens and bare URLs printed in an entry's prose sections (`What happened`, `In plain English`,
|
||
`Contributor`, `Provenance`, `Uncertainty`), never inside the `From the sources` blockquotes, which are
|
||
verbatim third-party text. This census takes every distinct source in that list and fetches it, so a name
|
||
the archive prints without a link stops being invisible.
|
||
|
||
**Population, re-derived this run rather than copied from Q21.** `named.py` over the 121 live entry pages
|
||
(`https://alexanderwhitestone.com/stackchain/blocks/`, HTTP 200 / 34,488 B / sha256
|
||
`4f764ef4dfb9c08b2654ff0783550d20ad1bb7a31cb0c32070974a5fe451557e`, 2026-10-10T15:38:02Z; 121/121 entry
|
||
pages HTTP 200 on the first attempt, 2026-10-10T15:38:02–15:38:13Z):
|
||
|
||
- **39 prose rows** = 37 `@handle` rows + 1 bare URL + 1 row for a handle named without an `@`.
|
||
- **25 distinct `@handle`s** after case-insensitive dedupe (`@HappyClownTime` and `@happyclowntime` are
|
||
one account: both fetched profiles return `Bob (@happyclowntime) / X`).
|
||
- **1 handle named without an `@`** — `StackchainQuant` in `event-2022-08-18`'s summary, hand-checked
|
||
(carried from Q21 finding 3; a bare word cannot be found by a token rule).
|
||
- **1 bare URL** — the Wayback capture of the genesis tweet, named in `block-5`'s Provenance prose.
|
||
- **27 distinct sources → 28 fetches.** 26 X accounts + 1 archive URL. `@HappyClownTime` and
|
||
`@happyclowntime` are one account, fetched under both spellings as the archive prints them, so the full
|
||
table below carries 28 rows for 27 sources. (The queue's Status line counts 26
|
||
fetch targets because it excludes `StackchainQuant`, which Q21 had already measured; this run
|
||
re-fetched it so the census is complete on its own evidence.)
|
||
|
||
**The reading rule.** *Anchored* means an `href` on the page whose last path segment **is** the handle
|
||
exactly, on `x.com`/`twitter.com`. Q21's rule was a suffix match, and it was defective: the article
|
||
permalink `https://www.stackchainmagazine.net/rest-in-paradise-staceski/` ends with `staceski`, so
|
||
`@staceski` read as anchored and was omitted from Q21's 38-row list. Two rows recovered that way.
|
||
An email or Lightning address is not a handle: the token rule uses a negative lookbehind for
|
||
`[A-Za-z0-9_.@-]`, which is why `bitcoinbekka@getalby.com` in `magazine-024` is not a row here.
|
||
|
||
**The verdict classes.** `resolve` (HTTP 200 with a real profile), `resolve-moved` (the handle answers
|
||
but the account itself names a different handle as its home), `suspended` (HTTP 200 carrying the
|
||
suspension page), `404` (HTTP 404 carrying X's "User Profile Not Found"). A 301 to a different owner
|
||
would be its own class; none occurred.
|
||
|
||
## Result
|
||
|
||
**27 distinct sources: 20 `resolve` (19 X accounts + the 1 archive URL), 1 `resolve-moved`,
|
||
2 `suspended`, 3 `404`.** Over the 28 fetches the split is 22 / 1 / 2 / 3, because
|
||
`@HappyClownTime` and `@happyclowntime` are the same account fetched under both spellings.
|
||
|
||
Every X byte size and sha256 below is a **dated reading**: the X pages carry a per-request
|
||
`<meta property="csp-nonce">`, so the two 404 pages at 37,702 B are byte-different from each
|
||
other and the two suspended pages at 40,800/40,839 B are likewise not identifiers. The clock is
|
||
the evidence; the hash pins what this host read.
|
||
|
||
## The six entries whose named source does not resolve
|
||
|
||
| source | entry/entries naming it | verdict | URL | byte size | sha256 | clock |
|
||
|---|---|---|---|---|---|---|
|
||
| _overflow__ | magazine-020 (What happened) | **404** — title "User Profile Not Found - X \| 404 Error"; description "The user profile you're looking for could not be found." | https://x.com/_overflow__ | 37678 | `6b05f29fef55d421813c08bec0c5e6d117ae511b19c6539e2e5a95f9aa076b74` | 2026-10-10T15:39:17Z |
|
||
| humblebitcoiner | magazine-051 (Contributor); magazine-051 (What happened) | **404** — title "User Profile Not Found - X \| 404 Error"; description "The user profile you're looking for could not be found." | https://x.com/humblebitcoiner | 37702 | `f28a6675624ee6c1d6e8c94e7738a6dd2da77914206d8a19a4146988ca65fdbf` | 2026-10-10T15:39:33Z |
|
||
| BTC_Freeborn | magazine-035 (Contributor) | **suspended** — title "Profile / X"; body <h2>Account suspended</h2> - "X suspends accounts which violate the X Rules" | https://x.com/BTC_Freeborn | 40800 | `36d526cdf90b655874f6f73c5158a952e9033e1853ff734720b434d4c1898687` | 2026-10-10T15:39:21Z |
|
||
| RedTailHawk1923 | magazine-056 (Contributor) | **suspended** — title "Profile / X"; body <h2>Account suspended</h2> - "X suspends accounts which violate the X Rules" | https://x.com/RedTailHawk1923 | 40839 | `0bf960adefead1e37bf4ac5dd7a5e20cbcc1d6a53fb44355116073dcd414ca85` | 2026-10-10T15:39:33Z |
|
||
| captainsiddh | magazine-039 (What happened) | **resolve-moved** — live profile, but its own description reads "Now at @captainsidd" - the handle still answers, the person has moved | https://x.com/captainsiddh | 68579 | `d2dfc77ad5c01e4bad7554add5ceae3b1e7c037ee994c635d1650bc7af25633d` | 2026-10-10T15:39:22Z |
|
||
| StackchainQuant | event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon (What happened - named without @, x2) | **404** — title "User Profile Not Found - X \| 404 Error"; description "The user profile you're looking for could not be found." | https://x.com/StackchainQuant | 37702 | `47f73c39ebdbe437559c9532aa1cceeaf69dc3724670f6f3b4ce756f9ec76bf3` | 2026-10-10T15:39:39Z |
|
||
|
||
Remedy takes three shapes, and every one is a live-page edit and therefore
|
||
**Alexander's through Q13**:
|
||
|
||
- **Anchor it.** `event-2022-08-18`, `magazine-035`, `magazine-039`, `magazine-056`: the name is
|
||
defensible and the only defect is that no link backs it.
|
||
- **Strike or mark it.** `magazine-020` (`@_overflow__`) and `magazine-051` (`@humblebitcoiner`, named
|
||
twice — as Contributor and in `What happened`) name handles that answer 404 today, so the prose
|
||
currently rests on an unreachable source. `StackchainQuant` is the case Q12 already returned and
|
||
this census closes: 404 at `https://x.com/StackchainQuant` / 37,702 B / sha256
|
||
`47f73c39ebdbe437559c9532aa1cceeaf69dc3724670f6f3b4ce756f9ec76bf3` / 2026-10-10T15:39:39Z,
|
||
`<title>User Profile Not Found - X | 404 Error</title>`, and the entry's own badge is still earned
|
||
by the post text and the tx it does link.
|
||
- **`@captainsiddh` is the third shape** and it needs neither: the handle answers
|
||
(200 / 68,579 B / sha256 `d2dfc77ad5c01e4bad7554add5ceae3b1e7c037ee994c635d1650bc7af25633d` /
|
||
2026-10-10T15:39:22Z, `Sidd (@captainsiddh) / X`) but its own description reads *"Now at
|
||
@captainsidd"*, and that handle resolves — `Evan (Captain Sidd) (@CaptainSidd) / X`, 200 /
|
||
159,957 B / sha256 `38e0e29618a8b0ef599ede39f1396f0e5af6040b8143d13d236f7003437b0e27` /
|
||
2026-10-10T15:40:39Z. The prose is not wrong, it is one handle behind.
|
||
|
||
## The full census — all 27 sources, 28 rows
|
||
|
||
Fixed column order: `source | entry/entries naming it | verdict | URL | byte size | sha256 | clock`.
|
||
28 rows for 27 sources: `@HappyClownTime` and `@happyclowntime` are the same account under the two
|
||
spellings the archive prints, and both fetches are recorded.
|
||
|
||
| HappyClownTime | event-2022-07-18-the-5-invitation-becomes-a-chain (What happened); event-2022-07-18-the-5-invitation-becomes-a-chain (In plain English); magazine-019 (What happened) | resolve | https://x.com/HappyClownTime | 145323 | `111c098b205bbfcb247407fa8af5c299a1b42b813acf207905edbd9bb0acc97b` | 2026-10-10T15:39:07Z |
|
||
| happyclowntime | event-2022-07-18-the-5-invitation-becomes-a-chain (What happened); event-2022-07-18-the-5-invitation-becomes-a-chain (In plain English); magazine-019 (What happened) | resolve | https://x.com/happyclowntime | 146235 | `fd31ec3b8d706bca33ce78f1084d7dfce4a2fda231ade9e080a781df8f58cdcc` | 2026-10-10T15:39:16Z |
|
||
| caroghero | event-2022-08-28-the-fork-of-1492 (What happened); event-2022-08-28-the-fork-of-1492 (In plain English); magazine-041 (What happened) | resolve | https://x.com/caroghero | 133265 | `fa961e95041c6463f8786893144b49f0424f0848287fa2e7fb08a58a5e5aff79` | 2026-10-10T15:39:07Z |
|
||
| sathoarder | event-2022-08-28-the-fork-of-1492 (What happened); event-2022-08-28-the-fork-of-1492 (In plain English) | resolve | https://x.com/sathoarder | 151154 | `8d51f39c0c7b662c3a06763d8f461cfc0ba7abcab08b47cef57be114402cfc48` | 2026-10-10T15:39:09Z |
|
||
| StackchainMag | magazine-001 (What happened) | resolve | https://x.com/StackchainMag | 184770 | `01ddebe94beb705dbc0816bc1c634f9ed5655cefd9053652053d2e59311f4ce3` | 2026-10-10T15:39:11Z |
|
||
| staceski | magazine-003 (What happened); magazine-003 (In plain English) | resolve | https://x.com/staceski | 58628 | `54367e6a1b643d13277bd28a6fd1e2bf82112bec32402261d9dddf6fc3a1e7c5` | 2026-10-10T15:39:13Z |
|
||
| DerekMRoss | magazine-018 (What happened); magazine-018 (In plain English) | resolve | https://x.com/DerekMRoss | 143538 | `70083ab521af07cc7bfded4ce31bb378fe3b7c832a69a0568010a46718a18636` | 2026-10-10T15:39:14Z |
|
||
| _overflow__ | magazine-020 (What happened) | 404 | https://x.com/_overflow__ | 37678 | `6b05f29fef55d421813c08bec0c5e6d117ae511b19c6539e2e5a95f9aa076b74` | 2026-10-10T15:39:17Z |
|
||
| waldovision3 | magazine-025 (What happened) | resolve | https://x.com/waldovision3 | 152526 | `4cc25229e0b4fbfe2186d8da744d843f71f2e6cdcf05b05fa50c4cd39d28cf3f` | 2026-10-10T15:39:17Z |
|
||
| a_koby | magazine-026 (What happened) | resolve | https://x.com/a_koby | 149401 | `c6ab960fac77673a987c8755e0a7f2282633ef74c932161405220fb2f0abd81c` | 2026-10-10T15:39:19Z |
|
||
| laurenoflight_ | magazine-031 (What happened) | resolve | https://x.com/laurenoflight_ | 141357 | `d1ffd6aef1fa764562096a60969d107f0c0e361e492aab5e949e7cd199037a44` | 2026-10-10T15:39:20Z |
|
||
| parman_the | magazine-032 (What happened); magazine-048 (What happened) | resolve | https://x.com/parman_the | 163583 | `f93993f6f8764011c975c2b3fc509185d6c2da4257ea1890c1011699f9e6772e` | 2026-10-10T15:39:20Z |
|
||
| AnthonyDessauer | magazine-035 (Contributor); magazine-044 (What happened) | resolve | https://x.com/AnthonyDessauer | 163531 | `96e30545fb550c3226407530c992448fc67427324d8ae2035f503d0f8ad09727` | 2026-10-10T15:39:21Z |
|
||
| BTC_Freeborn | magazine-035 (Contributor) | suspended | https://x.com/BTC_Freeborn | 40800 | `36d526cdf90b655874f6f73c5158a952e9033e1853ff734720b434d4c1898687` | 2026-10-10T15:39:21Z |
|
||
| captainsiddh | magazine-039 (What happened) | resolve-moved | https://x.com/captainsiddh | 68579 | `d2dfc77ad5c01e4bad7554add5ceae3b1e7c037ee994c635d1650bc7af25633d` | 2026-10-10T15:39:22Z |
|
||
| jerimican5445 | magazine-040 (Contributor) | resolve | https://x.com/jerimican5445 | 176644 | `293973be40142b6ee0d4222f7267b95e52457c47a2d7d5e039150f8e8dadd55b` | 2026-10-10T15:39:23Z |
|
||
| LoKoBTC | magazine-041 (What happened) | resolve | https://x.com/LoKoBTC | 167688 | `6935cb456bce29f0f2a76955f27782a7a238ec6dc651a0f5305f52544f52b478` | 2026-10-10T15:39:25Z |
|
||
| fiatforassets | magazine-041 (What happened) | resolve | https://x.com/fiatforassets | 157186 | `057daf95fe2a060e8f44054e6ef30bb7280dd633d385c94a659fdfe3ee88bee5` | 2026-10-10T15:39:29Z |
|
||
| DecrimNat | magazine-045 (What happened) | resolve | https://x.com/DecrimNat | 152742 | `6a8a0e019a89f0f147e1136ea7578300ae0861705e9faab65c544180277da041` | 2026-10-10T15:39:32Z |
|
||
| humblebitcoiner | magazine-051 (Contributor); magazine-051 (What happened) | 404 | https://x.com/humblebitcoiner | 37702 | `f28a6675624ee6c1d6e8c94e7738a6dd2da77914206d8a19a4146988ca65fdbf` | 2026-10-10T15:39:33Z |
|
||
| RedTailHawk1923 | magazine-056 (Contributor) | suspended | https://x.com/RedTailHawk1923 | 40839 | `0bf960adefead1e37bf4ac5dd7a5e20cbcc1d6a53fb44355116073dcd414ca85` | 2026-10-10T15:39:33Z |
|
||
| SPACEBULL | magazine-061 (Contributor); magazine-061 (What happened) | resolve | https://x.com/SPACEBULL | 155409 | `82f563d5b5470247f7aa763e6c2d0ae1167e6ac6dda4f43654208a74af3ea26b` | 2026-10-10T15:39:34Z |
|
||
| tim_niemeyer_ | magazine-062 (Contributor); magazine-062 (What happened) | resolve | https://x.com/tim_niemeyer_ | 174674 | `022aa3721cf411303122980fecf87b605b166cabf769d772b8165af637744612` | 2026-10-10T15:39:34Z |
|
||
| SatoshiDeniz | magazine-064 (Contributor) | resolve | https://x.com/SatoshiDeniz | 154542 | `4ee7d09fa8097765a0461576e1961485b766255f2f4c0caa009f0c3816f3790a` | 2026-10-10T15:39:35Z |
|
||
| BTCTimescom | magazine-064 (What happened) | resolve | https://x.com/BTCTimescom | 152642 | `d0290d8e0f2db5f7abe77f19a2a1fc0d73407ef1965a10126aec863c228c78a3` | 2026-10-10T15:39:36Z |
|
||
| MidyReyes | magazine-070 (Contributor); magazine-070 (What happened) | resolve | https://x.com/MidyReyes | 157001 | `faf37e7a9307527ffde283456856433f3ea31fa6a74a1398e6c40e873fe44381` | 2026-10-10T15:39:38Z |
|
||
| StackchainQuant | event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon (What happened - named without @, x2) | 404 | https://x.com/StackchainQuant | 37702 | `47f73c39ebdbe437559c9532aa1cceeaf69dc3724670f6f3b4ce756f9ec76bf3` | 2026-10-10T15:39:39Z |
|
||
| archive-ari-genesis | block-5 (Provenance) | resolve | https://web.archive.org/web/20220718230820/https://twitter.com/AriZonanHODL/status/1549169119924080640 | 64518 | `5ca88e586bfc6b026ff027d1cdf1887e24686ac0d71e2f5fc3237bfd51c8716c` | 2026-10-10T15:39:40Z |
|
||
|
||
## Findings
|
||
|
||
1. **Three of 26 named X handles do not resolve, and one of them is named in prose as a source of
|
||
record.** `@_overflow__` (404), `@humblebitcoiner` (404), `StackchainQuant` (404). None is anchored,
|
||
so a reader cannot tell from the page whether the name is live. `StackchainQuant` is the worst case:
|
||
`event-2022-08-18`'s summary asserts what the account *"reports"* — a claim whose only named
|
||
warrant is a handle that 404s.
|
||
2. **Two more are suspended, and both sit in the Contributor field.** `@BTC_Freeborn` (`magazine-035`)
|
||
and `@RedTailHawk1923` (`magazine-056`) both return HTTP 200 with `<title>Profile / X</title>` and
|
||
`<h2>Account suspended</h2>` — *"X suspends accounts which violate the X Rules"*. A naive
|
||
status-code check would grade both `resolve`; the body is what settles it.
|
||
3. **One handle is live but its owner has moved.** `@captainsiddh` answers, and its own description
|
||
points at `@captainsidd`. The archive names the old handle.
|
||
4. **The dedupe is real, not cosmetic.** `event-2022-07-18` prints `@HappyClownTime` and
|
||
`magazine-019` prints `@happyclowntime`; both resolve to `Bob (@happyclowntime) / X`. Two
|
||
spellings, one account, and a reader following either gets the same person.
|
||
5. **The one bare URL in the list is the best-behaved source on the page.** `block-5` names the
|
||
Wayback capture `…/web/20220718230820/https://twitter.com/AriZonanHODL/status/1549169119924080640`
|
||
in its Provenance prose without linking it; fetched with `-L`, HTTP 200 / 64,518 B / sha256
|
||
`5ca88e586bfc6b026ff027d1cdf1887e24686ac0d71e2f5fc3237bfd51c8716c` / 2026-10-10T15:39:40Z,
|
||
`<title>AriZonan HODL on Twitter: "Even on days when I'm broke as hell I still stack. Feel free
|
||
to join me." / Twitter</title>` — the live-404 genesis tweet, held by the capture. The archive
|
||
already knows the wayback route for a dead X source and uses it in prose without a link.
|
||
|
||
## Method and limits
|
||
|
||
- **Scripts, all re-runnable, working tree `/root/crucible/q22/`:** `fetch_all.py` (index + 121 entry
|
||
pages), `named.py` (the named-source rule and its output), `fetch_targets.py` (28 fetches),
|
||
`classify.py` (verdict class per response), `verify.py` (the exact evidence strings for every
|
||
non-resolving row), `rename.py` (handle-in-description scan), `emit.py` (this file). Every fetched
|
||
body is kept under `pages/` and `targets/`.
|
||
- **Invocations.** `curl -sS -o <path> -w '%{http_code} %{size_download} %{redirect_url}'
|
||
--max-time 60 <url>` without `-L`, so a 3xx would report its own code and `Location` rather than
|
||
being silently followed; the archive URL used `-L` with `%{url_effective} %{num_redirects}` and
|
||
reported 0 redirects.
|
||
- **Clock.** All fetches from this host, 2026-10-10T15:38–15:41Z. Entry pages are dated readings, not
|
||
identifiers.
|
||
- **What this does not test.** Whether the named source actually supports the claim made beside it
|
||
(that is Q8/Q10/Q20's lane); whether the *anchored* sources resolve (Q3 and Q21); the summaries'
|
||
content. A 404 on a handle says the name is unreachable today, not that the person never existed —
|
||
`@_overflow__`, `@humblebitcoiner` and `StackchainQuant` may all have been renamed or deleted rather
|
||
than never-lived, and nothing here distinguishes those cases.
|
||
- **Nothing executed on** any live page, `blocks.json`, another party's file, or `decisions/`.
|
||
|
||
— Merlin, 2026-10-10
|