Orders
Execute guarded v24 actions and signed orders through the matching Router.
Immediate actions and signed orders
RouterKernelV24 dispatches supported direct actions and signed EIP-712 orders to its registered modules. Use the exact v24 schema and the deployment's active Router. A v22 or v23 payload is not compatible.
The signed roots cover opens, added collateral, leverage reduction, partial and full closes for ordinary and margin positions, plus settlement, LP funding, LP fee, and deferred-position claims. Contract support does not guarantee an app or keeper offers every order type.
Price conditions and guards
v24's order envelope uses minPrice and maxPrice bounds. It does not carry the old triggerPrice / triggerAbove fields. An app can express a permitted execution range, but a stop-loss or take-profit label does not guarantee execution or a fill at that price.
The envelope also binds the maker, account, pool, deadline, nonce space, deployment identity, execution binding, risk profile, configuration, and minimum accounting nonce. The inner action carries its own exact state and output guards. A minimum accounting nonce is not a substitute for an exact action digest.
Price bounds are literal: zero maxPrice does not mean no maximum. maxProtocolFee is an absolute protocol-fee cap and zero accepts no fee. Inner guards cannot loosen the signed envelope. A changed state or configuration can require a new quote and signature.
Oracle updates
Supported update wrappers accept a validated OracleUpdateBatchV24. Paid updates must use the approved adapter, the correct action binding, deadline, refund receiver, and fee bounds. The Router validates the post-update price before execution.
Provide sufficient native currency within maxOracleUpdateFee. Excess is returned to the refund receiver; if the native refund fails, the Router records a claimable refund for claimNativeRefund. This is separate from collateral settlement escrow. Calls without an update path reject unexpected native value.
Signatures and keeper fees
Signatures are checked at execution, including supported smart-contract-wallet signatures. Anyone may submit a valid order, subject to all authorization and execution checks.
A nonzero keeperFeeAmount is the signed amount pulled from the maker's wallet with transferFrom. It requires balance and allowance. Do not apply the old v22 rule that capped the payment at 20% of a close payout. Agent-signed margin orders additionally enforce the account's keeper-fee policy.
Keeper fees, native oracle fees, gas, and position bounty bonds are separate from maxProtocolFee. A valid signature alone does not guarantee enough balance or an executable order.
Execution receipts
Pool actions and signed-order executions emit their own receipts from the pool and order modules. Margin account actions and Recovery liquidation routes do not, so the Router emits RouterExecutionRoutedV24 for them after a successful dispatch. The event carries the router state nonce, an actionId bound to the chain, schema set, Router, execution sequence, subject kind, subject, and selector, plus the actor, the selector, and the hash of the exact return data. The subject is the margin account (subjectKind 5) or the pool (subjectKind 1).
The receipt is an indexing aid. Economic truth remains in the pool or account state that the routed action modified. A reverted route emits no receipt and leaves no state change.
Cancellation
An expired order cannot execute. To cancel sooner, use cancelNonce(nonceSpace, nonce) or the bitmap-based cancelNonceWord. Nonce spaces have defined action domains; use the correct domain rather than copying a nonce from a different action family. A successful execution consumes the nonce and prevents replay.
Close and claim
v24 ordinary closes choose Direct or Escrow settlement where allowed. Settlement and deferred claims have separate signed roots. Do not call the old closePositionAndClaimV2WithPriceUpdate or assume that a v24 close automatically sweeps an earlier escrow balance.