NAV Settlement Flow
NAV settlement in King's Vault V2 uses a two-step propose-confirm process. It gives the Admin an opportunity to review a proposed valuation before settlement, but does not by itself guarantee protection against flash-loan manipulation, stale inputs, or compromised privileged accounts. The contracts support conditional performance fee minting. The current Performance Fee for Ethereum Network Lending, AAVE GHO Saving, and Hyperliquidity Provider (HLP) is 0%; fee-share minting is inactive when the configured rate is zero.
sequenceDiagram
participant Keeper
participant Admin
participant Controller
participant Vault
participant Strategy
Keeper->>Controller: proposeValues(vault)
Controller->>Vault: totalSupply()
Controller->>Vault: idleAssets()
Controller->>Strategy: totalAssets()
Controller->>Controller: store pending epoch
Admin->>Controller: confirmValues(vault, epoch)
Controller->>Controller: validate epoch and freshness
Controller->>Controller: promote pending to confirmed
opt profit, manager configured, and feeRate > 0
Controller->>Vault: mintFeeSharesOnlyForController(manager, shares)
end
Propose Values
The Keeper initiates the process by calling proposeValues(vault). The Controller takes a snapshot of the following fields:
| Field | Source |
|---|---|
assets |
totalStrategyAssets(vault) + IVault(vault).idleAssets() |
supply |
IERC20(vault).totalSupply() |
pnlBasis |
activeBookValue + recalledYield |
pnl |
Absolute difference between totalStrategyAssets and pnlBasis |
isProfit |
totalStrategyAssets >= pnlBasis |
The snapshot is only as current and complete as the strategy values it reads. HyperStrategy reports its latest accepted remote state plus relevant local and in-flight balances, not a live cross-chain read. Operators must review state freshness and in-flight transfers before confirming a NAV.
GHO Saving Yield And Valuation
For AAVE GHO Saving, user yield comes from the sGHO base savings rate and is reflected through the sGHO share-to-GHO conversion rate. The rate can change; APY is not fixed.
Strategy accounting remains USDC-denominated and reflects the net USDC recoverable from the underlying position, including applicable estimated Aave/GSM exit costs. Gross GHO value is not treated as immediately withdrawable USDC. King's Vault shares use the same dual-pricing model, so a displayed estimate can differ from the final execution result.
Merit / Merkl rewards are King's Vault protocol income and are excluded from user NAV, APY, and withdrawable value. The Aave/GSM withdrawal costs are separate from the 0% King's Vault Performance Fee.
Confirm Values
The Admin finalizes the settlement by calling confirmValues(vault, epoch).
| Check | Failure |
|---|---|
Proposal is no older than MAX_PROPOSAL_AGE = 1 hours |
ProposalStale(pendingTimestamp, currentTimestamp) |
| Epoch equals latest pending epoch and is greater than confirmed epoch | EpochMismatch(expected, actual) |
Caller has DEFAULT_ADMIN_ROLE |
AccessControl revert |
Performance Fee Shares (Current V2 Portal Rate: 0%)
The Controller supports minting fee shares directly to the manager when the confirmed epoch is profitable, a fee manager is configured, and the fee rate is above 0%. The current V2 portal fee rate is 0%, so no performance fee is charged and no fee shares are minted for the V2 portals documented here.
fee = pnl * feeRate / 1_000_000
shares = supply * fee / (assets - fee)
With feeRate = 0, both fee and shares evaluate to 0.
If the confirmed epoch is a loss (isProfit == false), the Controller reduces the activeBookValue to match the new reality and mints no fee shares.