About & data
What the statuses mean, where the data comes from, and the format of the downloadable JSON.
A858DE45F56D9BC9 was a Reddit account that posted thousands of blocks of hex to r/A858DE45F56D9BC9 between 2011 and 2016. The community at r/Solving_A858 has worked on them for years. This site publishes the results of a systematic re-examination of the whole corpus: every post, how it was decrypted (if it was), what it contains, and which run of A858's posting program produced it.
Statuses
Each post has two independent properties.
Encryption — can we get past the cipher?
| Value | Meaning |
|---|---|
decrypted |
The body is ciphertext and the key is known; the plaintext is shown on the post page. |
unencrypted |
The body is readable as posted (plain GUIDs, hex-encoded text, raw values). |
encrypted |
The body is ciphertext and the key is unknown. |
missing |
The body did not survive in any archive. |
n/a |
Posts whose body was empty or removed. |
Status — do we understand the post?
| Value | Meaning |
|---|---|
| solved | Content recovered and understood: a message, quote, artwork, program or file. |
| explained | Content recovered (or readable as posted) and shown to be generator output: filler GUID lists, 32-bit word lists, batch markers. |
| inferred | Not decrypted, but the post fits the filler generator exactly: its length is 64·N+16 hex characters and N is the count the run's RNG draws for that slot (or the run's fixed N). |
| best-guess | Readable, with a leading interpretation that is checked but not confirmed. |
| partial | Decrypted or decoded, but part of the content (a digest's preimage, marks in a table, a lost body) is still open. |
| unsolved | Content not recovered or not understood. |
| excluded | Not counted: posts whose body was empty or removed. |
Manual posts are the posts made outside the scheduled program: 2011–2012 hand and tool posts, operator test posts and the setup posts of a companion account. Most carry content: messages, quotes, ASCII art, code, coordinates, prime tables and the like. Status markers and the scheduled filler are not counted as manual.
Only A858's posts on its main subreddit are counted. Two more sets have pages of their own but stay out of the counts
and the post listings: the companion account's 122 posts on its own subreddit, under companion/, and
the main account's 117 posts on its second subreddit, r/A858DE45, known from Wayback captures, under sister/. Posts by other accounts, most
of them from February 2016 when the subreddit briefly accepted submissions from anyone, are left out.
Sources
Every post record says which sources hold it:
community-archive— the archive collected by the community (7,796 records with the original post-analysis fields). Captured earlier, so it often has the body before A858 overwrote it.arctic-shift— the Arctic Shift Reddit dump, the superset source (it adds about 2,040 posts the community archive never had).
When the two disagree (A858 edited about 30 posts to ., {} or zeros), the page shows the non-placeholder body and
the other version below it.
Downloads
Every post page links to its own JSON file at posts/<id>.json. The whole dataset is also available:
data/posts.jsonl— every post, one JSON object per line.data/runs.json— every app run, fixed-N batch and post group.data/companion.jsonl— the companion account's 122 posts on r/9CB9D65F54ED858A, in the same format where the fields apply. Each also has its own file atcompanion/<id>.json.data/sister.jsonl— the main account's 117 posts on r/A858DE45, in the same format asposts.jsonl, with the Wayback captures that list each one. Each also has its own file atsister/<id>.json.data/summary.json— the counts shown on the front page.data/sidebar.json— every value the subreddit's sidebar showed, with its capture dates and the posts that use it.data/ama.json— the August 2015 AMA: both code tables, and every reply with its question, its shape after the wipe and the decode of each answer. See the AMA.
Post JSON fields
| Field | Content |
|---|---|
id, title | Reddit base-36 id and the 12-digit title (A858's clock). |
title_time | The title parsed as a timestamp (no time zone; A858's clock varied). |
title_zone, title_zone_hours | The timezone the title is written in: its clock minus the posting time, to the half hour (for example UTC−7 or −7; null if the title does not parse). |
created_utc, author | Reddit posting time (UTC) and author. |
account, subreddit | The account the post is by (the main account, or the companion account, 9CB9D65F54ED858A, the account name reversed) and the subreddit it was posted to. Reddit now shows [deleted] as the author of many of the main account's posts, so the account field is the research's attribution. |
pair, pair_seconds | Companion-account posts only: the main-subreddit post it is paired with, and the seconds between them. The companion posts are in their own file, companion.jsonl, with the same fields where they apply, so they stay out of the A858 counts. |
permalink, arctic_shift | Reddit permalink and the Arctic Shift API URL for the post. |
sources, body_source | Archives that hold the post; which one the body was taken from. |
body, body_other_version | The posted text; the other archive's version if it differs (edits). |
category, kind, encryption, status | Classification (see above). |
summary, content_type, tags | One-line description, content categories and tags. |
cipher | Algorithm, mode, key derivation, password and key for decrypted posts; the hex ciphertext after any unwrapping, the decrypted text before its own hex or Base64 layers, and those layers. For CBC posts, the IV: presumed from a guessed first block (stored with the guess and the characters it covers), or unknown. |
plaintext | The decrypted text, with any hex or Base64 layers peeled off, when known. |
stego | For GIF posts: the run of bytes that differ from the baseline GIF (offset, length, hex; the text read as plain bytes and as nibble pairs, when printable; whether the bytes are the MD5 of the name; and what the message means). |
file | For the GIF, ZIP and EXE posts: the file the unencrypted body is the hex of (name, type, size, SHA-256). The file itself is at posts/<id>/<name>. |
guids | GUID count, mask digits, mask seed and whether the build re-verified it. |
count_from_length | N read from the length law 64·N+16 (undecrypted filler). |
run | Run id, draw index, observed and predicted count. |
known_solution | Solution summary: the method, result and explanation from the research register, and the verifier's re-check where there is one. |
writeup | Long-form write-up (Markdown), when there is one. |
Method
The site build re-derives the core claims instead of copying them: it decrypts every bulk filler post with the known keys, re-checks every mask seed against the decrypted GUIDs, and regenerates the count of every post in every reproduced run from its seed.