> For the complete documentation index, see [llms.txt](https://docs.intents.aurora.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intents.aurora.dev/api-reference/intents-connect-api-reference/request-steps-execution.md).

# Request steps execution

## Create a steps-only execution

> Creates or dry-runs an execution without a 1click quote. The intermediary is expected to already hold the destination token. Non-dry requests include a signing payload in result.details. The destination type selects the step shape - EVM destinations send ExecutionStepEVM objects, Solana destinations (type=solana) send ExecutionStepSolana objects, and Sui destinations (type=sui) send ExecutionStepSui objects, all under the same steps key. The type field accepts only evm, solana or sui and defaults to evm when omitted - any other value is rejected with 400, and an explicitly set type must agree with the resolved destination blockchain. Solana steps-only supports native SOL and SPL destinations, where the SPL path uses the gasless relayer model. Sui steps-only is sponsored from the backend's own SUI address balance and takes its commission on chain out of the action coin. A Sui step is command-oriented rather than call-oriented - one step is one programmable-transaction command (moveCall, splitCoins, mergeCoins, transferObjects or makeMoveVec) whose arguments carry their values inline, so a client never names an input index and the backend owns the input list. Sui steps name the coin the action spends with the {ACTION\_COIN} sentinel in an argument objectId, resolved to the intermediary's coin object of that type or, when it holds none, to a withdrawal against its accumulator balance - which is what lets a steps-only execution recover funds that a bridge-in already moved into the accumulator. A Sui steps-only dry preview that omits steps returns the same empty shell as the other two families, while a Sui steps array naming no action coin, an empty one included, is rejected with 400 because it cannot be priced. Step objects accept only their documented fields - a key from another step shape, a differently cased spelling of a field, the same key twice, or any field not listed is rejected with 400. Anything else a client needs to carry belongs in the step metadata object, which the backend passes through untouched. Step payloads nested more than 15 containers deep are also rejected with 400, counting the steps array itself as the first level - the metadata object is exempt. A step functionSignature may nest tuples or arrays at most 6 levels deep and may be at most 1024 bytes. An EVM steps array may hold at most 30 steps, a Solana one at most 50 and a Sui one at most 50. Request bodies are limited to 256 KB.

```json
{"openapi":"3.0.3","info":{"title":"Intents Connect API","version":"1.0"},"servers":[{"url":"https://intents-connect-api.aurora.dev"}],"paths":{"/api/v1/executions/{wallet}/steps":{"post":{"description":"Creates or dry-runs an execution without a 1click quote. The intermediary is expected to already hold the destination token. Non-dry requests include a signing payload in result.details. The destination type selects the step shape - EVM destinations send ExecutionStepEVM objects, Solana destinations (type=solana) send ExecutionStepSolana objects, and Sui destinations (type=sui) send ExecutionStepSui objects, all under the same steps key. The type field accepts only evm, solana or sui and defaults to evm when omitted - any other value is rejected with 400, and an explicitly set type must agree with the resolved destination blockchain. Solana steps-only supports native SOL and SPL destinations, where the SPL path uses the gasless relayer model. Sui steps-only is sponsored from the backend's own SUI address balance and takes its commission on chain out of the action coin. A Sui step is command-oriented rather than call-oriented - one step is one programmable-transaction command (moveCall, splitCoins, mergeCoins, transferObjects or makeMoveVec) whose arguments carry their values inline, so a client never names an input index and the backend owns the input list. Sui steps name the coin the action spends with the {ACTION_COIN} sentinel in an argument objectId, resolved to the intermediary's coin object of that type or, when it holds none, to a withdrawal against its accumulator balance - which is what lets a steps-only execution recover funds that a bridge-in already moved into the accumulator. A Sui steps-only dry preview that omits steps returns the same empty shell as the other two families, while a Sui steps array naming no action coin, an empty one included, is rejected with 400 because it cannot be priced. Step objects accept only their documented fields - a key from another step shape, a differently cased spelling of a field, the same key twice, or any field not listed is rejected with 400. Anything else a client needs to carry belongs in the step metadata object, which the backend passes through untouched. Step payloads nested more than 15 containers deep are also rejected with 400, counting the steps array itself as the first level - the metadata object is exempt. A step functionSignature may nest tuples or arrays at most 6 levels deep and may be at most 1024 bytes. An EVM steps array may hold at most 30 steps, a Solana one at most 50 and a Sui one at most 50. Request bodies are limited to 256 KB.","parameters":[{"description":"Origin wallet identifier. Supports EVM addresses, NEAR accounts, NEAR implicit accounts, Solana base58 public keys, Stellar G-addresses, TON user-friendly addresses, and Tron base58 (T...) addresses.","in":"path","name":"wallet","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.createStepsExecutionRequestDoc"}}},"description":"Steps-only execution request. Steps items follow the destination type - executionStepEVMDoc for EVM, executionStepSolanaDoc for Solana (shown), executionStepSuiDoc for Sui.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.executionObjectResponse"}}},"description":"Dry-run steps-only execution estimate."},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.executionObjectResponse"}}},"description":"Steps-only execution created and paired transaction prepared."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"Bad Request"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"An execution for this wallet is already in progress."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"Request body exceeds the configured size limit."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"Internal Server Error"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"Bad Gateway"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/controllers.errorResponse"}}},"description":"No Solana durable nonce account available. Retry shortly."}},"summary":"Create a steps-only execution","tags":["Executions"]}}},"components":{"schemas":{"controllers.createStepsExecutionRequestDoc":{"properties":{"addressLookupTables":{"description":"AddressLookupTables are base58 Address Lookup Table account addresses for\nSolana destinations only (see createExecutionRequestDoc.AddressLookupTables).\nAdditive and ignored for EVM, rejected with 400 for Sui.","items":{"type":"string"},"type":"array"},"destinationAsset":{"type":"string"},"dry":{"type":"boolean"},"metadata":{"additionalProperties":{},"type":"object"},"publicKey":{"description":"PublicKey is the origin wallet's ed25519 key. Required for TON and ignored otherwise.","type":"string"},"steps":{"description":"Steps items follow the destination type. For Solana destinations\n(type=solana) each step is an executionStepSolanaDoc (shown here). For EVM\ndestinations each step is an executionStepEVMDoc and for Sui (type=sui) an\nexecutionStepSuiDoc, sent under this same steps key.","items":{"$ref":"#/components/schemas/controllers.executionStepSolanaDoc"},"type":"array"},"type":{"description":"Type selects the step shape. Must be evm, solana or sui, defaults to evm when omitted, any other value is rejected with 400.","enum":["evm","solana","sui"],"type":"string"},"version":{"type":"string"}},"type":"object"},"controllers.executionStepSolanaDoc":{"properties":{"accounts":{"description":"Accounts are the instruction account metas in program order. Only the intermediary may be a signer.","items":{"$ref":"#/components/schemas/controllers.solanaAccountMetaDoc"},"type":"array"},"args":{"description":"Args are Borsh-encoded in order after the discriminator to form the instruction data.","items":{"$ref":"#/components/schemas/controllers.solanaArgDoc"},"type":"array"},"discriminator":{"description":"Discriminator is the hex-encoded instruction prefix: 8-byte Anchor\ndiscriminator or a 1-byte opcode. Omitted when the program takes none.","type":"string"},"metadata":{"additionalProperties":{},"type":"object"},"programId":{"description":"ProgramID is the base58 program the instruction calls. Steps become instructions in order.","type":"string"}},"type":"object"},"controllers.solanaAccountMetaDoc":{"properties":{"isSigner":{"type":"boolean"},"isWritable":{"type":"boolean"},"pubkey":{"description":"Pubkey is a base58 account address or a placeholder sentinel\n({INTERMEDIARY}, {DEPOSIT_ADDRESS}) resolved before encoding.","type":"string"}},"type":"object"},"controllers.solanaArgDoc":{"properties":{"name":{"type":"string"},"type":{"enum":["u8","u16","u32","u64","u128","i8","i16","i32","i64","bool","pubkey","bytes","string"],"type":"string"},"value":{"description":"Value is the JSON literal for the arg. Integers are JSON integers or decimal strings, pubkey is\na base58 string, bytes is a hex string without 0x, bool is a JSON bool. A string equal to a\nplaceholder is substituted at request time - {INTERMEDIARY} with the intermediary account,\n{MIN_AMOUNT_OUT} (bridge-in only) with the post-fee minimum destination amount, and {AMOUNT_IN}\n(out-operation with EXACT_OUTPUT only) with the origin amount the step must produce."}},"type":"object"},"controllers.executionObjectResponse":{"properties":{"result":{"$ref":"#/components/schemas/controllers.executionDoc"}},"type":"object"},"controllers.executionDoc":{"properties":{"createdAt":{"type":"string"},"details":{"$ref":"#/components/schemas/controllers.executionDetailsDoc"},"executionMode":{"enum":["quote_with_steps","steps_only"],"type":"string"},"id":{"type":"string"},"metadata":{"additionalProperties":{},"type":"object"},"quote":{"$ref":"#/components/schemas/controllers.executionQuoteDoc"},"status":{"enum":["CREATED","DEPOSIT_PENDING","DEPOSIT_PROCESSING","OPERATION_PENDING","OPERATION_PROCESSING","SUCCESS","DEPOSIT_FAILED","OPERATION_FAILED","EXPIRED"],"type":"string"},"steps":{"description":"Steps echoes the request steps, in the shape the execution's type selects - an executionStepEVMDoc for\nEVM, an executionStepSolanaDoc for Solana (type=solana) and an executionStepSuiDoc for Sui (type=sui), all\nunder this same steps key.","items":{"$ref":"#/components/schemas/controllers.executionStepEVMDoc"},"type":"array"},"type":{"enum":["evm","solana","sui"],"type":"string"},"version":{"type":"string"}},"type":"object"},"controllers.executionDetailsDoc":{"properties":{"estimatedTime":{"type":"string"},"intermediaryAddress":{"type":"string"},"messageSigned":{"type":"boolean"},"messageToSign":{"type":"string"},"networkFee":{"type":"string"},"payload":{"$ref":"#/components/schemas/controllers.signingPayloadDoc"},"signingStandard":{"enum":["raw_ed25519","nep413","erc191","tip191","sep53","ton_connect"],"type":"string"}},"type":"object"},"controllers.signingPayloadDoc":{"properties":{"payload_bytes_base64":{"type":"string"},"payload_json":{"type":"string"},"standard":{"enum":["raw_ed25519","nep413","erc191","tip191","sep53","ton_connect"],"type":"string"}},"type":"object"},"controllers.executionQuoteDoc":{"properties":{"amount":{"type":"string"},"amountIn":{"type":"string"},"amountInUsd":{"type":"string"},"amountOut":{"type":"string"},"amountOutUsd":{"type":"string"},"deadline":{"type":"string"},"depositAddress":{"type":"string"},"depositMemo":{"type":"string"},"destinationAsset":{"type":"string"},"minAmountIn":{"type":"string"},"minAmountOut":{"type":"string"},"originAsset":{"type":"string"},"recipient":{"type":"string"},"swapType":{"enum":["EXACT_INPUT","EXACT_OUTPUT"],"type":"string"}},"type":"object"},"controllers.executionStepEVMDoc":{"properties":{"functionSignature":{"description":"FunctionSignature is the Solidity signature the backend ABI-encodes parameters against, with\ntuples written in parentheses, e.g. supply(address,uint256,address,uint16). Empty or \"native\"\nmakes a plain value transfer with no calldata and empty parameters.","type":"string"},"metadata":{"additionalProperties":{},"type":"object"},"parameters":{"description":"Parameters are the call arguments in signature order as JSON values. Integers are decimal\nstrings, 0x-hex strings or JSON integers, addresses and bytes are 0x-hex strings, bools are\nJSON bools, and tuples and arrays are JSON arrays. A string equal to a placeholder is substituted\nat request time - {MIN_AMOUNT_OUT} (bridge-in only) with the post-fee minimum destination\namount, {AMOUNT_IN} (out-operation with EXACT_OUTPUT only) with the origin amount the step must\nproduce, and {DEPOSIT_ADDRESS} (out-operation only) with the 1click deposit address the step\ntransfers to.","items":{},"type":"array"},"to":{"description":"To is the call target, a 0x-prefixed 40-hex-char address, or {DEPOSIT_ADDRESS} for a native\ntransfer to the deposit address on an out-operation. Steps run in order as calls from the intermediary.","type":"string"},"value":{"description":"Value is the native amount in wei sent with the call, as a decimal string. The amount\nplaceholders from parameters apply here too.","type":"string"}},"type":"object"},"controllers.errorResponse":{"properties":{"error":{"type":"string"}},"type":"object"}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.intents.aurora.dev/api-reference/intents-connect-api-reference/request-steps-execution.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
