HODLHODL Docs

The Basket


Current Composition

The vault currently holds two OP-20 tokens in equal proportion:

TokenTarget WeightRole
MOTO50%Basket token 0 — price anchor for NAV calculation
PILL50%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.

There is no cooldown on rebalancing. As long as the drift threshold is met, any wallet can call rebalance and earn the reward — every block if necessary.

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.

Example: At launch, 100 MOTO mints 10 HDL (NAV = 10). After yield accrues and NAV rises to 15, 100 MOTO still mints 10 HDL — but each of those HDL tokens is already worth 15 MOTO on redemption the moment it is minted.

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.