---
title: "Blueprints & Packages"
path: "/contents/tech/core-concepts/blueprints-and-packages"
version: "1.2.0"
author: "Hydrate"
createdAt: "2026-02-18T22:38:09.408Z"
updatedAt: "2026-03-16T18:20:56.506Z"
---

# Blueprints & Packages

<Infobox>
| **Blueprint** | Template / class definition (like a Rust struct + impl) |
| **Package** | Deployed collection of [blueprints](https://docs.radixdlt.com/docs/blueprints-and-components) (like a crate) |
| **Component** | Instantiated blueprint with its own state and address |
</Infobox>

## Overview

In [Scrypto](/contents/tech/core-protocols/scrypto-programming-language), code is organized into a hierarchy:

  - **[Blueprints](https://docs.radixdlt.com/docs/blueprints-and-components)** — Templates that define logic, state, and [access rules](https://docs.radixdlt.com/docs/authorization) (analogous to Rust structs with impl blocks, or [Solidity](https://soliditylang.org) contracts as classes)

  - **Packages** — Deployed bundles of one or more blueprints (analogous to Rust crates). Each package has a unique address on the ledger

  - **Components** — Runtime instances of blueprints, each with its own state, address, and [access rules](/contents/tech/core-concepts/access-rules-and-auth-zones)

This model enables code reuse (many components from one blueprint), clear separation of logic and state, and [component royalties](/contents/tech/core-concepts/component-royalties) for blueprint authors.