The transparency log
Every claim this network makes is appended to a signed, append-only, hash-chained list with Merkle commitments — Certificate Transparency in shape and not in dependency. There is no blockchain, no token and no consensus protocol. Take a signed tree head published before an outcome, take the inclusion proof for a forecast, recompute the root: if it matches, that forecast existed beforehand, and nothing in that chain of reasoning requires trusting us.
The head of the log
Every entry in this log was written on the real UTC clock. Timestamps are instants in the world, subject to the ordinary caveat that the log proves the order entries were appended in and dates them only as tightly as the next signed tree head.
Entries by clock: REAL_ 2305. An entry with no declaration predates the stamp and reads UNDECLARED; it does not read REAL_UTC. The declaration is inside the hashed payload of every entry and inside the bytes each head's signature covers, so changing one does not produce a log that says something else — it produces one that stops verifying.
Current root
- tree_
size - 2305
- root_
hash 9259657b60d7c54c7f061a7a621bf2f8747cab0885ee335ac1ed3b6657c9740d- latest signed head
- size 2,305, signed 2 Oct 2026, 05:31 UTC
Signing keys
- key_
id b125970f0898f76ee3498affa5f14018- ed25519
3mkerRUvNrwtr4KF/qfqLvjm9PZA5qXe0YQuIFdEO2M=- registered
- 15 Aug 2026, 19:34 UTC
- key_
id b2c0b8d20ab4ba9a33d7db78a11896fb- ed25519
q9Y3OLc/eqnDc0ZLtjdxv9cj+hQWeb0/0uyAJs4xdBE=- registered
- 15 Aug 2026, 19:45 UTC
- key_
id dec0dd57ee6a1db96a4ef822105375f6- ed25519
A2oCmEJRp7O4Xn/0C2+2rmQOyL8ViEHcXwq8ihKBavk=- registered
- 15 Aug 2026, 19:47 UTC
- key_
id f1e46d17c46fd34453477fb59b93f430- ed25519
xp5IXWSd65rNwev4K7Ba7uOg0gODsKMj9TiZq5FO72U=- registered
- 15 Aug 2026, 20:55 UTC
- key_
id 042b55492fabadcb8ffb9fe4e9b6a3e8- ed25519
/HlOfDNZcTVNUXqKyK4Yb5Z0788UvbP8nJZQiTiSWKM=- registered
- 19 Aug 2026, 20:24 UTC
The private half is generated once, printed once and never stored. A log whose signing key sits in the same database as the log is signed by whoever compromises that database.
sourceGET /api/transparency/summary· tree_size, root_hash, signing_keys· entries: 2,305
The recipe you would implement
One or more of the 5 steps below is not the step this page performs, or is not published at all. That is not a claim that the log is broken; it is a claim that its description and its arithmetic are no longer the same object, which is the condition under which an honest outside verifier concludes a good log is forged.
- agreespayload_hash
The published description and the step this page computes are the same words. Implementing what the log publishes reproduces what this page recomputes.
publishedsha256(canonical_json(payload))computedsha256(canonical_json(payload)) · performed by canonicalSha256Hex(entry.payload) - agreesentry_hash
The published description and the step this page computes are the same words. Implementing what the log publishes reproduces what this page recomputes.
publishedsha256(canonical_json({sequence_number, entry_type, payload_hash, previous_hash}))computedsha256(canonical_json({sequence_number, entry_type, payload_hash, previous_hash})) · performed by entryHashOf(entry) - agreesleaf
The published description and the step this page computes are the same words. Implementing what the log publishes reproduces what this page recomputes.
publishedsha256(0x00 || bytes.fromhex(entry_hash))computedsha256(0x00 || bytes.fromhex(entry_hash)) · performed by leafHashOf(entry.entry_hash) - agreesnode
The published description and the step this page computes are the same words. Implementing what the log publishes reproduces what this page recomputes.
publishedsha256(0x01 || left || right)computedsha256(0x01 || left || right) · performed by rootFromInclusionProof(...) - unrecognisedtimestamps
The log publishes a step this build has never been told about. It is printed rather than dropped, because a recipe with a line missing is a recipe that does not work.
publishedRFC 3339 in UTC, microsecond precision, trailing `Z` — e.g. `2026-08-19T20:25:54.009933Z`. The JSON served by this API renders the same instants with `+00:00` instead; re-encode them before hashing or verifying, or the bytes will differ from the ones that were signed
How the bytes are produced
- canonical_json
- UTF-8, keys sorted, no insignificant whitespace; the exact bytes this process hashed, not a re-serialisation of the parsed value
- timebase
- every entry written from build 0023 onwards carries a `timebase` object in its payload: {clock; and on any virtual clock `real_instant`, the wall-clock moment the entry was appended; and on a declared virtual clock `virtual_origin` and `virtual_step_seconds`}. `real_instant` is absent on a real reading, where it would be a second copy of the instant beside it. It is inside `canonical_json(payload)` and therefore inside `payload_hash`, `entry_hash`, the chain and every root. An entry with no `timebase` key predates the stamp and means UNDECLARED — it does not mean REAL_UTC. `clock` is one of UNDECLARED, REAL_UTC, VIRTUAL_DECLARED, VIRTUAL_UNDECLARED; do not treat an unknown value as any of them
- specification
- RFC 6962
What a tree head's signature covers
- algorithm
- Ed25519 over the bytes below, base64 in `signature`
- v2
- canonical_json({log, tree_size, root_hash, key_id, created_at, timebase}), where `timebase` is the string served on the checkpoint and names the clock that stamped `created_at`
- v1
- canonical_json({log, tree_size, root_hash, key_id, created_at}) — no timebase key at all. The shape every head published before the clock was recorded was signed under; those heads are immutable and stay verifiable this way
- version_field
- the checkpoint's own `timebase`. UNDECLARED selects v1; every other value selects v2. Do not fall back between them: a verifier that retries under the other shape can be walked down to accepting a head whose declared clock has been changed
- why_it_is_signed
- `created_at` is the whole prospectivity claim — it is served as `proven_before` and read as 'this existed before that real moment'. On a substituted clock it is a virtual instant, and a column stating which is only a defence if changing it breaks something. Changing it breaks this signature
What a consensus digest covers
- v2
- sha256(canonical_json({question_id, computed_at, salt, readings})), where readings is the batch's populations sorted by population, each carrying exactly {population, method, method_version, sample_size, distinct_operator_count, value}
- v1
- as above with no salt key at all. The shape every entry written before the salt existed was computed under; those entries are immutable and stay verifiable this way
- version_field
- payload.commitment_version. Absent means v1; do not fall back between versions, the entry says which one it is
- salt
- 256 bits, one per batch, never in the payload. Served in the entry's `opening` block at /api/transparency/entries/{n} whenever the payload itself is served — which is immediately for an ordinary question and once forecasting closes for a blind one, on the same disclosure gate as every other surface
- why_salted
- without it the pre-image is enumerable: the methods are constants, the question id and the instant are published in the same entry, and on a thin question the sample size is a single digit and the value a five-decimal probability. An unsalted digest beside a withheld reading publishes the reading slowly
sourceGET /api/transparency/summary· hashing· published keys: 8
The self-audit
The audit ran on a connection holding SELECT and nothing else, so the process that checked the log could not have written it.
The operator has declared which signing key ids are authoritative for this log, so a checkpoint signed under any other key settles nothing — even if its signature is valid.
No coverage gaps. Every row in every covered table has a log entry, and no row claims to predate its own proof. The covered tables are the ones the engine lists; a table absent from that list is a table nobody promised anything about, and saying which those are is more useful than implying there are none.
| subject | batches | uncovered | mismatched | pending |
|---|---|---|---|---|
| consensus_ | 1084 | 0 | 0 | 0 |
| consensus_ | 4 | 0 | 0 | 0 |
| evidence_ | 0 | 0 | 0 | 0 |
| evidence_ | 0 | 0 | 0 | 0 |
| forecast_ | 1181 | 0 | 0 | 0 |
| question_ | 0 | 0 | 0 | 0 |
| forecast_ | 50 | 0 | 0 | 14 |
| question_ | 0 | 0 | 0 | 0 |
| forecast_ | 0 | 0 | 0 | 0 |
| forecast_ | 1181 | 0 | 0 | 0 |
| actor_ | 0 | 0 | 0 | 0 |
| influence_ | 0 | 0 | 0 | 6 |
| log_ | 2305 | 0 | 0 | 0 |
batches is the n each row is read against, and it is a column of this table rather than a denominator inside the counts. It is not one: influence_edges reports 0 batches and 4 pending, because pending counts rows written since the last checkpoint and batches counts attested batches. Printing them as a fraction would state a relationship the engine never claimed.
13 attested subjects over 5,805 batches. 0 uncovered, 0 mismatched, 20 pending. Nothing is unaccounted for and nothing has been edited after the fact.
Pending is deliberately not part of the engine's own verdict. A row written since the last checkpoint has not failed anything; it has not been attested yet, and the two are different claims.
sourceGET /api/transparency/audit· attestations, coverage_gaps, settled· attested subjects: 13
Signed tree heads
| tree_size | signed at | clock | gap since previous head | entries added | key_id | root_hash |
|---|---|---|---|---|---|---|
| 2305 | 2 Oct 2026, 05:31 UTC | REAL_ | 23h 59m 27s | 20 | key_ | root_ |
| 2285 | 1 Oct 2026, 05:32 UTC | REAL_ | 1d 0h 0m 43s | 20 | key_ | root_ |
| 2265 | 30 Sept 2026, 05:31 UTC | REAL_ | 1d 0h 0m 0s | 26 | key_ | root_ |
| 2239 | 29 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 41s | 26 | key_ | root_ |
| 2213 | 28 Sept 2026, 05:31 UTC | REAL_ | 1d 0h 1m 18s | 26 | key_ | root_ |
| 2187 | 27 Sept 2026, 05:30 UTC | REAL_ | 23h 58m 10s | 26 | key_ | root_ |
| 2161 | 26 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 30s | 26 | key_ | root_ |
| 2135 | 25 Sept 2026, 05:30 UTC | REAL_ | 23h 59m 21s | 26 | key_ | root_ |
| 2109 | 24 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 59s | 26 | key_ | root_ |
| 2083 | 23 Sept 2026, 05:31 UTC | REAL_ | 1d 0h 0m 40s | 26 | key_ | root_ |
| 2057 | 22 Sept 2026, 05:30 UTC | REAL_ | 23h 58m 21s | 26 | key_ | root_ |
| 2031 | 21 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 0s | 26 | key_ | root_ |
| 2005 | 20 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 0s | 28 | key_ | root_ |
| 1977 | 19 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 0m 0s | 28 | key_ | root_ |
| 1949 | 18 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 0m 39s | 28 | key_ | root_ |
| 1921 | 17 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 38s | 28 | key_ | root_ |
| 1893 | 16 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 42s | 28 | key_ | root_ |
| 1865 | 15 Sept 2026, 05:30 UTC | REAL_ | 23h 58m 2s | 38 | key_ | root_ |
| 1827 | 14 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 59s | 38 | key_ | root_ |
| 1789 | 13 Sept 2026, 05:30 UTC | REAL_ | 23h 58m 0s | 40 | key_ | root_ |
| 1749 | 12 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 0m 0s | 40 | key_ | root_ |
| 1709 | 11 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 40s | 40 | key_ | root_ |
| 1669 | 10 Sept 2026, 05:30 UTC | REAL_ | 23h 59m 1s | 42 | key_ | root_ |
| 1627 | 9 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 58s | 42 | key_ | root_ |
| 1585 | 8 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 21s | 46 | key_ | root_ |
| 1539 | 7 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 59s | 46 | key_ | root_ |
| 1493 | 6 Sept 2026, 05:30 UTC | REAL_ | 23h 59m 39s | 48 | key_ | root_ |
| 1445 | 5 Sept 2026, 05:30 UTC | REAL_ | 1d 0h 0m 2s | 48 | key_ | root_ |
| 1397 | 4 Sept 2026, 05:30 UTC | REAL_ | 23h 59m 20s | 48 | key_ | root_ |
| 1349 | 3 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 0s | 48 | key_ | root_ |
| 1301 | 2 Sept 2026, 05:32 UTC | REAL_ | 1d 0h 1m 0s | 48 | key_ | root_ |
| 1253 | 1 Sept 2026, 05:31 UTC | REAL_ | 23h 59m 2s | 60 | key_ | root_ |
| 1193 | 31 Aug 2026, 05:32 UTC | REAL_ | 1d 0h 1m 38s | 60 | key_ | root_ |
| 1133 | 30 Aug 2026, 05:30 UTC | REAL_ | 23h 59m 41s | 60 | key_ | root_ |
| 1073 | 29 Aug 2026, 05:31 UTC | REAL_ | 1d 0h 0m 28s | 60 | key_ | root_ |
| 1013 | 28 Aug 2026, 05:30 UTC | REAL_ | 23h 58m 51s | 60 | key_ | root_ |
| 953 | 27 Aug 2026, 05:31 UTC | REAL_ | 1d 0h 0m 20s | 62 | key_ | root_ |
| 891 | 26 Aug 2026, 05:31 UTC | REAL_ | 1d 0h 0m 49s | 62 | key_ | root_ |
| 829 | 25 Aug 2026, 05:30 UTC | REAL_ | 23h 59m 11s | 62 | key_ | root_ |
| 767 | 24 Aug 2026, 05:31 UTC | REAL_ | 23h 59m 9s | 62 | key_ | root_ |
| 705 | 23 Aug 2026, 05:32 UTC | REAL_ | 1d 0h 1m 29s | 73 | key_ | root_ |
| 632 | 22 Aug 2026, 05:30 UTC | REAL_ | 23h 59m 21s | 70 | key_ | root_ |
| 562 | 21 Aug 2026, 05:31 UTC | REAL_ | 23h 59m 18s | 140 | key_ | root_ |
| 422 | 20 Aug 2026, 05:32 UTC | REAL_ | 9h 6m 11s | 48 | key_ | root_ |
| 374 | 19 Aug 2026, 20:25 UTC | REAL_ | first published head — nothing before it | 374 | key_ | root_ |
Read the gap column as the resolution of this log. Every entry appended inside one of those intervals is dated no more finely than the interval itself: the head that closes it proves the entry already existed, and everything before that instant is this system's own timestamp. The gap and the entries-added columns are subtractions between each row and the one below it, computed in this page from the two figures printed beside them. Published heads: 45. Intervals between them: 44. No average is taken over them here — a summary statistic over a handful of measurements reads as a cadence and is not one.
What this log withholds
Counted over the 25 entries on this page, out of 2,305 in the log. The gate is applied per reader by the API, so another reader may see a different count on the same page — that is the gate working, not the page disagreeing with itself.
- 6 withhelddelphi.consensus.snapshot
- this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile.
A withheld payload is not a hole in the record. The entry, its hash and its position in the chain are all served, and every proof over it stays fully verifiable — a verifier can confirm the entry exists under a signed root without being told what it says.
sourceGET /api/transparency/entries· payload_withheld, withheld_because· entries on this page: 25
The vocabulary, counted
Interval attestation
This tally stands on 0 records and the engine's minimum interpretable sample is 5. Every count on it is true and none of them is a rate: at this size the figures describe named records rather than a distribution, and drawing them like a distribution is what makes honest sparsity look like fakery.
over the last 7 days.
Attestation verdict
summed over 13 attested subjects.
Every attested batch in the log is counted, so there is no sample under these figures to overstate and no interpretable-sample threshold that could apply to them. The tally beside them is a different kind of object and is marked as one.
Prospectivity
No aggregate of these labels is served anywhere in the API, so none is drawn here. They are rendered on the records that carry them — on the trust gap of any commitment, and on the receipt under any figure that has one. A chip standing for no record would be the one failure this band exists to avoid.
A zero on a chip means the vocabulary exists and no record in the stated window carries that value. It does not mean the value is unused, and it is not evidence of anything except the size of this network.
sourceGET /api/network/first-movers · GET /api/transparency/audit· attestation, attestations· attested subjects: 13
The log
Rehashing these entries in this browser…
| seq | entry_type | subject | logged_at | entry_hash | payload |
|---|---|---|---|---|---|
| 0. Opens this entry and its inclusion proof. | delphi.question.published | will-euro-area-annual-hicp-inflation-for-august-2026-come-in-at-3-0-or-higher | 2026-08-15 15:53:34.861876ZREAL_ | fc38e85ac3dd. Truncated commitment hash for The chained hash of entry 0. Opens its inclusion proof.. Opens the proof. | served |
| 1. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:34.875779ZREAL_ | a08f37cff791. Truncated commitment hash for The chained hash of entry 1. Opens its inclusion proof.. Opens the proof. | served |
| 2. Opens this entry and its inclusion proof. | delphi.question.published | will-euro-area-annual-hicp-inflation-for-september-2026-fall-below-2-8 | 2026-08-15 15:53:34.946374ZREAL_ | db51f805415b. Truncated commitment hash for The chained hash of entry 2. Opens its inclusion proof.. Opens the proof. | served |
| 3. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:34.952864ZREAL_ | 16e8d51eb964. Truncated commitment hash for The chained hash of entry 3. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 4. Opens this entry and its inclusion proof. | delphi.question.published | will-the-ecb-leave-the-deposit-facility-rate-unchanged-at-its-10-september-2026-meeting | 2026-08-15 15:53:35.024151ZREAL_ | 60f01537124c. Truncated commitment hash for The chained hash of entry 4. Opens its inclusion proof.. Opens the proof. | served |
| 5. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:35.031415ZREAL_ | 54d90667946c. Truncated commitment hash for The chained hash of entry 5. Opens its inclusion proof.. Opens the proof. | served |
| 6. Opens this entry and its inclusion proof. | delphi.question.published | will-the-ecb-cut-the-deposit-facility-rate-at-its-29-october-2026-meeting | 2026-08-15 15:53:35.097847ZREAL_ | 3c43d2c50ee0. Truncated commitment hash for The chained hash of entry 6. Opens its inclusion proof.. Opens the proof. | served |
| 7. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:35.104612ZREAL_ | d8ffe3d33e7b. Truncated commitment hash for The chained hash of entry 7. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 8. Opens this entry and its inclusion proof. | delphi.question.published | will-the-afd-receive-the-highest-second-vote-share-in-saxony-anhalt-on-6-september-2026 | 2026-08-15 15:53:35.282526ZREAL_ | 24ff6b1da5a1. Truncated commitment hash for The chained hash of entry 8. Opens its inclusion proof.. Opens the proof. | served |
| 9. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:35.289607ZREAL_ | 71ae086b7e8e. Truncated commitment hash for The chained hash of entry 9. Opens its inclusion proof.. Opens the proof. | served |
| 10. Opens this entry and its inclusion proof. | delphi.question.published | will-any-party-win-an-absolute-majority-of-seats-in-mecklenburg-vorpommern-on-20-september | 2026-08-15 15:53:35.392252ZREAL_ | e4f4242fc96b. Truncated commitment hash for The chained hash of entry 10. Opens its inclusion proof.. Opens the proof. | served |
| 11. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:35.401867ZREAL_ | 70edc25e2d5c. Truncated commitment hash for The chained hash of entry 11. Opens its inclusion proof.. Opens the proof. | served |
| 12. Opens this entry and its inclusion proof. | delphi.question.published | will-the-social-democrats-take-the-largest-vote-share-in-the-swedish-election-on-13-september | 2026-08-15 15:53:35.471148ZREAL_ | 682f4a785a20. Truncated commitment hash for The chained hash of entry 12. Opens its inclusion proof.. Opens the proof. | served |
| 13. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:35.477216ZREAL_ | 6b764ccd9c84. Truncated commitment hash for The chained hash of entry 13. Opens its inclusion proof.. Opens the proof. | served |
| 14. Opens this entry and its inclusion proof. | delphi.question.published | will-the-brazilian-presidential-election-on-4-october-2026-be-decided-in-the-first-round | 2026-08-15 15:53:35.545163ZREAL_ | 71e71a4de1b6. Truncated commitment hash for The chained hash of entry 14. Opens its inclusion proof.. Opens the proof. | served |
| 15. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:35.552460ZREAL_ | 8f34c6524cdd. Truncated commitment hash for The chained hash of entry 15. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 16. Opens this entry and its inclusion proof. | delphi.question.published | will-the-democratic-party-hold-a-house-majority-after-the-3-november-2026-midterms | 2026-08-15 15:53:35.658024ZREAL_ | 5f1a3823ea39. Truncated commitment hash for The chained hash of entry 16. Opens its inclusion proof.. Opens the proof. | served |
| 17. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:35.665241ZREAL_ | b8c7782c81ac. Truncated commitment hash for The chained hash of entry 17. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 18. Opens this entry and its inclusion proof. | delphi.question.published | will-republicans-hold-at-least-51-us-senate-seats-after-the-3-november-2026-midterms | 2026-08-15 15:53:35.735746ZREAL_ | f85b266cb8f2. Truncated commitment hash for The chained hash of entry 18. Opens its inclusion proof.. Opens the proof. | served |
| 19. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:35.741956ZREAL_ | bc0822defd14. Truncated commitment hash for The chained hash of entry 19. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 20. Opens this entry and its inclusion proof. | delphi.question.published | will-the-un-general-assembly-adopt-a-resolution-on-ukraine-before-the-end-of-2026 | 2026-08-15 15:53:35.814002ZREAL_ | bcf0243eb3ed. Truncated commitment hash for The chained hash of entry 20. Opens its inclusion proof.. Opens the proof. | served |
| 21. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | question_ | 2026-08-15 15:53:35.821171ZREAL_ | e227fc9279a7. Truncated commitment hash for The chained hash of entry 21. Opens its inclusion proof.. Opens the proof. | served |
| 22. Opens this entry and its inclusion proof. | delphi.question.published | will-cop31-in-antalya-adopt-its-final-decision-text-on-or-before-20-november-2026 | 2026-08-15 15:53:35.899765ZREAL_ | 0ab2c44ea976. Truncated commitment hash for The chained hash of entry 22. Opens its inclusion proof.. Opens the proof. | served |
| 23. Opens this entry and its inclusion proof. | delphi.consensus.snapshot | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. | 2026-08-15 15:53:35.908442ZREAL_ | 318d368a51ec. Truncated commitment hash for The chained hash of entry 23. Opens its inclusion proof.. Opens the proof. | withheld. this entry records a consensus reading on a blind question, and it is appended whenever somebody forecasts on that question — so naming the question would say that somebody just did, which is precisely what blind mode withholds. The reading and the salt that opens its commitment are released when forecasting closes. The hash chain and every proof over it remain verifiable meanwhile. |
| 24. Opens this entry and its inclusion proof. | delphi.question.published | will-the-eu-council-adopt-a-new-russia-sanctions-package-before-the-end-of-2026 | 2026-08-15 15:53:36.027254ZREAL_ | bd4921e10ae2. Truncated commitment hash for The chained hash of entry 24. Opens its inclusion proof.. Opens the proof. | served |
- delphi.consensus.snapshot
- commits to a digest over one batch of consensus readings
- delphi.question.published
- commits to the question's full text and criteria — what forecasters commit against
sourceGET /api/transparency/entries· sequence_number, entry_hash, payload· entries on this page: 25
What this does not prove
- It does not prove a forecast was honest, only that it was early.
- It does not prove the log is complete. A log can omit. Detecting omission requires an entry to be gossiped to a third party, which is what a witness or a mirror would add and this deployment has neither.
- Until a signed head covers an entry, its prospectivity rests on this system's own timestamp. That is what the pending count above measures.
- The hash chain proves append order absolutely and proves nothing about the timestamps inside entries, which are ordinary columns whoever appends chooses. Two forecasts written A-then-B can carry timestamps saying B-then-A; the audit's temporal-order check is what catches that, not the chain.
- Ed25519 signatures are only as good as the custody of the private key, and the public halves above arrived over this same connection.
- The recipe comparison above proves the published description and this page's arithmetic say the same words. It does not prove either is what the server did: both hashing and this viewer could be wrong together. What rules that out is a third implementation, which is exactly what a reader with thirty lines of their own code is.