# Contracts Overview

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

* [aeravaultv1](https://docs.aera.finance/v1-archive/contracts/aeravaultv1 "mention") – the main vault, pointing to a Withdrawal Validator
* [permissivewithdrawalvalidator](https://docs.aera.finance/v1-archive/contracts/permissivewithdrawalvalidator "mention") – 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.
