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

# Vault architecture

VaaS is composed of multiple modules.

<table><thead><tr><th width="197.43359375">Module</th><th>Function</th></tr></thead><tbody><tr><td>Vault Contract</td><td>Receives deposits, issues shares or receipts, tracks balances, processes withdrawals, and enforces core vault rules.</td></tr><tr><td>Policy Controller</td><td>Stores configurable parameters such as deposit caps, accepted assets, fee rates, redemption windows, and risk thresholds.</td></tr><tr><td>Security Layer</td><td>Checks permissions, deposit limits, allocation rules, approved strategies, and emergency conditions.</td></tr><tr><td>Strategy Registry</td><td>Defines whitelisted strategies, approved venues, allocation quotas, and strategy-specific limits.</td></tr><tr><td>NAV Oracle</td><td>Publishes validated NAV or share price updates using signer, quorum, and deviation policies.</td></tr><tr><td>Accounting Engine</td><td>Tracks total assets, liabilities, fees, strategy debt, yield accrual, and share pricing.</td></tr><tr><td>Redemption Manager</td><td>Handles withdrawal requests, epoch closures, price locks, liquidity checks, and claim execution.</td></tr><tr><td>Indexing Layer</td><td>Indexes deposits, withdrawals, fees, NAV reports, strategy debt, settlement records, permission changes, and vault events.</td></tr><tr><td>Operations Dashboard</td><td>Displays real-time data feeds, monitoring views, reports, alerts, and vault status for operators and partners.</td></tr></tbody></table>
