What's new
OCP v1.2.0 adds an optional temporal bounds layer. Derives a finality-bounded existence proof from on-chain state — no oracles, no trusted time servers, no new trust assumptions.
New: appendix-temporal-bounds-r.md
Defines finality models for all supported networks, upper bound semantics, validator influence windows, and a worked example with plain language legal representation.
New: reference-cli/temporal-bounds.js
Zero-dependency Node.js helper:
getTemporalBound(txHash, chainId)→ TemporalBoundResult- Returns block_timestamp, finality depth, upper_bound, upper_bound_iso
- Finality table covers Ethereum mainnet, Base, Base Sepolia, Ethereum Sepolia
Finality table
| Network | Safe Depth | Finality Window | Validator Window |
|---|---|---|---|
| Ethereum mainnet | 64 blocks | ~12 min | 12s |
| Base mainnet | 32 blocks | ~7 min | 2s |
| Base Sepolia | 32 blocks | ~7 min | 2s |
| Ethereum Sepolia | 64 blocks | ~12 min | 12s |
Conformance
8/8 tests pass — conformance/temporal-bounds/run-temporal-bounds-conformance.sh
Design note
This extension establishes an upper temporal bound only. A commitment proves the observation existed no later than finalized inclusion. Lower bound guarantees require application-layer controls outside OCP's verification boundary.
Install
npm install ocp-verifySpec
docs/spec/appendix-temporal-bounds-r.md