# Architecture

USD+ is a yield-generating vault token on HyperEVM that allocates stablecoins across multiple lending protocols.

### Core Components

#### User-Facing

* **Depositor**: Accepts USDC/BeatUSD deposits, mints USD+ shares
* **Withdrawal Queue**: Manages queued withdrawals with rate protection, burns USD+ shares

#### Capital Management

* **Deposit Receiver**: Holds idle capital, provides withdrawal liquidity
* **Morpho V2 Orchestrator**: Allocates funds between the two lending markets, handles USDC <> BeatUSD conversions

#### Pricing & Accounting

* **Pricer**: Manages exchange rates between USD+ and underlying assets
* **Exchange Updater**: Calculates NAV from positions across both markets
* **Accountant**: Tracks fees and vault accounting

### Investment Strategy

USD+ deploys capital across multiple lending protocols on HyperEVM to maximize risk-adjusted yield.

#### Morpho Markets (BeatUSD lending)

| Market            | Collateral | Link                                                                                                                              |
| ----------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------- |
| WWHYPE / BeatUSD  | WWHYPE     | [View](https://app.morpho.org/hyperevm/market/0x063ad132f8637cfad29660f8c28a522d63af268bb7bcbbab92c28a28d6b6090e/wwhype-beatusd)  |
| WBEHYPE / BeatUSD | WBEHYPE    | [View](https://app.morpho.org/hyperevm/market/0xda35ec213f5d27609210fd14f148dee5e84bbec87dd79e893df4dca18bf07cac/wbehype-beatusd) |
| WUBTC / BeatUSD   | WUBTC      | [View](https://app.morpho.org/hyperevm/market/0x3614200586f926ce2f712f60ff01270d19cb930369c1f81f3160adf1bdcbcf0d/wubtc-beatusd)   |
| WUETH / BeatUSD   | WUETH      | [View](https://app.morpho.org/hyperevm/market/0x41fc21455f4890fa3d680a5433ab780360f31e6d4a53cdca282a53a3b8cb45d6/wueth-beatusd)   |
| WUSOL / BeatUSD   | WUSOL      | [View](https://app.morpho.org/hyperevm/market/0x520dc6596ad9dc2a5c21bde2f35e38ed48179ee38916e418cc505101a2ceeca5/wusol-beatusd)   |
| WXAUT0 / BeatUSD  | WXAUT0     | [View](https://app.morpho.org/hyperevm/market/0x63c34750ab0b0b204d236f3e103d8477c9737710a065b1a40c8e126ddcd2cbd7/wxaut0-beatusd)  |

#### USDC Lending Protocols

<table><thead><tr><th width="254.79998779296875">Protocol</th><th>Address</th></tr></thead><tbody><tr><td>Hypuur</td><td><code>0x8667f088827a6ae1e2c2a865c675ca4fbc9d2ff0</code></td></tr><tr><td>Hyperlend</td><td><code>0xacBf6aCB842Ed0534ba8eBf06B7C8C9cE7356f9a</code></td></tr><tr><td>Felix Market</td><td><code>0x97395DDA5127ecf7BdBe2Adc1BCC2fb4A5A046FA</code></td></tr></tbody></table>

#### Why multiple markets?

* Diversification across collateral types and protocols reduces concentration risk
* BeatUSD markets earn yield before being lent (double yield layer)
* USDC is deployed across Hypuur, Hyperlend, and Felix for additional yield sources
* Active rebalancing optimizes risk-adjusted returns across all positions

### Access Control

Role-based permissions via MultiRolesAuthority:

* `ALLOCATOR_ROLE`: Deploy funds across markets
* `KEEPER_ROLE`: Update exchange rates
* `SOLVER_ROLE`: Process withdrawals

No single role can access user funds directly.

### Flow Summary

```
Deposit → Deposit Receiver → Orchestrator → Morpho Markets → Yield
Withdraw → Queue (rate-protected) → Solver processes → Assets returned
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hyperbeat.org/liquid-banking/usd+/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
