---
title: "Buckets, Proofs & Vaults"
url: "https://radix.wiki/contents/tech/core-concepts/buckets-proofs-and-vaults"
version: "1.3.2"
updated: 2026-06-30
license: CC-BY-4.0
license_url: "https://creativecommons.org/licenses/by/4.0/"
---

# Buckets, Proofs & Vaults

|  |  |
| --- | --- |
| **Vault** | Permanent storage container for resources |
| **Bucket** | Temporary container for moving resources between calls |
| **Proof** | Zero-cost ownership evidence (doesn't move the resource) |

## Overview

Radix's [asset-oriented programming](/contents/tech/core-concepts/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](https://docs.radixdlt.com/docs/resources)

Temporary containers for moving resources between method calls within a [transaction manifest](/contents/tech/core-protocols/transaction-manifests). [Buckets](https://docs.radixdlt.com/docs/buckets-and-vaults) must be emptied by the end of a transaction – they cannot be stored, preventing tokens from being "stuck" in contract state.

### [Proofs](https://docs.radixdlt.com/docs/auth)

Non-transferable evidence of resource ownership. Proofs are placed in [auth zones](/contents/tech/core-concepts/access-rules-and-auth-zones) to satisfy [access rules](https://docs.radixdlt.com/docs/auth) without moving the underlying asset. This enables badge-gated access patterns.
