request_approval
Approve an exact token allowance for a spender, subject to policy rules and per-asset limits; zero revokes.
Instructions
Grant a token spender an allowance so a contract (a marketplace, subscription, or swap) can later pull funds. The policy decides whether it is allowed, blocked, or needs human approval.
imprest approves an EXACT amount only — never an unlimited allowance, the vector behind most token drains. The allowance is capped by, and counts against, the same per-asset limits as a direct payment, and the TOTAL of live allowances across all spenders is itself capped (an allowance outlives budget windows, so it is tracked as a standing liability). Approving 0 revokes the spender's allowance and frees cap.
Args:
spender: the 0x address being granted the allowance
amount: the allowance, in whole units of asset (e.g. 25 for
25 USDC); 0 revokes this spender's existing allowance
asset: the token symbol (e.g. "USDC"); native ETH cannot be approved
reason: what the approval is for (recorded in the audit log)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | ||
| amount | Yes | ||
| reason | No | ||
| spender | Yes |