Preview Tickets and Mandates

Preview tickets are the consent boundary before a Relay run can become a locked or active mandate.

2 min read

Relay separates drafting from authority. A run can be useful as a draft or template, but it does not become executable until the preview and confirmation boundary is crossed.

Preview tickets

A preview ticket evaluates the current run against:

  • Current account state.
  • Current market state.
  • Risk checks and blockers.
  • Runtime support for the requested behavior.
  • Expiry and freshness.

A ticket can show what will happen, what could block the run, and what account impact is expected. It expires, and stale data should block confirmation until refreshed.

Confirmation boundary

Confirmation locks execution-critical values. If the user changes size, asset, trigger, runtime guard, or limits after preview, Relay needs a new preview.

Chat text cannot replace this boundary. The consent object is the preview ticket, not an assistant response.

Draft mandate

A draft mandate is a confirmed candidate that is not active yet. It has locked values and can be reviewed against the same object model, but it does not have live execution authority.

Draft mandates are useful when a run has been approved but is waiting on account, timing, or activation conditions.

Active mandate

An active mandate is the live authority object. It is worker-evaluated, bounded, revocable, and auditable.

Active mandates should expose:

  • Current state.
  • Remaining bounds.
  • Runtime blockers.
  • Pause and revoke actions.
  • Receipts and audit trail.
  • Expiry or completion conditions.

Failure states

Relay should fail closed when a run is unsupported, expired, stale, unsafe, or blocked by account state. A blocked ticket should explain the blocker and the most direct recovery path.