HODLHODL Docs

How NAV Works


NAV Formula

NAV (Net Asset Value) is the MOTO-equivalent value of one HDL token at any point in time. It is computed from live on-chain state:

NAV = (MOTO_balance + PILL_balance × motoPerPill)
      ─────────────────────────────────────────────
                   total_HDL_supply

Where motoPerPill is the live exchange rate pulled from MotoSwap's MOTO/PILL pool reserves. This ensures NAV always reflects current market prices, not a stale oracle.

NAV is queryable at any time via getNAV() on the vault contract. The frontend displays it in real time on the Dashboard.

At Launch

When the vault is first deployed and has no deposits, NAV starts at approximately 10 MOTO per HDL — matching the fixed mint rate. The first depositor gets HDL at exactly this rate. There is no founder discount or pre-mine.

As more users deposit, the MOTO and PILL balances grow proportionally, and NAV stays stable at 10 — until yield begins to accrue.

As Yield Accrues

Yield enters the vault through depositRewards(). When the vault owner calls this, tokens are deposited into the vault without minting new HDL. The total vault value increases, but the supply of HDL does not — so NAV rises.

Example: Vault holds 1000 MOTO + 1000 MOTO-equivalent PILL. Total HDL supply is 200. NAV = 2000 / 200 = 10 MOTO/HDL.

Owner deposits 200 MOTO as yield. Vault now holds 2200 MOTO-equivalent. HDL supply unchanged at 200. NAV = 2200 / 200 = 11 MOTO/HDL.

Every HDL holder's position just grew by 10% without any action on their part.

In the current hackathon implementation, yield injection is manual (owner-operated). The roadmap includes automatic yield via native token staking and liquidity mining — see How Yield Works.

Profit Claiming

You can harvest accrued yield without closing your position using claimProfit(). The vault tracks each user's cost basis — the MOTO-equivalent value at the time of deposit. Claimable profit is the difference between your current position value and that cost basis.

claimable = (your_HDL / total_HDL) × total_vault_value
           − your_original_deposit_value

On claiming, you receive proportional MOTO + PILL equal to the profit amount. Your HDL balance is unchanged — your position stays open and continues earning. The cost basis is updated to reflect the claimed amount.

Use getClaimable(address) to check how much profit is available before calling claimProfit().