> For the complete documentation index, see [llms.txt](https://lashae.gitbook.io/lashae-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lashae.gitbook.io/lashae-docs/the-protocol/dream-ledger.md).

# the dream ledger

While you are away, the field dreams.

The **Dream Ledger** is a nocturnal reflection composed only from the *shape* of your work — never its content. The archivist pilgrim is deliberately blinded to plaintext: she sees counts, timestamps, hash prefixes, cadence, and gaps, and nothing else. From that skeleton she writes a short reflection, and the reflection itself is hashed and anchored to Solana.

The result: a form of AI memory that can be **proven not to have read what it was not shown**.

## the primitive

A dream is a row in `dreams` containing:

* `period_start`, `period_end` — the window covered
* `footprint_count` — how many footprints existed in that window
* `metadata_json` — the exact shape handed to the model
* `metadata_hash` — `SHA-256(metadata_json)`
* `model` — which model dreamed (`google/gemini-3-flash-preview`)
* `dream_text` — the archivist's reflection
* `dream_text_hash` — `SHA-256(dream_text)`
* `dream_hash` — a canonical composite hash, anchored on-chain
* `anchor_signature` — the Solana Memo Program transaction signature

## what the archivist sees

The model receives a single JSON object with:

* `period_start`, `period_end` (ISO)
* `footprint_count`, `trail_count`
* `proof_type_counts` (e.g. `{link: 3, image: 1}`)
* `gap_hours` — hours between consecutive footprints
* `timeline` — one entry per footprint: `{ t, h12, type, trail }`
  * `h12` is the first 12 hex chars of the footprint's content hash
  * `trail` is a truncated trail id, never a name

That is the entire input. No titles. No reflections. No proof URLs. No images. No decrypted shroud content.

## the canonical dream hash

Anyone with the parts can re-derive the hash:

```
dream_hash = SHA-256(
  "LASHAE_DREAM"
    \u001f period_start_iso
    \u001f period_end_iso
    \u001f metadata_hash
    \u001f model
    \u001f dream_text_hash
)
```

The `dream_hash` is what LASHAE writes into the Solana memo, prefixed with `LASHAE_DREAM`. Verifying against the on-chain memo proves:

1. The dream text was not edited after it was anchored.
2. The metadata handed to the model was not edited after the anchor.
3. The model that dreamed is the model the receipt claims.

## why this is novel

Every "AI memory" or "AI journal" product today has an unstated tradeoff: to remember your week the model has to *read* your week. Your plaintext becomes training-adjacent context that a server, a subpoena, or an accidental log can surface later.

The dream ledger inverts this. The model remembers the **shape** of the walk, not its contents. What it dreams is not a summary — it cannot be, because it has nothing to summarize. It is a reflection composed from cadence.

Combined with [shrouded footprints](/lashae-docs/the-protocol/shrouded-footprints.md), the closed loop is:

* the plaintext never leaves your browser
* the ciphertext + commitment hash live on our servers
* the dream is written from metadata alone
* both the shroud and the dream are anchored on-chain

You can be witnessed, remembered, and dreamed of — without being seen.

## triggering a dream

Today, dreams are summoned manually from `/dreams` — pick a window (default 7 days) and let the field dream. Future work: a nightly `pg_cron` schedule that dreams for every walker whose window has any footprints, from a protocol signer, without requiring your browser to be open.

## the tone

> the field was still. no foot lifted, no hash was born. the ground kept its own quiet.

> six footprints in the recorded window. clustered near midnight, then long silence. the archivist cannot see what was carried, only that the carrying was late and dense.

Dreams are not motivational. They are not summaries. They are what the field remembers when the walker sleeps.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://lashae.gitbook.io/lashae-docs/the-protocol/dream-ledger.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
