Ops and the indexer
One ops process runs every keeper on a shared runtime, each with its own key and its own heartbeat, and indexes the chain into Postgres.
Ops is one Node process on Mitoshi's Coolify server, at ops.mitoshi.xyz. Every actor runs on the same loop (runActor): a pass every few seconds, a heartbeat, a one-line reason for what it did or why it waited. Each actor that signs has its own role key; an actor with no key runs dry. Dry run is the default until it is switched off, actor by actor.
The actors
Read from ops' /health on 13 October 2026 at 08:30 UTC (30 heartbeats, 29 live, 1 dry; evidence/ops-health-2026-10-13.json):
| Actor | Job |
|---|---|
| chain-head | Follows Moderato's head; the venue's liveness. |
| spot-feed | RedStone's latest signed packages, every feed, every 10 s. |
| display-crypto · display-stocks | The chart's live line: Coinbase for crypto, Alpaca for stocks. Never settlement. |
| window-roller | Opens the next Window of each of the 72 series; holds the roller role. |
| price-relay | Posts RedStone packages for each boundary to the engine. |
| archive | Keeps RedStone's packages for every boundary, apart from any transaction. |
| settler | Settles, voids at the deadline, and pays winners (redeemFor); cranks the Trading Balances' settled positions. |
| seed-maker | The house maker: both sides of every live Window, around the fair value, to lock − 30 s. |
| house-taker | House-key taker fills so the books see flow. Its fills are never counted as demand. |
| earn-quoter | The maker vault's quotes on the crypto Windows. |
| exit-keeper | Sells armed exits through EXIT grants, at the floor. |
| leverage-keeper | Settles and knocks out boosts. |
| strategy-runner | Places for copiers through STRATEGY grants; runs house agent #3's model. |
| agent-rater | One ERC-8004 rating per agent per completed day. Dry until the owner releases it. |
| theme-agent | Issues each theme follower's key, sealed, and rebalances inside the bands. |
| launch-keeper | Graduates a memecoin once its curve completes. |
| reference-writer | Keeps the stock pools' reference price and session fresh from RedStone. |
| duel-settler | Cranks duels: closes the picks, settles each card, awards the pot. |
| x-relay | Reads mentions of the X bot through its own session and places each call through its account's EXECUTOR grant (trade from X). |
| bridge-watch | Follows each recorded bridge transfer leg by leg through LayerZero Scan. |
| reserve-watch | Snapshots every ticker's backing every 5 minutes; alerts if a check fails or anyone but the adapter can mint. |
| stock-sync | Pushes Robinhood multipliers and pauses to Tempo. Idle until its sender is deployed on Robinhood Chain. |
| indexer-recount | An hourly recount against the Tempo Indexer API or a self-hosted tidx. Idle: no indexer configured yet. |
| halt-watch | The halt board from RedStone freshness and Alpaca's tradable flag. |
| calendar · earnings | NYSE sessions and holidays; upcoming earnings. |
| funds-watch | Watches every role key's pathUSD against a floor and tops a low one up from Moderato's faucet (mainnet only reports). |
| moderation | The social report queue. Reads only. |
| indexer | The chain into Postgres. |
The indexer
The indexer follows the engine, the three Trading Balance vaults, the strategy registry, the ERC-8004 reputation registry and the bridge adapters, block by block, into Postgres — Windows, orders, fills, prints, settlements, vault executions and grants, and the adapters' mints, burns and held credits. At 08:30 UTC on 13 October it had seen 62,023 Windows opened and 61,946 resolved (evidence/ops-health-2026-10-13.json). Web reads it for Markets, Portfolio, Stats, the leaderboard and profiles.
Recount. A separate replay — a GitHub workflow, recount.yml — walks the engine's and every vault's logs and compares totals with the index. Through block 39,012,040 the recount equalled the index, total for total and Window for Window.
The stream
Ops serves one live stream to the terminal: public topics (prices, ticks, sessions, halts) are open, and your own topic needs a 60-second ticket the web signs. A refused ticket keeps the public stream.
Health
/health lists every actor's last pass, its reason, its failures and whether it is dry; Status shows it in the app as one board with the relay's state, and the halts board keeps 30 days of halts. The container's health check uses /livez, so an outage at RedStone doesn't take the ops API down.

Prices and prints
Two kinds of price, kept apart — a display feed you watch, and RedStone's signed prints that settle. Where each comes from and who checks it.
The relay and your keys
How Mitoshi pays your network fees without being able to spend your money, and how one-tap keys stay inside their limits.