Skip to main content

Intents

An intent is a signed JSON document expressing what a user will accept. Each intent carries:

  • an id (UUID assigned by the caller)
  • a template_id referencing the policy this intent is governed by
  • an attrs object supplying values for the fields declared in the template's intent schema
  • a cryptographic signature over the payload (passkey or operator-held key)

Once signed and submitted to the Guardrail Prover, an intent stays open until one of three terminal states is reached:

  • success — a proposal satisfied the policy and a proof was generated
  • failure — a proposal was evaluated and rejected, or proof generation failed
  • expiry — no proposal was submitted within the intent's TTL (24 hours by default)