Introduction
In the Radix ecosystem, a Blueprint is a reusable template — analogous to a class in object-oriented programming — from which Components (on-ledger smart contract instances) are created. One or more Blueprints are bundled into a Package, which is the deployable unit on the Radix network.
This model separates code deployment from instantiation. A developer publishes a Package once, and anyone on the network can then instantiate Components from its Blueprints — each with its own on-ledger address, state, and Vaults holding resources.
Architecture
Blueprints
A Blueprint defines:
- State fields — typed data the Component stores (e.g., a
Vaultfor collected fees, au64counter) - Functions — stateless methods callable without a Component instance (including constructors like
instantiate_*) - Methods — stateful methods that operate on a specific Component instance
- Events — typed events emitted during execution for off-chain indexing
Blueprints can also declare access rules, royalties, and metadata at both the Blueprint and Component level.
Packages
Scrypto source code is compiled into WebAssembly and bundled into a Package. Once published to the ledger, the Package receives a unique on-ledger address (e.g., package_rdx1...). All Blueprints within the Package share the same address namespace.
The Radix network includes several native Packages — system-provided Blueprints for Accounts, Validators, Access Controllers, and Resources — that form the platform's built-in functionality.
Component Lifecycle
- Develop — write Scrypto Blueprints using Rust tooling
- Test — use the Scrypto test framework with the ledger simulator
- Publish — deploy the compiled Package to the Radix ledger via a Transaction Manifest
- Instantiate — call a Blueprint's constructor function to create a Component
- Interact — call the Component's methods via Transaction Manifests
External Links
- Blueprints and Components — Radix Documentation
- Your First Scrypto Project — Radix Documentation
- radixdlt-scrypto — GitHub Repository
Connect your wallet to join the discussion.
