Metadata
| Field | Value |
|---|---|
| Name | agent.grant.issue |
| Category | treasury |
| Required scope | agent:budget:create |
| Idempotency key required | no |
Annotations
| Annotation | Value |
|---|---|
| Title | Issue Grant |
| Read-only | no |
| Destructive | no |
| Idempotent | no |
| Open-world | no |
| Requires human approval | yes (step-up) |
Input schema
Output schema
Request examples
This tool always requires a two-call pattern. The first call (withoutstep_up_sigil) returns -32003 with a step_up_url. After the principal completes biometric approval, the second call supplies the redeemed step_up_sigil and receives the new grant.
Response examples
Step 1 — step-up required (first call without sigil always returns this):Errors
| Code | Name | Cause | Remediation |
|---|---|---|---|
-32600 | Invalid request | Malformed JSON-RPC envelope | Check method, jsonrpc, and id fields |
-32602 | Invalid params | Requested scope not present in current grant (scope escalation); ttl_seconds exceeds 3600; invalid sigil | Validate params; use step-up to acquire broader scope if needed |
-32000 | Unauthenticated | Missing Authorization header | Supply a valid Bearer token |
-32001 | Unauthorized | Grant token expired or revoked | Refresh token via agent.grant.refresh |
-32002 | Insufficient scope | Grant missing agent:budget:create scope | Issue new grant with agent:budget:create scope |
-32003 | Step-up required | First call without step_up_sigil; payload includes step_up_url | Redirect principal to step_up_url, then retry with the returned sigil |
-32603 | Internal error | Server-side error | Retry with backoff; contact support |
Step-up flow
agent.grant.issue unconditionally requires principal biometric approval. Every call without a valid step_up_sigil returns -32003. Here is the full two-call sequence:
Call 1 — trigger step-up
Send the request without step_up_sigil. The server mints a step-up session and returns -32003 with data.step_up_url.
Redirect principal
Open or redirect the principal’s browser to step_up_url. Glide’s step-up sheet prompts the principal to approve the scope + TTL using their registered Privy passkey or biometric. On approval the sheet redirects back to your redirect_uri with a sigil query parameter.
Call 2 — supply the redeemed sigil
Repeat the exact same call (same scope, same ttl_seconds) and include step_up_sigil from the redirect callback. The sigil is single-use; replaying it, or using a sigil minted for a different reason (e.g., rotate_signer), returns -32602 step_up_sigil_invalid.
For more detail on the step-up redirect flow, session lifecycle, and sigil expiry, see Step-up authentication.
Auth
Caller’s grant must include theagent:budget:create scope. Grants whose scope set is a superset of the required scope are accepted.