> For the complete documentation index, see [llms.txt](https://docs.aera.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aera.finance/v1-archive/contracts/contracts-overview.md).

# Contracts Overview

An Aera vault can be deployed by deploying the following two contracts:

* [AeraVaultV1](/v1-archive/contracts/aeravaultv1.md) – the main vault, pointing to a Withdrawal Validator
* [PermissiveWithdrawalValidator](/v1-archive/contracts/permissivewithdrawalvalidator.md) – a permissive withdrawal validator contract that allows withdrawals of an arbitrary size

### Deployment Flow

An Aera Vault can be deployed by following the below steps:

* Deploy a withdrawal validator contract that inherits from a `IWithdrawalValidator` interface&#x20;
* Deploy the Aera Vault with a given selection of tokens
* Make an initial deposit by approving token amounts and calling `initialDeposit`. This step is essential as it helps establish an initial spot price for the underlying Balancer pool.
