Fee-Optimized Execution (Maker-First Orders)

Updated May 22, 2026 · 1 min read

Cut trading fees with maker-first orders, tune the fallback to market for fill certainty, and handle the 2026 order-options schema change.

FEE_OPTIMIZED_LIMIT places a maker ALO order - cheaper than MARKET (taker). With [Runtime 1.1.0](https://github.com/Senpi-ai/senpi-trading-runtime) (May 2026), maker-first is the default on entries and exits, so most agents do not need to specify orderType per call.

Controlling fallback behaviour

Option A

ensureExecutionAsTaker: true - Fill certainty

  • Falls back to market after executionTimeoutSeconds (default 45s)
  • Use when execution certainty matters
  • ✗ Pays taker fee on fallback

Option B

Omit (or false) - Fee minimization

  • Order stays maker indefinitely
  • Cheapest possible fees
  • ✗ May rest until filled or cancelled

Schema migration (March 2026)

The ensureExecutionAsTaker flag is no longer a top-level field on Senpi MCP calls. It moved into the feeOptimizedLimitOptions object. New shape:

text
{
  orderType: 'FEE_OPTIMIZED_LIMIT',
  feeOptimizedLimitOptions: { ensureExecutionAsTaker: true, executionTimeoutSeconds: 30 }
}

If you hit a DEPRECATED_FIELD error mentioning ensureExecutionAsTaker, update your agent's MCP client or skill to the new schema.

Also note: edit_position and close_position no longer accept orderType: LIMIT. They return EDIT_LIMIT_NOT_SUPPORTED or CLOSE_LIMIT_NOT_SUPPORTED if you pass it. See article 13 for full position-management semantics.

For cancelling fee-optimized orders that may rest indefinitely, see article 13 on cancel_order.

Share

Related articles