Policy Library

ACE ships with a library of pre-built, audited policies that cover the most common compliance and access control patterns. Each policy is a standalone smart contract that plugs into a PolicyEngine and evaluates transactions at runtime.

For guidance on combining policies and understanding execution order, see Policy Ordering & Composition.

Policy summary

PolicyDescription
AllowPolicyMaintains an allowlist. Rejects the transaction if any checked address is not on the list.
BypassPolicyMaintains an allowlist. If all checked addresses are on the list, immediately allows the transaction and skips all remaining policies.
RejectPolicyMaintains a denylist. Rejects the transaction if any checked address is on the list.
OnlyAuthorizedSenderPolicyRejects the transaction if the sender (msg.sender) is not on the authorized list.
RoleBasedAccessControlPolicyMaps roles to function selectors. Rejects if the sender does not hold a role allowed for the called function.
MaxPolicyRejects the transaction if the extracted value exceeds a configured maximum.
VolumePolicyRejects the transaction if the extracted value is below a minimum or above a maximum.
VolumeRatePolicyTracks cumulative volume per account per time period. Rejects if the period's cap would be exceeded.
SecureMintPolicyChecks a Chainlink Proof of Reserve feed. Rejects if minting would push total supply beyond verified reserves.
IntervalPolicyDivides time into repeating slot-based cycles. Rejects if the current slot is outside the allowed window.
PausePolicyGlobal toggle. Rejects every transaction when paused; passes through when unpaused.
CredentialRegistryIdentityValidatorPolicyChecks each address against configured credential requirements. Rejects if any address lacks required credentials.
CertifiedActionDONValidatorPolicyValidates DON-issued permits delivered on-chain via the Keystone Forwarder. Rejects if no valid permit exists.

Get the latest Chainlink content straight to your inbox.