Overview
Radix's asset-oriented programming model uses three core container types:
Vaults
Permanent storage for resources. Every account, component, and dApp stores its assets in vaults. Vaults enforce the conservation law ā tokens can only be moved, never duplicated or destroyed (unless explicitly burned).
Buckets
Temporary containers for moving resources between method calls within a transaction manifest. Buckets must be emptied by the end of a transaction ā they cannot be stored, preventing tokens from being "stuck" in contract state.
Proofs
Non-transferable evidence of resource ownership. Proofs are placed in auth zones to satisfy access rules without moving the underlying asset. This enables badge-gated access patterns.
