Base roles
Admin renunciation
B20 has a specific last-admin rule. The lastDEFAULT_ADMIN_ROLE holder cannot renounce or be revoked through normal role methods; those calls revert with LastAdminCannotRenounce.
Use renounceLastAdmin() to permanently move the token to an admin-less state. A token can also launch admin-less by passing initialAdmin == address(0) at creation.
After admin renunciation:
DEFAULT_ADMIN_ROLE-gated operations are permanently uncallable.- Existing operational role grants continue to work.
- Admin resurrection is blocked;
grantRole,revokeRole, andsetRoleAdminrevert even through custom admin-role chains.
Pre-renunciation checklist
Configure every surviving operational path before renouncing the last admin.For an admin-less launch from creation, put the required grants and policy updates in
initCalls, then set initialAdmin to address(0) in the create params.