Skip to main content
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.
BucketMeaningUI treatment
Vault bufferUSDC currently available for instant exitsShow as liquid buffer
Strategy EVM USDCUSDC in the strategy contract on HyperEVMCount as backing
Core spotFunds routed to Core spot stateCount as strategy backing
Core perpFunds in Core perp state while routing or unwindingCount as strategy backing
HLP equityStrategy value deployed to HLPCount as yield-bearing backing
Bridge in-flightValue currently crossing environmentsCount only if API marks it tracked
LiabilitiesShares or redeem claims outstandingShow 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.