Create a basket
Anyone can deploy a basket from their own wallet. You pick the constituents, weights, and fees, seed it with the underlying tokens, and deploy. You become the basket's on-chain creator (the creator recorded in the Basket) and earn 90% of every fee it charges, paid directly to your address.
What you need
- A wallet on Robinhood Chain (4663) with a little ETH for gas.
- The seed tokens in your wallet. A basket must be born holding its constituents — you supply them. The create wizard sizes the exact amount of each token from live prices and checks your balance before letting you deploy.
- Basket creation must be open on the factory (
openCreation = true) — it is enabled on the live deployment.
Rules
- 2 to 20 constituents, each a whitelisted token (see Deployed addresses).
- Weights are in basis points and must sum to 10,000 (100%).
- Fees are capped: entry ≤ 3%, exit ≤ 1%, management ≤ 3%/yr.
- Constituents and fees are immutable after deploy.
Using the create wizard (app.hoodetf.org/create)
- Constituents — pick 2–20 tokens and set each weight; the wizard enforces the 10,000-bps total.
- Fees — set entry / management / exit within the caps.
- Identity — name and ticker symbol.
- Seed — choose a seed size. This is the USD value backing the first share; it becomes the basket's inception price-per-share. The wizard sizes each token amount from live Chainlink prices and flags any token you're short on. If you don't already hold a constituent, you can fund the shortfall with USDG: the app quotes a USDG→token swap (via
POST /v1/swap/quote), buys the missing amount into your wallet, and then the normal create flow pulls the tokens in-kind. Illiquid tokens with no swap venue must still be supplied manually. - Review & deploy — accept the risk attestation and hit deploy. The app:
- reads each constituent's decimals, price feed, your balance and allowance,
- computes the exact seed units and the amount the factory will pull,
- approves each token to the factory for that amount,
- calls
BasketFactory.createBasket(...)from your wallet.
Once confirmed, your basket is live and — after the indexer picks up its BasketCreated event — appears in your creator dashboard and on Discover.
What happens on-chain
createBasket (see BasketFactory) does everything atomically in one transaction: it clones the Basket implementation, pulls your seed tokens into the clone, and initializes it — so there's never a funded-but-uninitialized basket to hijack. Your seed becomes the initial holdings; you receive the initial shares (a small DEAD_SHARES amount is permanently locked to protect the vault).
The seed math (for integrators)
For each constituent, the seed unit is:
seedUnits = seedUsdPerShare × weightBps × 10^tokenDecimals × 10^feedDecimals
────────────────────────────────────────────────────────────────
10000 × feedAnswer
and the factory pulls ceil(seedUnits × (seedShares + DEAD_SHARES) / 1e18) of each token (seedShares = 1e18, DEAD_SHARES = 1e15). This mirrors the on-chain _seedClone exactly, so what you approve equals what the factory transfers.
Earning as a creator
Your basket charges the entry/exit/management fees you set. Every fee is minted or transferred as shares split 90% to you, 10% to the protocol treasury. The management fee streams continuously as new shares. Your creator dashboard shows your baskets and their AUM and returns.
You're responsible for the basket you create. Creators are not licensed advisers, and nothing your basket does is financial advice. See Security & risk.