Developers

Security Model

What the Neuron contracts enforce on their own, what still depends on the platform's keys and off-chain services, and what that means for you on Robinhood Chain testnet today.

Status in one paragraph

The contracts are tested with Foundry unit and fuzz tests but have not been audited, and no audit report has been published. Vaults and strategies are owned by a platform account, not yet a timelock or multisig. On testnet the vaults hold a free mock token and agents paper-trade, so the realistic risk today is wrong numbers, not lost money. The design below is what would carry over to mainnet, where the planned hardening items have to land first.

What the contracts enforce

Vaults

ProtectionHow it works
Withdrawals cannot be blockedpause() only zeroes maxDeposit; withdraw and redeem are never paused
Fee capMAX_PERFORMANCE_FEE_BPS = 3,000; both the constructor and setFeeConfig revert with FeeTooHigh above 30%
No fees on lossesFees accrue only above the high-water mark (price per share), and are crystallized before every deposit and withdrawal, so a late depositor never pays for earlier gains
Honest previewsShare math counts fee shares not yet minted, so previewRedeem and maxWithdraw never overstate what you get (fuzz-tested)
Share inflationA decimals offset of 6 on the ERC-4626 conversion
Non-transferable sharesAny wallet-to-wallet transfer reverts, which keeps on-chain cost basis exact and stops vote buying through transfers
ReentrancynonReentrant on deposit, mint, withdraw, redeem, harvest and setStrategy; token moves use SafeERC20
Deposit limitsPer-vault depositCap and minDeposit
Liquidity checkA withdrawal the vault and strategy cannot fully cover reverts rather than paying short

Strategies and reports

  • A strategy is bound to one vault and one asset, both immutable; only that vault can call invest, withdraw or withdrawAll. setStrategy rejects a module that names another vault or asset.
  • SimulatedStrategy.report accepts calls only from its operator, rejects any move above maxReportBps (ReportTooLarge) and any report sooner than minReportInterval (ReportTooSoon). Factory agents use 1,000 bps and 60 seconds; the factory can only set 1 to 5,000 bps and 30 seconds to 1 day for new agents.
  • The operator wallet has no admin rights over vaults; it can only report.

Governor and test token

  • AgentGovernor counts the smaller of a holder's shares at the start of yesterday and of today, so money parked over one midnight buys no votes. It requires 1% of voting supply to propose, a quorum of at least 5% (agents use 10%), caps 25 proposals a day and rules at 4,096 bytes, closes at most 31 missed days when a proposal or vote catches up (so one call cannot run out of gas), and discards proposals written against outdated rules.
  • MockUSDC lets anyone claim only to their own wallet (FaucetSelfOnly), up to 1,000 per UTC day (FaucetLimit). Only whitelisted minters, the simulated strategies, can mint or burn freely.

Tests

contracts/test covers deposits, caps, pausing, pro-rata cost basis, non-transferability, fees and the high-water mark, fee previews, strategy migration and binding, report bounds and rate limits, governor voting rules, the bonding curve and the faucet, plus fuzz tests that a deposit and withdrawal round trip never profits without PnL, that previews never overstate a redeem, that reports keep vaults solvent, and that the curve stays solvent.

What you still trust

Owner keys

PowerHeld byWhy it matters
setStrategy on a vaultFactory owner (platform account)A new module that passes the asset and vault check takes custody of the vault's assets
setFeeConfig, setDepositLimits, pauseFactory ownerFees up to 30%, caps, and pausing new deposits
setOperator on a strategyFactory ownerChooses which wallet may report results
setUsdcMinter, setLimits, setOperator, setFeeTreasury on the factoryFactory ownerWho can mint test USDG, limits for new agents, the agent operator and the treasury
FeeCollector settingsIts owner (the factory, for community agents)Treasury and operator addresses

There is no timelock on any of these today. The repo's plan is to hand vault ownership to a 48 hour TimelockController before mainnet, which is an ownership transfer rather than a code change (planned).

Off-chain services

  • The operator and worker. The contract bounds each report but cannot check it. A buggy or rogue operator could move a vault by up to 10% per minute on factory agents. The notes in each report let anyone recheck the arithmetic against public prices.
  • Market data. Paper results depend on prices and yields from Hyperliquid, DefiLlama, the Neuron launch indexer and token price providers. Bad data produces bad reports.
  • The indexer. Every figure on the site is computed by the indexer from on-chain events. It can be wrong or late; the raw events are public and can be recomputed (see Public PnL & Trade History).
  • Rule changes. An approved fix is served by the indexer and overrides the rules in an agent's on-chain governor, so the rules an agent trades on can differ from what the governor stores. Fixes are written with Claude's help, backtested against the current rules, and applied only after a team member approves them. Every rule set is also validated against fixed bounds before the worker uses it.
  • Token launches. The launch service checks a signature from the agent's creator, a 10 minute expiry and the +10% return before it creates a token on Realm, and it launches one token at a time.

In the app

  • Deposits approve exactly the amount being deposited, never an unlimited allowance.
  • Keys for the operator, deployer and services live in server-side environment variables; logs are passed through a redaction helper.
  • Portfolio exports neutralize spreadsheet formulas in text cells.

What users trust on testnet today

  1. 1The test token has no value, so a vault loss costs you nothing real.
  2. 2Your shares are withdrawable at any time, even if deposits are paused, as long as the strategy holds the assets. With SimulatedStrategy the assets sit in the strategy contract, so they are always liquid.
  3. 3The numbers you see are as honest as the operator's reports and the indexer's math. Both can be checked on-chain.
  4. 4The platform can change strategies, fees within 30%, caps and operators without delay.
Warning

Do not treat these contracts as safe for real funds. They are unaudited, admin actions have no timelock, and the strategies that would hold real assets do not exist yet.

Planned before real capital

Designed but not built yet: real execution strategies with whitelisted targets and slippage caps, per-strategy position limits, epoch-based withdrawal windows, management fees, and strategy upgrades behind a 48 hour timelock. See Testnet to Mainnet.

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