H-Series
Build a grant

Delegation

An agent that holds a grant can delegate a BOUNDED subset of its authority to another agent: a sub-grant. The owner opts in once (a delegation policy on the parent), and the holder may then issue sub-grants that only NARROW the parent, never widen it. Every release counts against the parent's rolling cap across the whole sub-tree, so handing out sub-grants can never multiply the spend the owner authorized. Revoking the parent disables the entire sub-tree.

How a sub-grant is issued
  1. Start from a grant you hold whose owner marked it delegable (delegation.maxDepth >= 1).
  2. Narrow it: drop actions/targets, lower caps, shorten the expiry. The sub-grant must stay within the parent on every axis.
  3. Sign it with YOUR wallet (the delegator), not the owner's, and submit. The backend verifies your signature against the parent's grantee and re-checks the bound before anchoring.

The browser helpers in lib/grant/delegation.ts (and the SDK's client.delegateGrant()) build the canonical body, validate it against the parent, sign, and POST /grant/delegate.