Skip to main content

Signature

IB20.sol

Description

Policy slot consulted against from by seizeWithMemo. An authorized account is seize-exempt. The check is inverted relative to the transfer and mint scopes: seizeWithMemo proceeds only when isAuthorized(policyId, from) returns false. When the slot is unset (0), the always-allow sentinel applies, every account is authorized, and every account is seize-exempt. You must attach a policy before any holder can be seized. The value is keccak256("SEIZE_EXEMPT_POLICY"), 0xedb5da348cfb67af08746d3afd1be81034b50d5c8576f31aff688f39dfd540ed. Before Cobalt this scope was named SEIZE_HOLDER_POLICY; see the seize changelog entry.

Returns

bytes32 policy scope constant. Pass this value to updatePolicy and policyId.

Access Control

View function. No role required.

Policy Interaction

The policy ID stored at this scope is read by seizeWithMemo before moving any balance. The recommended policy type is BLOCKLIST:
  • Accounts in the blocklist have isAuthorized = false, so they are seizable.
  • Accounts not in the blocklist have isAuthorized = true, so they are seize-exempt.
An ALLOWLIST or the ALWAYS_BLOCK sentinel inverts this logic and makes every account seizable. Do not attach either to SEIZE_EXEMPT_POLICY. This scope is independent of TRANSFER_SENDER_POLICY. Blocking a holder from transferring does not make them seizable.

Example

Make one holder seizable