My orders and order history
get_my_ordersThe user's single orders — limit orders, take-profit and stop-loss. By default only LIVE ones (not executed yet): use that before placing a new order (to avoid duplicates) and to find an order_id for cancel_order.
For HISTORY — what filled, what was cancelled and why — pass status="terminal" (optionally with since/until). Filled rows carry filled_price, fill_tx_hash and slippage_vs_trigger_pct (signed, vs the trigger that fired); cancelled rows carry cancelled_at and cancel_reason (sibling_filled = Moby closed out this exit after the other one sold the position; position_closed, user, expired, failed, unknown). History is paged: limit (default 50, max 200) newest-first rows per page; step page only if the answer is not on the first one.
Pass token_address to see only one token's orders (matches the token being sold or bought); without it every order on the wallet comes back.
Reading a row: input_* is what the user SPENDS (the funding asset on a buy — USDC), token_* is the SUBJECT token the order is about, and every price is quoted against the subject token. Describe an order by token_symbol, never by input_token_symbol.
⚠️ If a row carries data_warning, it contradicts itself — report its state as unclear rather than choosing one of the readings.
origin: agent is an order you placed; origin: agent_auto_exit is an older exit Moby attached before automatic exits were retired — it is still that position's exit while it rests.
DCAs: dca_schedules lists the DCA schedules in the same call (live ones by default; finished ones too when status asks for history), filtered by token_address like the orders. Each row's schedule_id is what cancel_order takes to stop the whole DCA; report progress from filled_order_count / order_count.
get_my_orders answers 'what do I have running' in ONE call: orders (limit, take-profit, stop-loss) plus dca_schedules (DCA schedules, one row per schedule; a DCA's individual slices never appear in orders). get_my_dca_schedules is the same DCA rows on their own. If dca_schedules is null, the DCA read failed (dca_schedules_error): call get_my_dca_schedules before telling the user they have no DCA running. This returns the CURRENT USER's own data, resolved from their API key. There is no way to ask about someone else's wallet with this tool.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | History only: 1-based page number. | |
| limit | No | History only: rows per page, newest first (max 200). | |
| since | No | ISO 8601 time, e.g. `2026-10-23T00:00:00Z`. Only orders whose last state change (fill, else cancel/update) is at or after this. | |
| until | No | ISO 8601 upper bound, same clock as `since`. | |
| status | No | Omit for LIVE orders only. `terminal` = every finished order (filled, cancelled, expired, failed) — the history; `all` = live and finished; or one status / a list of statuses. A resting, unfilled order is `active` — there is no `open` and no `pending`. | |
| network | No | solana | |
| token_address | No | Contract address: only orders on this token, whether it is the token being sold (TP/SL) or bought (limit buy). Omit for every token. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||