Cross-chain speed buys, and sells that pay out USDC on another chain
Under priority: "speed" a buy can now reach a stock on a chain you are not funded on, in one signature set. A sell can pay its USDC out on another chain with the new payout_chain field. Both are opt-in; a request that sends neither gets the same routing as before.
What changed
Sells: payout_chain
POST /quote/sellacceptspayout_chain("sol","eth"or"base"; absent ornullkeeps the old behaviour). The sale's USDC lands on that chain, in your own wallet there. Asol/xstocks,base/coinbaseoreth/ondoposition held on another chain sells cross-chain as one leg, marked bypayout_chainon the leg, whatever thepriority. A position that cannot pay out there is left out with across_chain_route_unavailablewarning and is never sold on its own chain instead.- You fund the network gas for a cross-chain sell leg on the position's own chain (
gasless: false), unless your paymaster sponsors it on theexecution: "user_operation"lane. On Ethereum and Base it is two signed transactions, an exact-amountapprovethen adeposit, or oneevm_callspayload underexecution: "user_operation". On Solana it is one versioned transaction. GET /quote/{quote_id}/statuslegs gainpayout_chainandpayout_tx_hash. Oncompleted,payout_chainnames where the USDC actually landed, which is the sale's own chain if the payout was returned there.GET /settlementsreports such a sale as two transactions: the sale (sending) and the payout (receiving).- New refusals:
400 invalid_requestwith apayout_chain:message prefix, and422 no_routeswithreason: "payout_route_unavailable".
Buys: cross-chain speed legs
- Under
priority: "speed",POST /quote/buyandPOST /quote/previewmay quote a stock you are not funded on as a cross-chain leg instead of dropping it. The leg carriesorigin_chain(where your stablecoin leaves from;chainstays the destination),cross_chain_cost_bpsandcross_chain_cost_usdc, andbase_assetnames the origin's currency. chain: ["eth"]with"speed"on a buy or preview now returns a cross-chain leg or422 no_routesinstead of an unconditional400.- New
warnings[]codescross_chain_route_unavailableandcross_chain_price_deviation, a newno_routesreasoncross_chain_wallet_missing, and new per-legerror_codesrefunded,deposit_reverted,delivered_other_currency,cross_chain_unsettledand a per-legquote_stale.
Also
cost_breakdown_bps.dex_swap_fee_bpsis nullable:nullonly on a cross-chain leg.ChaingainsarbitrumandProtocolgainsreality, for an upcoming venue; therealitylistings block onGET /stocksandGET /stocks/tickersisnulluntil it opens.GET /quote/{quote_id}/statusasks forpoll_after_ms: 3250(was10250) when only gasless or Solana legs remain.- An on-chain venue price more than 1.5x away from the reference market price reads
share_price_usd: nullonGET /stocks/{ticker}.
What to do
Action (strict response parsers only): accept null for cost_breakdown_bps.dex_swap_fee_bps. A caller that sends neither priority: "speed" nor payout_chain never receives it.
Nothing else is required. Buying and Selling maps every combination of priority, execution and payout_chain to the legs it returns and how to sign each one. To use the new routes, update to skill 1.16.0 (Agent Skills) or read the API Reference. Routing rules: Routing and Priority Mode.