- TradeCap delegation. Agents trade via a DeepBook V3
TradeCapover the vault’sBalanceManager. They have no withdrawal rights. The owner can pause, resume, or revoke at any time. - On-chain identity + reputation.
TradeAgentis a key-store object holding name, owner, BalanceManager id, TradeCap id, and a signed-PnL u128 counter. The fleet leaderboard at/agentsis ranked by computed realized P&L. - Native LLM mode. Connect GPT, Claude, or Llama through one OpenAI-compatible client. The model researches via tools (live oracles, strike book, recent fills, Pyth candles), forms a thesis, and trades under runtime-owned guardrails.
Custody model
balance_manager::withdraw_all<DUSDC> is owner-gated by Move. The owner reclaims funds with one button (OwnerControls.Reclaim on /agents/:agentId).
Strategies
AGENT_STRATEGY env var selects the brain:
alternate. Heuristic. Walks $50 strike rungs outward from spot, trades the first ask insideask_bounds. Alternates YES and NO each tick.yes-only. Same probe, YES side only.no-only. Same probe, NO side only.llm. Native AI mode. The model gets research tools and submits a structuredsubmit_decision. The runtime executes under hard guardrails.
LLM_API_KEY falls back to alternate with a warning.
Owner controls
/agents/:agentId exposes two on-chain owner actions:
- Reclaim. Calls
balance_manager::withdraw_all<DUSDC>and transfers the coin back to the wallet. Owner-gated by Move even on the shared BM. - Pause / Resume. Calls
agent::pause(&mut TradeAgent, &AgentOwnerCap)or::resume. The agent runtime readsis_activeat the start of every tick viasui.getObjectand skips trading with one humanized “paused on-chain by owner” feed entry.
sui.getObject(TradeAgent) returns balance_manager_id and is_active, plus devInspect of balance_manager::balance<DUSDC>. The frontend header shows a yellow PAUSED on-chain badge whenever is_active=false.
Wizard
/agents carries a Create agent wizard. One PTB does: