> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-add-b20-spec.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IB20.setRoleAdmin

> Generated B20 reference for setRoleAdmin(bytes32,bytes32).

[Related concept](/base-chain/specs/upgrades/beryl/b20/specification/concepts/roles-and-access-control)

## Signature

```solidity theme={null}
function setRoleAdmin(bytes32 role, bytes32 newAdminRole) external;
```

| Field               | Value                           |
| ------------------- | ------------------------------- |
| Selector            | `0x1e4e0091`                    |
| Canonical signature | `setRoleAdmin(bytes32,bytes32)` |

## Description

Sets the admin role for `role`. Emits `RoleAdminChanged`.
Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold the current admin role for `role`,
or when the token has been transitioned to admin-less via `renounceLastAdmin`.
Param: role         Role whose admin is being updated.
Param: newAdminRole New admin role.

## Access control

Uses the B20 access-control role graph. Factory initCalls bypass role gates during creation.

## Policy interaction

No direct policy interaction.

## Example

```solidity theme={null}
IB20(target).setRoleAdmin(arg0, arg1);
```

## Related

* [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20)
* [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses)
