Skip to main content

Token taxonomy

Harbor markets split collateral into a pegged claim and a residual (leveraged) claim. Harbor Yield (mid-term) adds per-pool Compounders and a peg basket (hyTOKEN). Product docs use Levels 1–3; the yield design doc uses 0–2 for the same stack.

ProductDesign docComponent
Level 1Level 0Raw stability pool
Level 2Level 1Compounder (hc…) — ERC-4626
Level 3Level 2HarborYield / hyTOKEN — ERC-7575 share + doors

Name the live tokens first. Keep the yield wrappers in their lane.

Live tokens (integrate these)

TokenRoleTypical interfaceWho mints / burns
haXXX (pegged)Tracks the market peg (ETH, BTC, USD, …)ERC-20; minter-controlled mint/burnMarket minter (and genesis at launch)
hsYYY-XXX (Sail / leveraged)Residual NAV of collateral vs haERC-20; minter-controlled mint/burnMarket minter
Wrapped collateral (e.g. fxSAVE, wstETH)What the minter holds; also hy door assets for pool holdingsUnderlying ERC-20 / 4626-like vaultExternal protocols; Harbor does not mint these
Underlying collateral (e.g. fxUSD, stETH)Unwrap target / zap inputERC-20External

Decimals: treat Harbor ha/hs as 18 decimals unless a market page says otherwise. Always read decimals() on-chain.

ha tokens are not minted 1:1 against collateral alone. Combined ha + hs NAV ≈ deposited collateral (subject to fees). System collateral ratio is collateral value ÷ ha value (rebalance trigger, e.g. ~130%) — see Technical overview.

hsTokens do not earn concentrated collateral yield. Only haTokens deposited in a stability pool (collateral or Sail) do.

Pool and yield wrappers

TokenRoleInterfaceStatus
(live pool position)Compounding ha balance inside SP_v1/v2Not an ERC-20 share — see Stability poolLive mainnet
hpXXX.COLnRebasing stability-pool shareERC-20 shares (SP_v3 design)Pre-prod / not deployed — do not treat as live
hcXXX.COLnCompounder share (one pool)ERC-4626 (asset = haXXX)Pre-prod (harbor-yield)
hyXXXPeg basket shareERC-7575 share (ERC-20); per-asset ERC-7575 doors reuse ERC-4626 mutations without their own share tokenPre-prodhy / ERC-7575

Compounder and HarborYield are siblings over the same pools: HY holds pool positions directly (plus peg-equivalent vaults); it does not wrap Compounder shares.

Naming

  • ha = Harbor Anchored (peg). Shared across collaterals in a peg family (e.g. one haUSD for stETH / PAXG / wBTC / tBTC).
  • hs = Harbor Sail (leverage). Named by collateral and peg (e.g. hsFXUSD-ETH, hsSTETH-USD).
  • App marketId (e.g. eth-fxusd, steth-usd) is the key in harbor-app and on each market page.
  • Integrator JSON / @harbor/sdk use usd-steth for the same haUSD/stETH market as app steth-usd — same addresses, different key spelling.
  • harbor-app follow-up: align app keys to one component order with the integrator book (prefer <index>-<collateral>); see Addresses and ABIs.