How the desk works.
Helm is a deterministic simulation of an autonomous fund. Real asset data comes off Robinhood Chain; a fixed set of rules turns that data into a book and rebalances it every cycle. This page documents those rules exactly, with the numbers the engine actually uses.
Overview
Helm operates a paper desk of tokenized private-market assets: pre-IPO equity, treasuries, private credit, real estate and private funds. It never holds custody of capital and never places a live order. Every fill is simulated.
What is real is the data. Asset prices, liquidity and 24-hour moves are read from Robinhood Chain and overlaid onto the investable set, so any name the chain actually lists is verifiable in the explorer. The rest of the desk is deterministic math: the same inputs always produce the same book, which is why a refresh reproduces the exact state you left.
The investment loop
One cycle is a single pass through six agents. Each owns one decision and hands off to the next. The loop is continuous: Steward closes a cycle and Scout opens the next.
A cycle is seeded by the mandate and the cycle index, so the whole run is reproducible. Sentinel sits in the middle as a hard gate: nothing reaches Executor until risk clears, then Steward hands back to Scout for the next cycle.
The six agents
- 01 · Scout
- Sweeps the universe and applies the sourcing gate: liquidity, a valid contract and a known category.
- 02 · Analyst
- Scores every survivor into a single 0–100 conviction number across five factors.
- 03 · Architect
- Turns conviction into weights, caps single-name risk and enforces the mandate's real-world floor.
- 04 · Sentinel
- An independent circuit-breaker on concentration, weighted volatility and value-at-risk. Can halt the desk.
- 05 · Executor
- Diffs the target book against the standing one and routes the deltas through the paper engine.
- 06 · Steward
- Marks the book to market, recomputes NAV, drift and risk-adjusted return, then hands back to Scout.
Conviction scoring
Analyst normalizes five factors to a 0–100 scale across the eligible set, then blends them. Weights shift by mandate; the growth weight and thesis boost below are mandate parameters.
growth = normalized revenue growth (or yield for RWA)
quality = 0.6 · liquidity + 0.4 · custodian trust
momentum = normalized 24h change, clamped to ±50
liquidity = normalized pool liquidity
thesisFit = 100 if category in mandate thesis else 40
conviction = growth·growthW
+ quality·0.20
+ momentum·0.15
+ liquidity·0.15
+ thesisFit·0.15·thesisBoost (clamped 0–100)Custodian trust is a fixed score by custodian: institutional names such as BitGo and Chainlink Proof-of-Reserve rank highest. The exact blend, from the engine:
const conviction = clamp(Math.round( growth * cfg.growthW + quality * 0.20 + momentum * 0.15 + liquidity * 0.15 + thesisFit * 0.15 * cfg.thesisBoost ), 0, 100);
Portfolio construction
Architect takes the top names by conviction and sizes them inversely to volatility, so two names with equal conviction but different risk do not get equal weight.
weight ∝ conviction / (1 + volatility · 1.5) then: cap each name at 20% of the book rwa floor raise real-world weight to the mandate minimum normalize weights sum to 100%
The real-world floor guarantees a minimum allocation to treasuries, private credit and real estate regardless of how strong the growth names score. If no real-world name makes the cut, the highest-scoring one is pulled into the book to satisfy it.
The risk engine
Sentinel evaluates the target book before a single order is placed. It is independent of the return objective: its only job is to refuse books that are too concentrated or too volatile.
HHI = Σ wᵢ² concentration wVol = Σ (wᵢ · volatilityᵢ) weighted volatility VaR₉₅ = 1.65 · wVol / √252 1-day 95% value-at-risk topPos = max(wᵢ) largest single position APPROVE only if: HHI < 0.25 AND wVol < 0.55 AND VaR₉₅ < 0.08 AND topPos < 0.25
HALTED. Executor places zero orders, the standing book is held flat, and the breach is written to the reasoning stream. The desk would rather do nothing than carry a book it cannot justify.The same discipline is enforced on-chain in the real vault: the manager can only swap within a whitelist, under a slippage cap priced off a TWAP oracle, and funds never leave the contract.
function rebalance(address tokenIn, address tokenOut, uint256 amountIn, uint256 minOut, uint24 fee)
external onlyRole(MANAGER_ROLE) whenNotPaused nonReentrant returns (uint256 amountOut)
{
require(tokenIn == asset() || assetWhitelist[tokenIn], "tokenIn !whitelist");
require(tokenOut == asset() || assetWhitelist[tokenOut], "tokenOut !whitelist");
uint256 fairOut = oracle.expectedOut(tokenIn, tokenOut, amountIn);
require(minOut >= fairOut.mulDiv(BPS - maxSlippageBps, BPS), "minOut too low");
_accrueTurnover(oracle.valueInUsdg(tokenIn, amountIn));
// recipient is hard-coded to address(this): funds stay in the vault
}NAV, benchmark & metrics
Steward marks each holding to market every cycle. A holding's return blends a dampened momentum drift, a shared market move across the whole book, and vol-scaled idiosyncratic noise, so cycles can go down as well as up.
- NAV
- Sum of holding values after the cycle's marks.
- Benchmark
- An equal-weight basket of the same names. Alpha is measured against it.
- Total return
- NAV versus the starting book.
- Alpha
- Total return minus benchmark return.
- Sharpe
- Mean cycle return over its standard deviation, annualized by
√252. - Max drawdown
- Largest peak-to-trough fall in NAV across the run.
Mandates
Three mandates share the same engine but different parameters. The mandate sets the thesis categories, the real-world floor, the maximum number of names and how heavily growth is weighted.
| Mandate | RWA floor | Max names | Growth weight |
|---|---|---|---|
| AI Frontier Growth | 10% | 8 | 0.35 |
| Balanced Private Markets | 25% | 9 | 0.25 |
| Real-World Income | 55% | 8 | 0.10 |
Universe & data
The investable set is a curated list of tokenized private-market names. On load, live market data is fetched and overlaid so any name the chain lists shows its real price, liquidity, 24-hour move and logo. The universe grid labels how many names are live on-chain versus simulated.
- Chain
- Robinhood Chain · Arbitrum Orbit L2, chain id 4663, gas paid in ETH.
- Explorer
- Blockscout API v2 for token metadata and holder counts.
- Market data
- Dexscreener for price, liquidity, 24h change and logos on the
robinhoodchain id. - Settlement
- USDG (Global Dollar) and WETH as the on-chain settlement assets.
- Sourcing gate
- Minimum
$20,000pool liquidity, a valid contract and a known category.
Token & access
$HELM is the key to the desk. Holding it unlocks control; without it the flagship desk is read-only. Access is read straight from the chain by balance.
- Tier 0
- No holding. Read-only view of the flagship desk.
- Tier 1
- Any holding. Run cycles and see the full history.
- Tier 2
- At least 0.1% of supply. Strategy Lab: custom weights and limits.
Paper mode
Every fill on the desk is deterministic and simulated. No capital is at risk, no custody is taken and no live order is ever routed. The trading MCP endpoint is shown as the venue the desk would route to, not one it trades on.
