# Architecture Overview

Lagoon is a full stack vault management infrastructure designed to run investment products with asynchronous subscriptions and redemptions, **powered by ERC 7540**. They are designed to support NAV-based settlement, role-based permissions, and configurable fee logic. This request-then-settle workflow mirrors subscription and redemption cycles used in traditional asset management. When required, Lagoon can also operate in a synchronous mode.

{% hint style="success" %}
Lagoon vaults are built in Solidity, deployed on EVM-compatible chains, and have been audited by three independent auditor firms. You can find the audits [<mark style="color:$primary;">**here**</mark>](https://docs.lagoon.finance/resources/audits).
{% endhint %}

## Key Concepts

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:$primary;"><strong>Asynchronous Request</strong></mark></td><td>Deposits and redemptions are requested first, then settled later at a defined valuation point.</td><td><a href="deposit-and-withdraw-flows">deposit-and-withdraw-flows</a></td></tr><tr><td><mark style="color:$primary;"><strong>Valuation</strong></mark></td><td>NAV inputs are used to price shares at the moment of settlement, not at the moment of request.</td><td></td></tr><tr><td><mark style="color:$primary;"><strong>Settlement</strong></mark></td><td>The curator processes pending requests at a chosen valuation point, ensuring consistent pricing within a cycle.</td><td></td></tr><tr><td><mark style="color:$primary;"><strong>Roles</strong></mark></td><td>Responsibilities are separated between the curator, valuation provider, and vault admin.</td><td></td></tr></tbody></table>

## How It Works <a href="#how" id="how"></a>

Users submit deposit or redemption requests. The curator settles the requests at a defined valuation point. Users claim the resulting assets or shares. This batching ensures consistent pricing within a settlement cycle and reduces operational complexity.

{% stepper %}
{% step %} <mark style="color:$primary;">**Request**</mark>

User submits a deposit or redemption request. The request is queued and does not execute immediately.
{% endstep %}

{% step %} <mark style="color:$primary;">**Valuation**</mark>

The valuation provider submits a new NAV to the vault. The curator reviews and approves it before it can be applied to any pending requests, ensuring no settlement occurs on an unverified valuation.
{% endstep %}

{% step %} <mark style="color:$primary;">**Settle**</mark>

The curator processes all pending requests at a defined NAV valuation point, ensuring consistent pricing within the settlement cycle.
{% endstep %}

{% step %} <mark style="color:$primary;">**Claim**</mark>

User claims their resulting shares (on deposit) or assets (on redemption) after settlement is complete.
{% endstep %}
{% endstepper %}
