Concepts
Intent
An Intent is the authorised operational objective and constraints for a specific action or workflow. Permission says what a credential can reach. Intent says what this actor is authorised to do, within what bounds, for how long.
ECZ-ID Intent is live and sold through TrustOps. Intents are created and authorised in the TrustOps Dashboard. There is no public developer API for Intents, and the public Intent disclosure is not enabled.
ECZ-ID Intent today · measured 2026-10-10
- Commercial capability
- Available through TrustOpsPlans are sold in TrustOps.
- Signed-in operation
- LiveCreated and authorised by the account holder, signed in, in the TrustOps Dashboard.
- Public developer interface
- NoneThere is no public developer API. Public Intent disclosure is defined in Core and not enabled.
Accountability Chain:Intent
Permission is not Intent
Permission (your access system)
- The agent’s token carries
payments:write - It can pay anyone, any amount, at any time
- It says what the credential can reach
- It cannot tell a legitimate payment from a mistaken one
Intent (ECZ-ID)
- Pay supplier invoices from the approved list
- Up to £500 each and £5,000 in total, in GBP
- This week only, with no card data
- Anything above £250 is held for approval
Permission is necessary and never sufficient. An action can be fully permitted and still outside what anyone authorised. An Intent states the objective and its bounds so that a proposed action can be checked against them before it has a consequence.
What an Intent carries
| Element | Where it lives in the Core contract |
|---|---|
| Actor | actor: the child ECZ-ID and family of the machine that will act |
| Principal and operator | parent_ecz_id, and authorisation.principal_ref with its role |
| Objective | objective_summary, with an optional purpose_version |
| Targets | targets: up to 32 ECZ-IDs the actor may act on |
| Actions, resources, destinations | constraints.actions, constraints.resources and constraints.destinations, each a permitted and an excluded pattern set |
| Parameters | constraints.parameters: path, operator and value rules |
| Value | constraints.financial: currency, maximum per action, maximum in total |
| Data | constraints.data_classes_denied |
| Approval | constraints.approval: actions that need approval, and an amount above which approval is required |
| Rate | constraints.rate: maximum actions per window |
| Counterparty | constraints.counterparty: the counterparty ECZ-ID, required bindings, maximum proof age and what to do on change |
| Duration | window.not_before and window.expires_at |
| Authority | authorisation |
| Delegation | delegation, parent_intent and authorisation.chain |
| Disclosure | publication.published; the public disclosure is digest-only |
| Timestamps and history | created_at, updated_at and delta[], one entry per change |
Some elements belong to the moment of action, not to the Intent. A nonce, an idempotency key and a correlation ID describe one request, so they travel with the proposed action, not with the standing authorisation. See carrying Intent.
Only an active Intent is in force
An Intent moves through DRAFT, APPROVAL_REQUIRED, AUTHORISED, ACTIVE, COMPLETED, EXPIRED, REVOKED and SUPERSEDED. Only ACTIVE is in force. Holding an Intent identifier authorises nothing by itself, and a sandbox Intent never authorises a production action.
Related
This page is explanation, not authority. Current state is only ever the live Resolver record. Live facts on this page were measured read-only on 2026-10-10.
