# Strategy Allocation

<figure><img src="https://1175432632-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7NERu1lHhvKOUF7s3btM%2Fuploads%2F3HL7dTTv9V55JkALOYs8%2Fstrategyallocation.png?alt=media&#x26;token=94fbbdbc-adc4-497b-8c56-07a794d9f236" alt=""><figcaption></figcaption></figure>

### Strategy Allocation Flow

This diagram describes how deposited SOM is allocated from the **InsomniaVault** into strategies through the **StrategyRouter**. The process ensures that user funds are distributed across strategies according to governance-defined weights.

#### Step-by-Step Process

1. **Push to Router**
   * A Keeper calls `pushToRouter(amount)` on the **InsomniaVault**, signaling that a portion of idle SOM should be moved into strategies.
2. **Transfer SOM**
   * The vault transfers the specified SOM amount to the **StrategyRouter** for allocation.
3. **Allocate Trigger**
   * The Keeper (or governance) calls `allocate()` to initiate fund distribution.
4. **Router Allocation**
   * The **StrategyRouter** begins the allocation process, preparing to distribute funds to each registered strategy adapter.
5. **Distribute by Weight**
   * For each strategy adapter, the router calls `depositNative{value: portion}` based on the weight (in basis points) assigned to that strategy.
6. **Adapter Management**
   * Each strategy adapter (e.g., **SimpleHoldingAdapter**) receives its allocated portion of SOM and manages it according to its strategy.
   * In the case of the SimpleHoldingAdapter, the tokens are securely held without further deployment.
7. **Emit Allocation Event**
   * The StrategyRouter emits an `Allocated` event, recording the distribution of funds for transparency and monitoring.

#### Key Notes

* **Governance-Defined Weights**: Allocation proportions are determined by governance and can be adjusted dynamically.
* **Keepers’ Role**: Trusted operators (keepers) execute allocation calls to keep vault funds productively deployed.
* **Extensibility**: New adapters can be added, and the router will automatically allocate to them once assigned weights.
* **Idle Funds**: Until pushed to the router, user deposits remain safely in the vault.
