Skep documentation
Skep is the index layer for tokenized stocks on Robinhood Chain. It wraps weighted portfolios of tokenized US equities into single ERC-20 tokens: AI-researched, rules-based, non-custodial, and redeemable in-kind at any time.
Skep is pre-launch. Contracts are in development against Robinhood Chain mainnet and have not yet been audited or deployed. Everything below describes intended behavior and may change before release. Nothing here is investment advice.
Core concepts
Baskets
A basket is a standard ERC-20 token backed 1:1 by a fixed, weighted set of underlying stock tokens. Each basket has an immutable rule set defined at creation: its holdings, target weights, rebalance schedule, drift bands, and management fee. The rule set is the entire strategy. There is no manager, no multisig that can swap holdings, and no discretionary control after mint.
Underlying stock tokens
Baskets hold Robinhood stock tokens: tokenized instruments issued by Robinhood that track the performance of US-listed stocks and ETFs. They trade onchain 24/7 and are available in 120+ jurisdictions (not to US persons). They track equity performance but do not confer share ownership or voting rights, and baskets inherit those properties.
The vault
Every basket has its own vault: a minimal contract that holds the underlying tokens and enforces exactly four capabilities: mint, redeem, rebalance (within the locked rules), and collectFees. Vaults have no admin keys, no upgrade path for holdings logic, and no pause function that can block redemptions.
In-kind redemption
Burning basket tokens always returns the underlying stock tokens pro rata. This is the same creation and redemption mechanic that keeps ETF prices honest: if a basket ever trades away from the value of its underlyings on a DEX, arbitrageurs mint or redeem until the gap closes.
Pricing
Basket NAV is computed onchain from Chainlink price feeds for each underlying. Secondary market prices (for baskets LP'd on Uniswap) can deviate from NAV; in-kind redemption bounds that deviation to roughly the cost of arbitrage.
Minting and redeeming
Minting
Redeeming
Two exits, always available:
- In-kind: burn basket tokens, receive the underlying stock tokens pro rata. Never blocked, never queued.
- To single asset: the router redeems in-kind and swaps to USDC (or another asset) in one transaction. Subject to DEX liquidity and slippage.
In-kind redemption is the protocol's core safety property. Whatever happens to routers, front-ends or DEX liquidity, the burn-for-underlyings path is a single contract call with no external dependencies.
Worked example
# Mint 1,000 USDC into bAIINFRA (NAV $10.00 / token)
deposit 1,000.00 USDC
mint fee 0.10% = $1.00
swapped into NVDA 32% / AVGO 22% / TSM 18% / VRT 15% / ANET 13%
received 99.90 bAIINFRA
# Redeem in-kind later (NAV $11.40 / token)
burn 99.90 bAIINFRA = $1,138.86 gross
redeem fee 0.10% = $1.14
received underlying tokens worth $1,137.72
Creating a basket
Anyone can create a basket. The flow is designed so that a thesis becomes a token in minutes, while every parameter that matters is locked before the first external mint.
Basket parameters
| Parameter | Range | Mutable after launch |
|---|---|---|
| Holdings | 3 to 20 stock tokens | No |
| Weights | 2% minimum, 40% maximum per holding | No (restored each rebalance) |
| Rebalance schedule | Monthly or quarterly, first trading day | No |
| Drift band | ±2% to ±10% around target weights | No |
| Management fee | 0.00% to 1.00% per year | Can only be lowered |
| Creator address | Any address | Transferable |
The AI agent proposes; the creator decides; the contract enforces. The agent has no onchain authority of any kind. Its role ends the moment the basket deploys, except for producing fresh memos at each scheduled rebalance for baskets that opt into agent-refreshed weights within their locked constraints.
Research memos
Every basket ships with the research memo that produced it. The full memo is stored on IPFS; its content hash is registered onchain in the MemoRegistry at deployment, making it impossible to quietly rewrite the thesis after the fact. Rebalance-time memos append to the same registry, building a tamper-evident research trail per basket.
Rebalancing
Rebalances are permissionless to execute and impossible to manipulate in scope. On the first trading day of each period, a rebalance window opens. During the window, anyone (typically keepers) can call rebalance(). The contract:
- Reads current weights from Chainlink feeds.
- Skips any holding within its drift band (saves fees, reduces churn).
- Trades the excess back to target weights via Uniswap with TWAP execution to limit price impact and MEV exposure.
- Emits a full before/after report and the new memo hash if weights were agent-refreshed.
Outside the window, rebalance() reverts. There is no path, for anyone, to trade vault assets outside these rules.
Fees
| Fee | Amount | Paid by | Goes to |
|---|---|---|---|
| Mint fee | 0.10% | Minter | Protocol treasury |
| Redeem fee | 0.10% | Redeemer | Protocol treasury |
| Management fee | 0% to 1% / yr | Holders (accrues per block) | 70% creator / 30% protocol |
| Performance fee | None | n/a | n/a |
| Exit penalty / lockup | None | n/a | n/a |
Management fees accrue as a small continuous dilution of basket supply (the standard streaming-fee mechanic), so creators earn from the first block and holders never face a surprise deduction. Creators claim accrued fees at any time.
Architecture
| Contract | Responsibility |
|---|---|
| BasketFactory | Deploys vaults with locked rule sets. The only way a basket comes into existence. |
| BasketVault | One per basket. Holds underlyings; enforces mint, redeem, rebalance, collectFees. |
| BasketToken | Standard ERC-20 share token, minted and burned exclusively by its vault. |
| RebalanceModule | Window logic, drift bands, TWAP execution against Uniswap. |
| MemoRegistry | Append-only registry of research memo hashes per basket. |
| FeeController | Fee accrual and the 70/30 creator/protocol split. |
| Router | Convenience layer: single-asset mint and redeem via Uniswap. Fully bypassable. |
Price data comes from Chainlink feeds on Robinhood Chain. The router and front-end are conveniences; the vault's in-kind paths never depend on them.
Security
- No admin keys on vaults. Holdings logic is immutable per basket. There is no upgrade mechanism that can touch user assets.
- Redemption cannot be paused. No role in the system can block in-kind redemption. This is enforced at the contract level, not by policy.
- Protocol parameters behind a timelock. The few global knobs (mint/redeem fee within a hard 0.25% cap, treasury address) sit behind a 7-day timelock, publicly visible before execution.
- Audits before mainnet. Two independent audits plus a public competition are planned before launch. Reports will be published on this site.
- Invariant: backing is exact. Basket supply times per-token backing equals vault holdings at all times; property-based tests and onchain assertions enforce it.
Compliance and availability
Baskets are deliberately designed as rules-based wrappers rather than discretionary investment products: no one exercises judgment over pooled assets after deployment, holders can always exit in-kind, and every economic rule is fixed and public. We are engaging counsel in relevant jurisdictions and will publish the legal framework before launch.
- Robinhood stock tokens are not available to US persons; the same restriction applies to baskets built on them. Front-end access is geofenced accordingly.
- Availability follows the underlying instruments: 120+ jurisdictions at time of writing.
- Skep is an independent project, not affiliated with, endorsed by, or sponsored by Robinhood Markets, Inc.
Glossary
| Term | Meaning |
|---|---|
| Basket | An ERC-20 backed 1:1 by a rules-locked, weighted set of stock tokens. |
| Stock token | A Robinhood-issued tokenized instrument tracking a US-listed stock or ETF. |
| Vault | The per-basket contract holding underlyings and enforcing the rule set. |
| In-kind redemption | Burning basket tokens for the underlying tokens themselves, pro rata. |
| Drift band | The tolerance around target weights within which a holding is not traded at rebalance. |
| Research memo | The AI agent's full written rationale for a basket's composition, hash-registered onchain. |
| NAV | Net asset value: the oracle-priced value of a basket token's share of vault holdings. |
| Streaming fee | A management fee accruing continuously per block rather than deducted periodically. |
Skep is an independent project and is not affiliated with, endorsed by, or sponsored by Robinhood Markets, Inc. Nothing in these docs constitutes investment advice. Contracts are unaudited and pre-launch; all described behavior is subject to change. © 2026 Skep Labs.