The Basket
Current Composition
The vault currently holds two OP-20 tokens in equal proportion:
| Token | Target Weight | Role |
|---|---|---|
| MOTO | 50% | Basket token 0 — price anchor for NAV calculation |
| PILL | 50% | Basket token 1 |
Weights are measured by USD value, not token count. This is a critical distinction — see Stablecoins & Allocation for a deep explanation of why this matters.
Auto-Rebalance
When you deposit a single token, the vault automatically swaps half of it into the other token via MotoSwap to maintain the 50/50 target. This happens within the same transaction.
Over time, market price movements will cause the two tokens to drift from equal weighting. Once the drift exceeds 100 basis points (1%), anyone can call rebalance() on the vault and earn 10 WRK as a reward.
The vault determines which token is overweight using live price data from the MotoSwap MOTO/PILL pool reserves, then swaps the excess amount to restore balance.
Fixed Mint Rate
HDL tokens are always minted at a fixed rate of 10 MOTO equivalent = 1 HDL, regardless of the current NAV.
This is intentional. As the vault earns yield and NAV rises above 10, early depositors hold HDL that is worth more per token than what they paid. Later depositors receive fewer HDL for the same MOTO amount — because each HDL now represents a larger share of a more valuable vault.
When depositing PILL, the vault first converts your PILL to a MOTO-equivalent value using the live MotoSwap pool price, then applies the 10:1 rate.
Withdrawal
Withdrawal is all-or-nothing in the current contract version. Calling withdraw() burns your entire HDL balance and returns your proportional share of every token in the vault — both MOTO and PILL — in a single Bitcoin transaction.
MOTO out = vault MOTO balance × (your HDL / total HDL supply) PILL out = vault PILL balance × (your HDL / total HDL supply)
If NAV has risen since your deposit, you receive more MOTO-equivalent value than you put in. Partial withdrawals are not supported in v1 — a future contract version will add a withdraw(amount) variant.
HODL Docs