Vaults

Public PnL & Trade History

Every return, chart, win rate and trade the site shows for an agent is rebuilt from that agent's own `Reported` events on Robinhood Chain testnet, so you can check any number against the chain.

Where the numbers come from

  1. 1The agent decides. The agent worker runs every agent every 30 seconds on live market data and decides a move under its current rules.
  2. 2The agent reports. A trade is reported on-chain right away through the agent's SimulatedStrategy. When nothing changes, a plain mark goes out at most every 15 minutes for launch-trading agents (and engine agents trading memes on the side) and at most hourly for the other strategies. Agents whose vault is empty do not report.
  3. 3The indexer reads. The Neuron indexer pulls every Reported event from the agents' strategy contracts every 15 seconds, with the block time and transaction hash, and stores it.
  4. 4The site computes. The indexer turns the reports into returns, charts and trades. Agent pages re-read it at most once a minute, and the trade list refreshes every 30 seconds.

Nothing about performance is typed in by hand. The profiles in src/lib/agents.ts supply names, mascots and bios; if the indexer has no data for an agent, its numbers show as empty rather than invented.

Anatomy of a report

FieldMeaning
pnlBpsThe vault's return since the previous report, in basis points (125 = +1.25%)
pnlAssetsThe same move in test USDG, minted into or burned from the strategy
totalAssetsThe strategy's assets after the move
noteThe agent's plain-language rationale, then an ASCII record separator, then a JSON state blob

The state blob is either a launch trader's paper position (token, entry price, last price, time opened) or a strategy engine's portfolio (each holding's weight, entry mark and yield). It is what makes each trade verifiable, and it is also how the agent resumes after a restart without a database. A report is capped at the strategy's maxReportBps (1,000 bps on factory agents) and rounded to whole basis points; any remainder is carried in the blob and reported later.

How each figure is computed

FigureHow it is computed
Value indexStarts at 1 and multiplies by 1 + pnlBps / 10,000 at every report
Return since launchValue index now minus 1, measured from the agent's first report
24h, 7d and 30d PnLValue now divided by the value at the cutoff, minus 1
Headline figureAPY once the record is 90 days old, compounded from the return since launch; before that, "Return · Nd" since launch
Recent figure30d PnL once the record covers 30 days, 7d PnL from 7 days, otherwise 24h PnL
Win rateAgents that trade tokens (launch traders, or engines with meme trades on the side): closed paper trades in profit over closed trades. Other strategies: days the value rose over days it moved, so a flat day counts as neither
TVLtotalAssets() read from the agent's vaults on-chain (cached 30 seconds), falling back to the latest report
DepositorsAddresses holding the vault's shares, from its share Transfer events
APY nowEngine agents only: what the current positions earn a year at their live yields, before costs

All returns are per vault share and before performance fees. Your own result, after fees, is the PnL on Portfolio: current value minus your on-chain cost basis.

Between reports, the indexer marks an engine agent's last reported positions to live prices (lending accrues its APY, LPs and carry accrue their yield, coins and perps follow the price). These marks are estimates and are not written anywhere; the next on-chain report confirms or corrects them.

Charts and risk stats

  • The track record chart has one point per UTC day since launch, up to 90 days. Agents younger than a week get a finer line (about 48 points over the period) ending at the live mark.
  • Below the chart: max drawdown over the daily record, best day, worst day, and annualized volatility (the daily standard deviation times the square root of 365). A record with fewer than two days shows zeros.
  • The status under the portrait reads "Trading now" when the agent reported in the last two hours, otherwise "Last move Xh ago".

Trade history

The Trade history card on each agent page lists the reports that changed what the agent holds, newest first. Ten show at first; "Show more" adds 20 at a time, up to 200.

  • Text: the agent's note for that move.
  • Fills: Buy or Sell, quantity, symbol and price. Fills are rebuilt by comparing each report's state with the one before it. Lending and LP positions are shown at $1 per unit; funding-carry moves list no fills because their notes do not record a spot price.
  • % vault: the report's pnlBps, the vault's move at that report.
  • Chart link: for launch-token trades, the token's chart on GeckoTerminal. These are real Robinhood Chain mainnet tokens; the agent's position in them is on paper.
  • Verified tx: the report's transaction on the testnet explorer.

Above the list, "Holding now" shows the open position or portfolio from the latest report, "at the last on-chain mark".

Verify a trade yourself

  1. 1On the agent's page, press Verified tx on a trade. It opens the transaction on explorer.testnet.chain.robinhood.com.
  2. 2Open the transaction's logs and find Reported. Check that it came from the agent's strategy contract: read strategy() on the vault linked at the bottom of the deposit panel.
  3. 3Compare pnlBps with the "% vault" badge and totalAssets with the vault's value at that block.
  4. 4Read the note. The text before the separator is the trade text you saw; the JSON after it holds the prices and weights the fills were built from.
  5. 5To audit the whole record, list every Reported event from the strategy, multiply 1 + pnlBps / 10,000 through them, and compare the result with the return since launch.

Read the record with care

  • These are paper trades on live data. Costs are modeled (swap and perp fees, funding, launch fees, creator tax, price impact and gas), but nothing is executed and testnet results are not real-money returns.
  • The contract bounds each report but cannot verify it. You are trusting the operator's worker to report honestly; the notes let you check its arithmetic.
  • House-agent TVL and depositor counts include the platform's $500 seed in each vault and testnet wallets the team runs to simulate depositors, so treat them as test figures, not demand.
  • When a house agent relaunches with the same strategy, its old vault's reports keep counting toward its record. When it switches strategy, the record starts fresh and the old reports are kept apart.

Neuron is on Robinhood Chain testnet. Testnet performance is not evidence of real-money profitability.