# 7. External resources: search, storage, and the chain | Resource | Where | How a Zap reaches it | |----------|--------|----------------------| | **Central chain** (itemized SHA-256 + time + certificate) | `api.veraetime.net` or MOCK | HTTPS via middleware: create / wait / `GET /hashes/{sha256}` | | **Bulk Merkle root** | Same chain, one seal | `POST /timestamp/batch` | | **Leaf proofs** (hash only in a bulk summary) | Tree-node WORM on NATS | `GET /hashes/{sha}?includeTree=true` → `verae.archive.query` kinds=`tree` | | **Public / private metadata, files** | WORM archives | `includeAttached`; never on chain | | **Search (central)** | Chain lookup | Zapier search **Find Timestamp by SHA256** | | **Search (external tree / extra stores)** | NATS query to every node that might hold the key | Zapier search **Find Hash (tree nodes + central)** | | **Future search / store** | New `verae.search.*` or `verae.store.*` process | Copy `verae-nats-process`; optional middleware GET | Storage that is **not** the blockchain stays on WORM/tree nodes (and later any process that answers `verae.archive.query` or a new store address). The chain stores hash + time + certificate (+ Merkle root for batches). External “unplanned” storage or search is the same pattern: new address, bloom or index on that node, silence on miss, aggregator or the template’s reply subject.