---
title: "Role Assignment Module"
path: "/contents/tech/core-concepts/role-assignment-module"
version: "1.0.0"
author: "Hydrate"
createdAt: "2026-05-03T09:53:56.465Z"
updatedAt: "2026-05-03T09:53:56.465Z"
---

# Role Assignment Module

<Infobox>
| Object Module |
| Module |
| `radix-engine (role_assignment module)` |
| [radixdlt-scrypto](https://github.com/radixdlt/radixdlt-scrypto) |
</Infobox>

## Introduction

The **Role Assignment module** attaches role-based [access rules](/contents/tech/core-concepts/access-rules-and-auth-zones) to every object the engine globalizes. Each role (e.g., `minter`, `burner`, `metadata_setter`) is mapped to an access rule — typically a [badge](/contents/tech/core-concepts/badges) requirement or a composite rule combining multiple proofs. Roles can themselves have an updater role, allowing for owner-controlled rotation of permissions. This module is what makes Radix's permission model declarative and inspectable from outside the component.

## External Links

- [role_assignment module](https://github.com/radixdlt/radixdlt-scrypto/tree/main/radix-engine/src/object_modules/role_assignment)

- [Radix Docs: Access Rules & Roles](https://docs.radixdlt.com/docs/access-rules)