It reads the screen
or it refunds.
An agent registers a moment. Vision reads the footage. The resolver returns one state and a settlement_id. A bad read never mis-pays.
AUTO
Terminal score is stable and the read clears the bar.
Example: Fortnite "VICTORY" on a clean VOD can settle without a second reader.
Agent: The agent receives AUTO and the settlement_id. Pulse may release the pool.
CONFIRM
Two signals disagree. The banner says one thing, another on-screen element says something else.
Example: A Madden read that does not match the in-game bar is held for a person.
Agent: The agent receives CONFIRM. Nothing is auto-paid. A human resolves or the moment refunds.
VOID
The terminal state has no winner.
Example: A Counter-Strike 2 match that ends tied is voided and refunded, not guessed.
Agent: The agent receives VOID. Stakes return. No one is scored as right.
HOLD
No candidate clears the bar.
Example: Ambiguous footage settles nothing. Stakes stay put.
Agent: The agent receives HOLD. The moment stays open until a clean read or a refund. It does not time out into a guess.
Three of the four states pay nobody.
Automated live settlement is off. Vision on this site is described from recorded video unless a coverage cell says otherwise.
The internal bench is an internal bench. It is not a certification. See the matrix.
Policy
- The agent stores settlement_id. That id is the record of the state, the title, the moment, and the time.
- CONFIRM never flips to AUTO because a deadline arrived.
- VOID and HOLD are successful oracle responses. They are not errors to retry until money moves.
- A human on CONFIRM is a named review path, not a hidden edit of the footage.
- Pulse cannot release a pool on CONFIRM, VOID, or HOLD.
Transitions
| From | To | Verb |
|---|---|---|
| open | locked | POST /v1/events/:id/lock |
| open | voided | POST /v1/events/:id/void |
| locked | held | POST /v1/events/:id/hold |
| locked | settled | POST /v1/events/:id/settle |
| locked | voided | POST /v1/events/:id/void |
| held | settled | POST /v1/events/:id/settle |
| held | voided | POST /v1/events/:id/void |
| settled | reversed | POST /v1/events/:id/reverse |
| reversed | terminal · no transitions | |
| voided | terminal · no transitions | |
Fields
| Field | Type | Notes |
|---|---|---|
| event_id | string | Stable id across every mode and state. |
| settlement_id | string | null | Hash-chained ledger id. null until settled. |
| state | EventState | open | locked | held | settled | reversed | voided. |
| type | 'promo' | 'contest' | 'duel' | Mode flag. Same machine for all three. |
| path | 'vod' | 'live' | live: auto-certified titles settle without reviewer_id; uncertified require it. |
| spec | object | title and question the outcome is judged against. |
| stake_ref | string | null | Operator reference. Forbidden on type=promo. |
| model_version | string | Exact model build that produced the call. |
| confidence | number 0–1 | Model score for the outcome. |
| threshold | number 0–1 | settle rejected when confidence < threshold. |
| outcome | yes | no | void | null | null until settled or voided. |
| evidence_uri | uri | Frames, signals and clip window bundle. |
| reviewer_id | string | null | Required for path=live on uncertified titles; null for auto-certified. Required on any human override. |
| partner_id | string | null | Partner identifier. Set by partner on POST /v1/events. |
| notional_minor | integer | Notional in minor units; bps basis on settle. |
| created_at | ISO 8601 | Event creation timestamp. |
| locked_at | ISO 8601 | null | Positions closed timestamp. |
| resolved_at | ISO 8601 | null | Settlement or hold timestamp. |
| updated_at | ISO 8601 | Last state transition timestamp. |