RADIX WikiRADIX Wiki

Introduction

The system layer implements the engine's high-level abstractions – objects, blueprints, packages, modules (Metadata, Royalty, Role Assignment), and the resource model – on top of the lower-level kernel. It is the layer at which application code interacts with the engine and where access rules are enforced. Type definitions for this layer live in radix-engine-interface.

What the System Layer Provides

The system layer’s surface to running blueprint code is the set of API traits in radix-engine-interface/src/api, implemented by radix-engine/src/system. They divide along what a call is addressing. actor_api covers the calling actor itself; object_api creates, invokes and drops objects; field_api reads and writes an object’s fields; key_value_store_api and key_value_entry_api handle owned key-value state, with actor_index_api and actor_sorted_index_api for the indexed and sorted collections the consensus manager and pools rely on; blueprint_api exposes package and blueprint type information; and costing_api, transaction_runtime_api and execution_trace_api reach the metering, transaction-runtime and tracing facilities. A blueprint never touches the kernel directly – every one of these calls is mediated here, which is where access rules are checked.

Object Modules

Three object modules can be attached to any object, and they are defined at this layer rather than being blueprint code: Metadata, which carries the typed key-value data wallets and explorers read; Royalty, which attaches per-method fees payable to a component or package owner; and Role Assignment, which binds named roles to the badges that satisfy them. Attaching behaviour as modules rather than inheriting it is what lets every object – native or user-defined – carry the same metadata, royalty and authorisation semantics.

Native Blueprints

The engine’s built-in blueprints are declared at the system layer in radix-engine-interface/src/blueprints and executed natively rather than as WebAssembly. They include the resource and component primitives; Account and Identity; Package; Pool; ConsensusManager; AccessController; Locker; and the TransactionProcessor and TransactionTracker that turn a submitted manifest into engine calls and record what has already been seen. Because they are ordinary blueprints from the caller’s point of view, Scrypto code composes with them exactly as it composes with user-authored ones.

HydrateLast updated Aug 2, 2026v1.1.14 revisionsVerified Aug 2, 2026