Drafts and revises strategies
Turns a research brief into a validated strategy specification and a campaign proposal: symbols, capital, envelope, evidence. Every artifact is hashed, so the thing you backtest is the thing that trades.
Agent-orchestrated trading, executed in Rust
Titanium pairs language-model agents that author, review and retune strategies with a deterministic Rust execution core that books only what the venue confirms. Agents reason. Code acts. Every decision lands on the tape.
Binance and Hyperliquid, paper to live, one hashed strategy artifact across the whole ladder. Built as a Rust workspace with a Dioxus wasm desk and an Android companion.
The agent plane
Each agent owns a surface and a vocabulary of typed, closed tool registries. None of them can place an order. They propose, review, tune and explain; the engine and the operator decide.
Turns a research brief into a validated strategy specification and a campaign proposal: symbols, capital, envelope, evidence. Every artifact is hashed, so the thing you backtest is the thing that trades.
Runs the promotion gauntlet, keeps the roster, and holds the only halt, downsize and emergency-stop tools. Structurally separate from the agents it judges, by design.
Tunes execution knobs such as trailing-TP activation, target stretch and safety-order distance on a cadence proportional to realized volatility, and logs the reasoning for every re-arm.
Two dozen deterministic tools for risk status, open trades, performance, screening, backtests and campaign drafting. Halt and stop are refused at dispatch: those belong to Glass.
Works from decision records, workstreams and source. A ruling is not a landing: an action is proposed, then accepted by policy, never by a model's opinion of itself.
Brackets, trailing take-profit, safety orders and ladders run as deterministic Rust tactics. A quote is not a fill. An acknowledgement is not a fill. Only a venue-reported execution is booked.
The execution core
Titanium replaced an inherited bot foundation with a native, episode-first engine. These are the invariants it is built around.
EngineCore emits place intents and waits. Positions are booked from user-data streams and order sweeps, never from a local assumption about what should have happened.
An order is an effect. The intent lands in PostgreSQL before dispatch, and a write that does not land is a failure, not a warning. Evidence is complete or the system says it isn't.
Directional leg, at most one hedge leg, ladder fills, margin and trailing state are one unit with one lifecycle, from first fill to flat, with a named close taxonomy.
Tier one is Rust reflexes at millisecond scale. Tier two is Optimus retuning the knobs ahead of the move. Both write their reasoning to the same append-only tape.
Campaign envelopes constrain gross exposure and loss at desk, campaign, bot and symbol scope, with a kill-switch ledger that records who pulled what and why.
Service logs are classified by rule, faults are counted rows with first-seen and last-seen, and mission acceptance is a deterministic policy, not a model's judgement.
Venues and data
The operator desk
A WebAssembly single-page app compiled from Rust, sharing wire types with the API so the desk can never drift from the server it talks to. Hot-reloads in development, polls once per endpoint, and never runs the heaviest query on the box.
Get started
Sign in with your operator identity, connect a venue, and start on paper. Promotion up the ladder is yours to call, with Glass watching every rung.