How HoodETF works

A HoodETF is a basket of tokenized stocks wrapped in a single tokenized share. This page walks the whole lifecycle — from a creator launching a basket, to investors buying and redeeming — and explains why each step works the way it does.

The one-sentence version

A basket is a smart-contract vault that holds real tokenized stocks and issues its own ERC-20 shares; buying mints shares, redeeming burns them for the underlying, and prices come from the real on-chain holdings — not from a central operator.

1. A creator launches a basket

Anyone can create a basket (see the Create a basket guide):

  • They pick 2–20 constituents from the whitelisted tokens and assign each a weight (basis points summing to 100%).
  • They set the fees (entry, exit, management — all capped).
  • They seed the basket from their own wallet: they deposit the actual constituent tokens, sized from live prices, to back the very first share.

When they deploy, the BasketFactory clones a fresh Basket vault, pulls the seed tokens into it, and initializes it — all in one transaction, so a half-funded basket can never be hijacked. The creator's address is stamped on-chain as the basket's creator, and they receive the initial shares (a tiny DEAD_SHARES amount is permanently locked to protect the vault's math).

Once live, the basket is immutable: its constituents and fees can never change, and there is no admin function that can withdraw someone else's assets.

2. Investors buy in

Buying mints new shares and grows the vault. There are two ways to buy:

  • One-click (zap): you pay a single stablecoin, USDG. The HoodZapRouter swaps your USDG into every constituent through Uniswap v4, deposits them into the basket, and mints shares to you — in one transaction.
  • In-kind: you deposit the underlying tokens directly, in the vault's current ratio, and receive shares. This path is oracle-free and always available.

Either way, the vault now holds more tokens and has issued more shares. Your ownership is simply yourShares / totalSupply of everything inside.

3. The value is always the real holdings

The basket's worth is just the sum of what it holds:

NAV = Σ (amount of each token held × that token's price). Price-per-share = NAV ÷ total shares.

Prices come from Chainlink feeds. Crucially, this valuation is used only for display, one-click pricing, and fee accounting — never to decide whether you can deposit or withdraw. See NAV & price-per-share.

4. Investors redeem or sell

Selling burns shares and shrinks the vault:

  • Redeem in-kind: burn shares, receive your proportional slice of every constituent back. This is permissionless and can never be paused — it's the vault's core promise. It never depends on a price feed.
  • Zap out: burn shares and get USDG back in one transaction (the router redeems in-kind, then swaps everything to USDG).

Because redemption always returns real underlying pro-rata, the shares can't trade far from the value of what's inside — there's a built-in arbitrage: if shares were ever cheap relative to holdings, anyone could buy and redeem for profit.

5. Fees flow to the creator and protocol

The basket charges the fees its creator set. Every fee is split 90% to the creator, 10% to the protocol treasury. The management fee streams continuously as a small dilution over time; entry and exit fees are taken at the moment you buy or sell. See Fee structure and Creator earnings.

Why this design

Choice Why it matters
Real tokens in the vault Holdings are verifiable on-chain at any moment; nothing is synthetic or IOU-based.
Oracle-free mint/redeem Your ability to get your money out never depends on a price feed being live.
Unpausable redemption No one — not even governance — can trap your funds.
Immutable baskets The rules you buy into can't be changed underneath you.
Non-custodial creation Creators deploy from their own wallet and are paid directly; the protocol never holds creator funds.

Where to go next