Standing grants
Pre-approved envelopes that silently satisfy a class of intents. Real attack surface — review the screen weekly.
Some grants are durable. "This agent can always read my Linear issues" shouldn't require a passkey every session. On the approve page, choose Standing instead of Session. The envelope is created with no expiry; only explicit revocation kills it.
When to use a standing grant
- A read-only triage agent that runs every hour.
- A long-running notification listener that posts to one Slack channel.
- A nightly batch job that always touches the same buckets.
When NOT to use one
- Anything write or delete. Step-up every time is the right friction.
- One-off operations. Use session approval, let it expire.
- Anything that touches money. Stripe, refunds, anything billing-adjacent should step-up every call.
Create one
- 1Trigger step-up
Run the agent's action. Cedar denies, step-up envelope opens, you get the push.
- 2Open the approve page
Tap the deep link. You see agent + action + resource + purpose.
- 3Choose Standing + scope
Switch the toggle to Standing. Pick scope:
- This intent exactly — narrowest. Only the agent + action + resource as-is.
- This agent + this resource — broader. Any action by this agent on this resource.
- Custom Cedar fragment — paste a fragment. Lets you write
resource.repo in ["app","infra"]for example.

Standing grants always require a passkey at create time. Afterward, silent mints. - 4Sign with passkey + save
The passkey signature anchors the grant. Revocation later requires the same org-level admin role; agents can't self-revoke.
Manage them
Standing grants shows every active grant: agent, scope, created-by, created-at, last-used. Click for the full Cedar fragment + recent receipts using it.

Revoke
Click a grant → Revoke. The push channel notifies all PDPs within 5 seconds — any in-flight UCANs minted under that envelope are rejected on next use. The audit chain records the revocation.
Standing grants are a real attack surface.
Nomos always requires step-up + passkey to create one, but afterward it silently mints UCANs in their scope. Treat the standing-grants page like an AWS IAM role inventory — review the list, kill stale entries.