uint64 policy ID that points to a policy in the singleton PolicyRegistry. The token only checks the policy assigned to the relevant scope.

PolicyRegistry.isAuthorized(policyId, account), and reverts with PolicyForbids or a seize-specific error when the policy result does not permit the action.
Policy scopes
approve and permit are not policy-gated. Only balance movement is checked.
Policy types
Composite policies combine existing simple
ALLOWLIST and BLOCKLIST policies. Child policies must be simple policies, not other composites or built-ins.
Built-ins and ID anatomy
Policy IDs areuint64 values. The top byte is the PolicyType; the low 56 bits are a global counter. Counters 0 and 1 are reserved for built-ins, and custom policy creation starts at counter 2.
Registry administration
Each policy has one admin. The current admin can:- Update allowlist, blocklist, or composite membership.
- Stage a two-step admin transfer with
stageUpdateAdmin. - Permanently renounce policy administration with
renounceAdmin.