Skip to main content
Spends the previewed stake_coins and opens the position previewed by preview_order. Accepts only the confirm_token — the topic, option and stake are read from it, so an agent cannot reach this tool without having produced a summary first, and cannot change the amount the user confirmed. Scope: write · Annotations: destructiveHint, idempotentHint, _meta["anthropic/requiresUserInteraction"] REST equivalent: POST /open/v1/orders
Call only after the user has reviewed the preview summary and explicitly confirmed. Tokens expire in 5 minutes and are single-use.

Parameters

Returns

order.units is the raw unit count. What the order pays if its option wins is order.payout_if_correct_rubies — units × the order’s ruby multiplier at fill. It is a guaranteed minimum: if the topic settles while a ruby boost is live, the order pays at the higher multiplier. While a ruby boost runs the two numbers differ, so report and reconcile the payout, not the units: compare order.payout_if_correct_rubies with previewed.payout_if_correct_rubies. Example — the 300-coin order from the preview_order example, filled during a 2× ruby boost:

Price locking — read this before reporting the fill

The preview captures a 60-second price lock:
  • Lock still live → the order fills at the previewed units and price_locked is true.
  • Lock lapsed (including under 2 seconds left) → the order fills at the current market price. It is not rejected. price_locked is false, order.units / order.price hold the actual fill, and previewed holds what the user confirmed.
When price_locked is false, report the actual fill — order.payout_if_correct_rubies and order.units — to the user, not the numbers they confirmed.

Retrying

Safe to retry with the same token: the original order comes back with replayed: true and nothing is charged twice. On a replay, price_locked describes this call, not the original fill — the original’s lock state is not stored. To reconcile, compare order against previewed (payout_if_correct_rubies and price). A token minted before contract 2.1.0 carries no previewed payout, so previewed.payout_if_correct_rubies is an empty string for it. Tokens live 5 minutes, so this only matters around the upgrade.

Errors

See Errors for the full table.

Example prompts

  • “Yes, place it.” (after a preview)
  • “Confirmed — go ahead.”
preview_order · list_my_positions