create_execution_intent
Create a propose-only execution intent; returns an approval URL to hand to the user.
submit_mode (optional): omitted/"public" is unchanged and is named in summary.execution. "mev_protected" builds the tx with the caller-paid Jito tip (jito_tip_lamports, or the platform default) and the approved intent is relayed to the Jito block engine (bundle-only). A failed protected relay is never retried publicly on this rail.
Lane 1 (non-custodial default): builds the unsigned swap transaction server-side, persists it as an intent, and returns {intent_id, approval_url}. NOTHING executes until the user opens the approval URL in their browser and signs with their own wallet. This tool never signs and never sees a key. amount is in input-token base units. The quote includes the technology service fee. After the user approves, poll get_intent_status and report ONLY the persisted on-chain state (CONFIRMED before any success claim).
slippage_bps omitted (None) resolves to the published platform default of 50 bps -- unchanged from before; the returned summary's slippage.applied_source honestly reports "platform_default" in that case rather than falsely claiming "caller".
FEE PARITY:
the on-chain technology service fee baked into the unsigned tx is now
resolved through the SAME discount-aware pipeline as jupiter_swap
-- the tokenized-security classification is resolved ONCE here via
the authoritative registry-backed classifier (parity with
jupiter_swap's call site) and, together with pay_in_crank,
determines the quoted platformFeeBps. Without this an intent
proposed via this Lane 1 rail could be fee-classified differently
from the identical swap executed via jupiter_swap. Decision:
pay_in_crank IS exposed here (not just is_security) -- the
fee rate is a quote-time input baked into the unsigned tx before the
user ever reaches the approve page, so an agent must be able to
request the pay-in-$CRANK discount at proposal time, same as it can
on the direct swap path.
GEO GATE: when either leg is a tokenized
security this call is geo-gated (Reg S = no US persons) and
OFAC-screened, same control jupiter_swap/trade_equity
enforce -- jurisdiction declares the caller's jurisdiction once,
ip is the caller's origin IP for the Reg-S IP layer.
include_slippage_advisory (default False) adds the venue's own suggested tolerance for this route to summary.slippage (suggested_bps / suggestion / advisory_status) so an approver can compare it with applied_bps before signing. Advisory only: applied_bps, and the unsigned transaction, are unchanged by it. The probe overlaps the transaction build, so it adds little latency.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | ||
| amount | Yes | ||
| caller_id | No | ||
| input_token | Yes | ||
| submit_mode | No | ||
| jurisdiction | No | ||
| output_token | Yes | ||
| pay_in_crank | No | ||
| slippage_bps | No | ||
| wallet_address | Yes | ||
| idempotency_key | No | ||
| allow_unverified | No | ||
| jito_tip_lamports | No | ||
| include_slippage_advisory | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||