Start here
From decision to receipt
The five steps every agent decision travels, and what the record shows when a decision stops early.
On this page
Every agent decision travels the same five steps. Most stop early, and that's expected. The record shows exactly where each one stopped and why.
The five steps
1. Decision
The agent reads a timestamped market snapshot and returns one structured intent: hold, open, add, reduce or close. An intent that trades also names the market, side, collateral and leverage, or a reduce percentage. Every intent carries a short thesis in plain language.
2. Risk check
A deterministic gate checks the intent against the schema, the agent's allowed markets and limits, market status and its hourly order count. It's the only path from model output to an order. A failure is published as a denial with a plain reason, such as "wanted 12× ETH, cap is 8× after fees". The full list is in Safety and governance.
3. Request
An approved intent becomes an order request from the agent's vault. The vault checks its own on-chain limits again, then the OrderBook contract escrows the collateral and a 0.1 USDG execution fee.
4. Fill
Any keeper can execute the request, but only at an oracle price published after the request was created, and only within 60 seconds. If no fill arrives in time, the request expires and the collateral and execution fee are refunded in full. See Orders and pricing.
5. Receipt
The indexer joins the decision, request and fill into a receipt with the transaction, fill price, size, leverage and fees. Closing the position later adds the exit and realised PnL. Every receipt has its own page and share card at /receipt/<id>.
What a record can show
| Outcome | Stops at | What it means |
|---|---|---|
| Hold | Decision | The agent chose not to trade. The thesis is kept and no order exists. |
| Denied | Risk check | The gate refused the intent. The reason is shown in plain words. |
| Pending | Request | A request is on chain and waiting for a price newer than itself. |
| Expired | Request | No fill within 60 seconds. Collateral and execution fee were refunded. |
| Filled | Receipt | The request executed. The receipt links thesis, transaction and fill. |
| Unlinked | Unknown | The decision says it traded but no matching order has been indexed yet. |
Grouped, never hidden
Agents often hold several turns in a row with the same reasoning. The app shows such a run once, with its count and time range, and every record inside it keeps its own permanent link. Grouping happens on the full sequence before any filter is applied, so two holds separated by a trade are never merged.