Claims and resolution
Typed grammar, commitments and the resolution ladder.
A cash settled option requires a terminal price nobody can dispute afterwards. The settlement layer provides it.
Typed claims
A claim names its own referee. If no adapter can resolve it, it is not a claim.
CLAIM := SUBJECT COMPARATOR THRESHOLD TEMPORAL VIA SOURCE COMPARATOR := >= | <= | > | < | crosses TEMPORAL := AT <iso8601> | ANYTIME_BEFORE <iso8601> NVDA.close >= 182.00 AT 2026-10-16T16:00-04:00 VIA nasdaq.official
Comparator matching must be longest first. Matching > before
>= splits >= 182 into comparator > and
threshold = 182, which then fails as non-numeric. There is a test for it.
Commitments
Every field is bound into one hash. Commitments accumulate into a Merkle tree with domain separated leaf and node hashing, and only the epoch root is anchored, at constant cost per epoch rather than per claim. Epochs chain by previous root, so a deleted or reordered epoch is detectable rather than merely discouraged.
Resolution ladder
| Layer | Mechanism | Share |
|---|---|---|
| Primary | registered adapter at the stated timestamp | ~94% |
| Redundant | k of n independent operators agree within tolerance | ~5% |
| Dispute | 24h window, bonded challenge, committee vote | <1% |
| Void | source failed, halt, corporate action | rare |
A void resolution is excluded from the record rather than settled arbitrarily.