Skip to main content
Cobalt is additive-only. It does not change or remove any Beryl selector, event topic, or error selector. Symbols that supersede Beryl symbols are deprecated rather than deleted, so existing integrations remain callable.
Cobalt has not activated yet. The changes below are not callable until Cobalt activates.

B20 Asset: scheduled multiplier updates

The B20 Asset multiplier surface becomes conformant with ERC-8056 and the B20 Asset multiplier migration details: Applications should use the ERC-8056 names and move routine multiplier changes to the scheduled updateUIMultiplier function.

B20 Asset and Stablecoin: seize surface

Cobalt adds seizeWithMemo, an administrative balance-reassignment operation gated by SEIZE_ROLE. It also adds a SEIZE pause vector and two policy slots. burnBlocked is deprecated in favor of seizeWithMemo, but remains callable and unchanged for compatibility. Seize is opt-in per token and has no effect until the issuer sets SEIZE_HOLDER_POLICY. To destroy supply after a seizure, call burn(uint256) separately.

PolicyRegistry: composite policies

PolicyRegistry adds composite policies that combine two to four existing simple policies using an OR (UNION) or AND (INTERSECT) gate. See the composite policy details for the selector mapping and edge cases. Integrators can create and update them with createCompositePolicy and updateComposite instead of duplicating policy logic off-chain. Existing createPolicy and createPolicyWithAccounts integrations do not otherwise change; they only gain a new revert path for the previously unreachable composite policyType.

Full Base Standard changelog

For selector-level details, including exact function selectors, event topics, error codes, and edge-case behavior, see the Base Standard changelog.