Skip to main content

Signature

Description

Returns whether account is authorized under policyId. Never reverts. The evaluation logic depends on the policy type:
For composite policies (UNION and INTERSECT), evaluation is live — each call reads the current membership of every evaluated child. Short-circuiting applies: UNION stops at the first authorizing child, and INTERSECT stops at the first non-authorizing child. Child order can therefore affect gas cost but never the authorization result. Unknown or never-created policy IDs collapse to empty-member-set semantics:
  • ALLOWLISTfalse
  • BLOCKLISTtrue
  • UNION with no children → false
  • INTERSECT with no children → true
A never-created INTERSECT ID returns true for every account, behaving like ALWAYS_ALLOW. Callers that store policy IDs MUST call policyExists(policyId) before storing them.

Parameters

Returns

Access control

Read-only. No caller restrictions.

Policy interaction

This is part of the singleton PolicyRegistry surface used by B20 policy scopes. A composite policy ID is passed to a B20 policy slot exactly like a simple policy ID; B20 stores policy IDs as an opaque uint64 and calls isAuthorized generically.

Example