agent-identity) does not include permissions.
Verifier ID: agent-delegation
controllerWallet is the approving account — the address that signs this step. See Agent concepts.
Setup
Create
neus_agent_create. Leave out controllerWallet when the signed-in profile account should approve.SDK
App link
One-time user approval so your backend can create proofs without asking them to sign every request. This is not the same as publishing a gate in Hub (billing for hosted checks). See Integrations.- User signs in on NEUS
- User approves delegation once
- Your app stores the
qHash - Your backend calls verification with
x-neus-app— no per-request signature
app:<appId>— matches yourx-neus-appheaderorigin:<url>— restrict to your domainorigin:*— any origin
x-neus-app: your-app-id and Origin: https://yourapp.com on verification requests.
Payment delegation
maxSpend is a whole-number string in token base units. For USDC (6 decimals), 25 USDC = "25000000". Use toAgentDelegationMaxSpend('25', 6) from @neus/sdk.
Fields
| Field | Required | Description |
|---|---|---|
controllerWallet | Yes | Approving account (must match signer) |
agentWallet | Yes | Agent address |
agentId | No | Linked identity id |
scope | No | Permission scope (default: global) |
permissions | No | Allowed actions |
maxSpend | No | Spend cap in token base units |
allowedPaymentTypes | No | Payment rails (e.g. x402) |
receiptDisclosure | No | summary, full, or none |
expiresAt | No | Expiration (Unix ms) |
instructions | No | Policy text (16000 chars) |
skills | No | Up to 48 skill objects |
agent-delegation.json.
Result
AqHash you can check before delegated actions. Use neus_agent_link or neus_proofs_check.
Revoke
expiresAt and maxSpend when money or high-risk actions are in scope.