Non-custodial · Verifiable · Permissionless

Your capital. Your wallet. AI execution.

Tell it what you want in plain English — “buy $50 of Tesla, stop me out below $200.” Prime turns your words into real trades in tokenized stocks, executed inside your own wallet. It can never withdraw.

Live on Robinhood Chain testnet · Phase 0 · unaudited
dNVDA · signalonchain
Talk to it — trade stocks in plain English

Say it. Prime trades it.

Buy, sell, buy the dip, dollar-cost-average, arm a stop-loss, check your holdings — just say it. The model turns your words into typed trades in tokenized stocks, executed in your own wallet. It picks the action and the numbers, never the calldata; a withdrawal has no tool and is refused.

prime · intent planner
$
SELL50% dTSLA→ USDGaccepted
BUY$50.00 dNVDApaying USDGaccepted
A withdrawal request has no tool, and is refused. Every intent is re-checked against your delegation before a transaction exists — and the validator is still the final authority.
Connect to run a plan — you sign each trade, and funds never leave your account.
Tokenized stocks · Robinhood Chain

Trade the whole board.

8 tokenized equities, settled onchain, priced by an oracle. Every ticker is curated in the registry — add one there and agents can trade it and you can ask for it in plain English, instantly.

dNVDA
NVIDIA
dAAPL
Apple
dTSLA
Tesla
dMSFT
Microsoft
dGOOGL
Alphabet
dAMZN
Amazon
dMETA
Meta
dSPY
S&P 500
USDG
Global Dollar · settlement
> unknown tokens are refused by the validator — no symbol lookup, no scam-ticker risk.
The protocol never holds your funds

Three lines in the validator enforce it.

Not aspirations — real reverts, each naming the file and line you can open.

01

Withdrawal is impossible

transfer and transferFrom are rejected during validation, to any destination — a bare ETH send too. The agent trades inside your account; nothing leaves it.

PolicyValidator.sol:465
02

Only you can revoke

One transaction kills the delegation, re-checked in execution — so an op already in a bundle still dies. No bundler, no backend, nothing of ours in the path.

PolicyValidator.sol:416
03

Spend is bounded

Every trade is priced by a Chainlink oracle and capped per-trade and per rolling 24h in USD, on top of the whitelists you signed. A keeper cannot exceed the plan.

PolicyValidator.sol:512
The one decision to understand

Two-phase enforcement

ERC-7562 rules forbid a validator from reading foreign storage or writing state during validation. But USD caps need an oracle read, and rolling-day accounting needs a state write.

So PolicyValidator is both a validator and an executor. The userOp calls the validator, which pins the call shape in validation, then runs the priced, state-writing checks in execution.

account.execute(policyValidator, 0, executeTrade(delegationId, calls))// the agent never calls a venue directly
validateUserOp
signature, delegation binding, expiry, revocation, venue / selector / asset whitelists — pure reads of own storage, mempool-safe.
executeTrade
all of the above again, plus oracle price, per-trade cap, rolling-day cap and debit — reads and writes are legal here, and it closes the revoke race.
Strategies, all inside your account

Three agents. One policy. None can withdraw.

Each ships with its own on-chain proof — and one unified agent runs all your standing rules (stops, dip buys, schedules) together, from a single durable store.

G

Guardian · reacts to price

Stop-loss and take-profit. Fires an exit the instant a threshold is crossed; a fired stop survives restarts and never double-sells.

@prime/guardian · 28 tests
D

DCA · acts on a schedule

Recurring buys paced by chain time — no wall-clock drift, no catch-up burst after downtime, skips a cycle it can't afford.

@prime/dca · 20 tests
B

Baskets · one atomic buy

A weighted multi-asset basket in a single userOp: one approval, N swaps, all settle together or none do.

@prime/baskets · 11 tests
Verifiable, not asserted

The leaderboard is recomputed from chain.

Ranked by realized P&L — not a number we type. Empty until the first agent trades; nothing here is simulated.

No agents have listed on Robinhood Chain yet. Point an indexer at the page with NEXT_PUBLIC_INDEXER_URL to fill this from live data.
Proven against real infrastructure

A real bundler's ERC-7562 tracer on the validation path.

Run through a real alto bundler in safe mode, the validator is rule-clean.

alto --safe-mode true · validateUserOpRULE-CLEAN
banned opcodes (OP-011)  : NONE
storage writes           : { account: 0, validator: 0 }
CREATE / CREATE2         : false

Run the whole thing from one command.

Spin up a local chain, deploy, and walk the full flow — register, bond, delegate, fire a stop-loss, revoke.

Follow @prime_proto
$ pnpm bootstrap && pnpm demo