Skip to main content
POST
cURL

Overview

The ExecuteIntentEdge endpoint arms an origin-mode edge intent — a cross-chain intent whose origin is a non-EVM chain (Solana or Tron) quoted through QuoteIntentEdge. Arming is the client’s “user is proceeding” signal and starts server-side monitoring of the external rail: once Trails observes the deposit fill, execution completes without any further client call. Call ExecuteIntentEdge before the user pays on the edge chain. No deposit hash is attached — the fill is discovered server-side. Re-arming an already-armed intent is an idempotent success.

When to use it

  • Origin-mode edge intents (Solana → EVM, Tron → EVM): call this after QuoteIntentEdge and before prompting the user to sign on the edge chain.
  • Destination-mode edge intents (EVM → Solana, EVM → Tron): do not call this. Destination-mode arming happens atomically inside ExecuteIntent when the origin transaction is submitted.
  • Non-edge intents (EVM → EVM): call ExecuteIntent directly.

Request Parameters

Required Fields

  • intentId (string): The unique identifier returned from QuoteIntentEdge. The edge quote is resolved and validated server-side from the intent; no edgeId is required here.

Response

  • intentId (string): The intent identifier.
  • intentStatus (IntentStatus): The current intent status. Arming does not itself transition the intent — the intent stays in a pre-execution status (typically QUOTED) until the edge monitor observes the fill and internally invokes ExecuteIntent.

Example

Errors

  • ErrInvalidArgument: intentId is missing, the intent has no origin edge quote, or the edge quote is in a terminal state.
  • ErrNotFound: The intent does not exist.
  • ErrIntentStatus: The intent is no longer in a pre-execution status (already executing, aborted, or completed).
  • ErrQuoteExpired: The quote’s validity window has elapsed. Request a fresh quote and arm again.
  • ErrIntentsDisabled: Intents are disabled on this deployment.

Notes

ExecuteIntentEdge replaces the arming behavior of the deprecated CommitIntent call for edge intents in the SDK send flow.

Next Steps

GetEdgeStatus

Track the external rail leg’s status

WaitIntentReceipt

Stream the inner intent’s receipt updates

Body

application/json
intentId
string
required

Response

OK

intentId
string
required
intentStatus
enum<string>
required

Represented as uint8 on the server side

Available options:
QUOTED,
COMMITTED,
EXECUTING,
FAILED,
SUCCEEDED,
ABORTED,
REFUNDED,
INVALID