The partner API is responsible for aggregating the vault’s backing state. Partners should not rebuild this with ad hoc browser RPC reads.
Core accounting equation
totalAssets =
vaultBufferUSDC
+ strategyEvmUSDC
+ coreSpotUSDC
+ corePerpUSDC
+ hlpEquity
+ bridgeInFlightAssets
- knownLiabilities
Share price is derived from:
sharePrice = totalAssets / totalSupply
Proof buckets
GET /api/v1/vault should be the source for proof and reconciliation display.
| Bucket | Meaning | UI treatment |
|---|
| Vault buffer | USDC currently available for instant exits | Show as liquid buffer |
| Strategy EVM USDC | USDC in the strategy contract on HyperEVM | Count as backing |
| Core spot | Funds routed to Core spot state | Count as strategy backing |
| Core perp | Funds in Core perp state while routing or unwinding | Count as strategy backing |
| HLP equity | Strategy value deployed to HLP | Count as yield-bearing backing |
| Bridge in-flight | Value currently crossing environments | Count only if API marks it tracked |
| Liabilities | Shares or redeem claims outstanding | Show in proof reconciliation |
Reconciliation
Partner apps should display proof as healthy only when the API reports a zero or acceptable reconciliation diff.
const vault = await shlp.getVault();
if (vault.proof.reconciliationDiff.raw !== "0") {
showProofWarning(vault.proof);
}
What to show users
Recommended product page sections:
- sHLP share price
- Total value locked
- Available instant liquidity
- Queued redemption status
- Proof of backing
- User sHLP balance
- User pending and claimable redeems
What not to show
Do not show share price from:
- User wallet balance alone
- Vault USDC buffer alone
- HLP headline TVL alone
- A browser-only collection of RPC reads without freshness metadata
Mature yield products separate headline yield, current liquidity, proof of backing, and user position. Signalite should do the same.