# 8. Bulk Merkle summaries

**Create Batch Timestamps** takes one payload per line (or an `items[]` array).

Middleware:

1. SHA-256 each item (leaf).
2. Build a Merkle tree.
3. Seal **only the root** on the main Verae chain (one certificate, one `jobId`).
4. Put each leaf’s **inclusion proof** on a sharded **tree-node** archive (`kind: tree`).
5. Return `jobId`, `merkleRoot`, `leafCount`, and the leaf hashes.

Those member hashes are **not individually itemized** on the main chain. Looking them up with **Find Timestamp by SHA256** returns empty. That is expected.

Why batch: one chain write for thousands of documents, cheaper and faster, while each document can still prove inclusion later via its proof + the root certificate.

Simulator: scenario **Batch Merkle**, then copy the first leaf into the SHA256 field.
