puzzles.json
Every record with all columns. Missing values are null.
- Format
- JSON, one array of records
- Size
- 130.4 KB (133,535 bytes)
- Records
- 160
- SHA-256
- e85a170ced22f4dfba73e6458291e7dada23995ca352edda5d34c442da9a5e30
Open data2 Oct 2026
All 160 records of the atlas as one JSON file and one CSV file, with the same columns. Every file below is rebuilt with the site and carries its own checksum.
Snapshot of 2 Oct 2026. This is a catalog compilation, not a live chain scan: rewards are nominal allocations, not balances, and solver names are labels, not audited identities.
Same records, same columns, same order in the JSON and the CSV. The checksums are SHA-256 of the exact bytes served from this site.
Every record with all columns. Missing values are null.
A header row, then one row per record. Missing values are empty cells; booleans are true or false. Lines end with LF.
Where the snapshot comes from and what was checked offline. States plainly that no chain freshness check was done.
Check a download. Compare the digest of your copy with the checksum above. sha256sum puzzles.csv
26 columns, listed in file order. The example column shows puzzle #135.
| Field | Type | Meaning | Example |
|---|---|---|---|
| id | integer | Puzzle number, 1 to 160. Equal to bits. | 135 |
| bits | integer | Bit length of the private scalar. The key lies in [2bits−1, 2bits - 1]. | 135 |
| address | string | The P2PKH address funded for this puzzle. | 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v |
| status | string | solved when the catalog records the address as spent, unsolved otherwise. | solved |
| reward_btc | number | Nominal catalog allocation in BTC (id / 10). Not a live balance. | 13.5 |
| public_key | string | null | Compressed secp256k1 public key, hex, when it is on chain. Null when only the address is known. | 02145d2611c823a396ef6712ce0f712f09b9b4f3135e3e0a… |
| found_pct | string | null | Legacy position label carried from the source snapshot. See found_offset_pct for the computed value. | 71.21% |
| solved_date | string | null | Date of the spend, YYYY-MM-DD (UTC). Null for open puzzles. | 2026-07-28 |
| solver | string | null | Attribution label as catalogued. A label, not an audited identity. | RetiredCoder (self-attributed) |
| pubkey_known | boolean | True when public_key is present. | true |
| note | string | null | Evidence note for the record. | Spent 08:20:16 UTC in block 959946. Published pr… |
| source_label | string | null | Evidence-strength label for the note, for example On-chain or Forum statement. | Cryptographically verified |
| solved_at | string | null | UTC timestamp of the spend, where the catalog has one. | 2026-07-28T08:20:16Z |
| solve_txid | string | null | Spending transaction id, where the catalog has one. | 817535430c600810080662dd425a2e335f771effd950d28f… |
| solve_block | integer | null | Block height of the spend, where the catalog has one. | 959946 |
| solution_public | boolean | null | Whether the solving key was published, where the catalog records it. | true |
| source_url | string | null | Public reference for the record (forum post or explorer). | https://bitcointalk.org/index.php?topic=5589799.… |
| private_key_already_public | boolean | null | True when the catalog holds a historical scalar that is already public. The scalar itself is not exported. | true |
| unsafe_for_wallets | boolean | null | True when a scalar is public: never use such a key in a wallet. | true |
| range_start_hex | string | First candidate key of the range, 64 hex digits (2bits−1). | 000000000000000000000000000000400000000000000000… |
| range_end_hex | string | Last candidate key of the range, 64 hex digits (2bits - 1). | 0000000000000000000000000000007fffffffffffffffff… |
| range_size_decimal | string | Number of candidate keys in the range, as a decimal string (it overflows 64-bit integers). | 21778071482940061661655974875633165533184 |
| search_bits | integer | bits - 1: log2 of the range size. | 134 |
| search_class | string | historical (spent), public-key (open, key on chain) or address-only (open). | historical |
| hash160 | string | RIPEMD-160(SHA-256(compressed public key)), hex, decoded from the address. | 3b6f58a75a54bfd85d1bc6c51180fdc732992326 |
| found_offset_pct | number | null | Where the solved key sat inside its range, in percent. A position, not the key. Null for open puzzles. | 71.2132 |
The compilation (selection, arrangement, notes and derived columns) is licensed under CC BY 4.0; the facts themselves are on-chain.
Cite the snapshot date, since the catalog changes when a puzzle is spent.
lotterypuzzle (2026). Bitcoin Puzzle catalog, snapshot of 2 Oct 2026 [dataset]. CC BY 4.0. https://lotterypuzzle.org/data/
@misc{lotterypuzzle_puzzle_catalog_2026,
author = {{lotterypuzzle}},
title = {Bitcoin Puzzle catalog},
year = {2026},
note = {Snapshot of 2026-10-02. CC BY 4.0},
url = {https://lotterypuzzle.org/data/}
}
An Atom feed lists every spent puzzle, newest first, with the nominal reward, the method class and the catalog label.
Atom feed (feed.xml) Browse the catalog The catalog in numbers