> Aztec.nr API reference, v6.0.0 (mainnet and testnet). Index: https://docs.aztec.network/aztec-nr-api/v6.0.0/llms.txt

# Module storage

Module: `noir_aztec::macros::storage`

## Functions

- [storage](/aztec-nr-api/v6.0.0/noir_aztec/macros/storage/fn.storage.md): Declares the contract's storage.
- [storage_no_init](/aztec-nr-api/v6.0.0/noir_aztec/macros/storage/fn.storage_no_init.md): Same as `storage`, except the user is in charge of providing an implementation of the `init` constructor function with signature `fn init<Context>(context: Context) -> Self`, which allows for manual control of storage slot allocation. Similarly, no `StorageLayout` struct will be created.

## Globals

- [STORAGE_LAYOUT_NAME](/aztec-nr-api/v6.0.0/noir_aztec/macros/storage/global.STORAGE_LAYOUT_NAME.md): Stores a map from a module to the name of the struct that describes its storage layout. This is then used when generating a `storage_layout()` getter on the contract struct.
