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

# 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>](/resources/audits.md).
{% 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. Vaults can also be configured as async-only, permanently disabling synchronous operations.</td><td><a href="/pages/XpIbe420sTzqPeA4TNG3">/pages/XpIbe420sTzqPeA4TNG3</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, vault admin, security council, and access manager.</td><td></td></tr><tr><td><mark style="color:$primary;"><strong>Guardrails</strong></mark></td><td>On-chain price-per-share bounds that constrain how much the valuation can change between updates, managed by the Security Council.</td><td><a href="/pages/fIpdjuoTLkVQ2ASatZGO">/pages/fIpdjuoTLkVQ2ASatZGO</a></td></tr><tr><td><mark style="color:$primary;"><strong>Access Control</strong></mark></td><td>Vaults support whitelist mode, blacklist mode, and external sanctions list integration for flexible, on-chain participation controls.</td><td><a href="/pages/knObGRbccamwdTli0Zl2">/pages/knObGRbccamwdTli0Zl2</a></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 %}

## Lagoon Vault v0.6.0 - Architecture

<figure><img src="/files/vntRT0UTEojoqnfbmCXy" alt=""><figcaption></figcaption></figure>
