client.core.authorization.detect(...) returns 'permit' | 'approval' | 'already_approved'. The ERC20.allowance(owner, spender) check shown below only differentiates between 'already_approved' (allowance ≥ amount) and 'approval' (allowance < amount). The 'permit' branch is returned by the SDK only after additional on-chain permit metadata reads succeed (nonces, DOMAIN_SEPARATOR, name, version). Direct-contract callers who only need the approval path can use allowance alone.
Contract Method
allowance(owner, spender)
Returns the amount of tokens the spender is approved to transfer on behalf of the owner.
| Parameter | Type | Description |
|---|---|---|
owner | address | The token holder’s address |
spender | address | The contract authorized to spend |
uint256 — approved amount in the token’s smallest unit
ABI
Usage
| Check | Token contract | Owner | Spender |
|---|---|---|---|
| Deposit token approval | Deposit token (e.g., USDC) | User’s address | vault.communityCodeDepositorModuleId (DistributorCodeDepositor) |
| Account share approval | BoringVault | User’s address | vault.withdrawQueueModuleId (WithdrawQueue) |
approve() first. See the Deposits or Withdrawals guides for the full flow.
Contract addresses are obtained via Account Discovery.