# 7. Attachments and metadata (not on chain) The blockchain stores hash + time + certificate. Everything else is **off-chain WORM**: | Field | Chain | Archive (`verae.archive.put`) | |-------|-------|-------------------------------| | SHA-256 | yes | key | | Public metadata JSON | no | `kind: publicMeta` | | Encrypted private metadata | no | `kind: privateMeta` | | File bytes | no | `kind: file` + `contentSha256` | Set **includeAttached** on wait/lookup when you need those records back. Middleware then broadcasts `verae.archive.query`. Each archive uses a bloom filter: **if it does not have the hash, it sends nothing**. Archives that have data reply; the aggregator merges them into `receipts[]` and `files[]`. Bloom false positives are possible (empty reply after a maybe). False negatives must be rare. Private metadata is only returned on authenticated archive replies. Zapier still never talks to NATS; it only sees the JSON middleware built.