---
title: "Populate an advanced route step transaction"
method: POST
path: "/v1/advanced/stepTransaction"
tags: ["Advanced"]
---

# Populate an advanced route step transaction

`POST /v1/advanced/stepTransaction`

Re-quotes the selected step and returns executable transaction data. For later steps, pass the actual previous step output as `context.previousStepReceivedAmount`.

## Headers

- `x-api-key` string

## Request body

- AdvancedStepTransactionRequestDto
  - `step` AdvancedRouteStepDto, required
    - `id` string, required
    - `routeId` string, required
    - `type` 'swap' | 'bridge', required
    - `tool` string, required
    - `action` AdvancedStepActionDto, required
      - `fromChainId` number, required
      - `toChainId` number, required
      - `fromToken` AdvancedTokenRefDto, required
        - `address` string, required
        - `symbol` string, required
        - `decimals` number, required
        - `chainId` number, required
      - `toToken` AdvancedTokenRefDto, required
        - `address` string, required
        - `symbol` string, required
        - `decimals` number, required
        - `chainId` number, required
      - `fromAmount` string, required
      - `slippage` number
      - `fromAddress` string
      - `toAddress` string
    - `estimate` AdvancedStepEstimateDto, required
      - `fromAmount` string, required
      - `quoteFromAmount` string
      - `toAmount` string, required
      - `toAmountMin` string, required
      - `estimatedTimeSec` number
      - `fees` ParsedFeesDto, required
        - `total` ParsedFeesTotalCurrencyDto, required
          - `amount` string, required
          - `currencySymbol` string, required
          - `currencyAddress` string, required
          - `chainId` number, required
          - `decimals` number
        - `breakdown` ParsedFeesBreakdownItemDto[], required
          - `amount` string, required
          - `currencySymbol` string, required
          - `currencyAddress` string, required
          - `chainId` number, required
          - `decimals` number
          - `type` 'gas' | 'relayer' | 'relayerGas' | 'relayerService' | 'capital' | 'lp' | 'app' | 'total', required
          - `amountUsd` string
        - `totalUsd` string
      - `approvalAddress` string
      - `simulatedToAmount` string
      - `simulation` SimulationDto
        - `source` 'TENDERLY' | 'RPC' | 'SOLANA_RUNTIME' | 'NONE', required
        - `executionStatus` 'SUCCESS' | 'REVERTED' | 'TIMEOUT' | 'SKIPPED' | 'UNSUPPORTED' | 'ERROR', required
        - `outputValidation` 'VERIFIED' | 'UNVERIFIABLE' | 'NOT_SIMULATED', required
        - `simulatedOutputAmount` string
        - `advertisedOutputAmount` string, required
        - `deviation` SimulationDeviationDto
          - `absolute` string, required — Simulated output minus advertised output in raw units.
          - `bps` number, required — Signed basis points. Negative means the adapter overstated output.
          - `percent` string, required
        - `gasUsed` string
        - `reason` string
        - `latencyMs` number, required
        - `providerResults` SimulationProviderResultDto[], required
          - `source` 'TENDERLY' | 'RPC' | 'SOLANA_RUNTIME' | 'NONE', required
          - `executionStatus` 'SUCCESS' | 'REVERTED' | 'TIMEOUT' | 'SKIPPED' | 'UNSUPPORTED' | 'ERROR', required
          - `outputValidation` 'VERIFIED' | 'UNVERIFIABLE' | 'NOT_SIMULATED', required
          - `simulatedOutputAmount` string
          - `deviation` SimulationDeviationDto
            - `absolute` string, required — Simulated output minus advertised output in raw units.
            - `bps` number, required — Signed basis points. Negative means the adapter overstated output.
            - `percent` string, required
          - `gasUsed` string
          - `reason` string
          - `latencyMs` number, required
    - `integrator` string
    - `fee` number
    - `execution` AdvancedStepExecutionOptionsDto, required
      - `applyFee` boolean, required
      - `requiresPreviousStepAmount` boolean
      - `quoteRequest` object
      - `routeRequest` object
    - `warnings` QuoteWarningDto[]
      - `code` 'INTEGRATOR_SOLANA_WALLET_NOT_ACTIVATED_FEE_SKIPPED' | 'INTEGRATOR_WALLET_NOT_CONFIGURED_FEE_SKIPPED' | 'SOLANA_SYSTEM_ACCOUNT_SKIPPED' | 'SOLANA_INSUFFICIENT_BALANCE' | 'SOLANA_SIMULATION_FAILED', required
      - `message` string, required
    - `bridgeScan` BridgeScanMetadataDto
    - `transactionRequest` AdvancedTransactionRequestDto
      - `to` string, required
      - `data` string
      - `value` string, required
      - `gas` GasEstimationDto
        - `gasPrice` string
        - `maxFeePerGas` string
        - `maxPriorityFeePerGas` string
      - `transactionSize` object
        - `raw` number
        - `encoded` number
  - `context` AdvancedExecutionContextDto, required
    - `senderAddress` string, required — Wallet address that signs and submits this step.
    - `receiverAddress` string, required — Final receiver wallet address for the route.
    - `amountOverride` string — Optional manual input amount override for this live step quote.
    - `previousStepReceivedAmount` string — Actual output amount received from the previous step, in token base units. Use this for second and later steps so the next step is hydrated with the live received amount.
    - `slippage` number — Optional slippage override for this live step quote. `0.005` means 0.5%.

## Response `200`

Populated advanced step with executable transaction data.

- PopulatedAdvancedStepDto
  - `id` string, required
  - `routeId` string, required
  - `type` 'swap' | 'bridge', required
  - `tool` string, required
  - `action` AdvancedStepActionDto, required
    - `fromChainId` number, required
    - `toChainId` number, required
    - `fromToken` AdvancedTokenRefDto, required
      - `address` string, required
      - `symbol` string, required
      - `decimals` number, required
      - `chainId` number, required
    - `toToken` AdvancedTokenRefDto, required
      - `address` string, required
      - `symbol` string, required
      - `decimals` number, required
      - `chainId` number, required
    - `fromAmount` string, required
    - `slippage` number
    - `fromAddress` string
    - `toAddress` string
  - `estimate` AdvancedStepEstimateDto, required
    - `fromAmount` string, required
    - `quoteFromAmount` string
    - `toAmount` string, required
    - `toAmountMin` string, required
    - `estimatedTimeSec` number
    - `fees` ParsedFeesDto, required
      - `total` ParsedFeesTotalCurrencyDto, required
        - `amount` string, required
        - `currencySymbol` string, required
        - `currencyAddress` string, required
        - `chainId` number, required
        - `decimals` number
      - `breakdown` ParsedFeesBreakdownItemDto[], required
        - `amount` string, required
        - `currencySymbol` string, required
        - `currencyAddress` string, required
        - `chainId` number, required
        - `decimals` number
        - `type` 'gas' | 'relayer' | 'relayerGas' | 'relayerService' | 'capital' | 'lp' | 'app' | 'total', required
        - `amountUsd` string
      - `totalUsd` string
    - `approvalAddress` string
    - `simulatedToAmount` string
    - `simulation` SimulationDto
      - `source` 'TENDERLY' | 'RPC' | 'SOLANA_RUNTIME' | 'NONE', required
      - `executionStatus` 'SUCCESS' | 'REVERTED' | 'TIMEOUT' | 'SKIPPED' | 'UNSUPPORTED' | 'ERROR', required
      - `outputValidation` 'VERIFIED' | 'UNVERIFIABLE' | 'NOT_SIMULATED', required
      - `simulatedOutputAmount` string
      - `advertisedOutputAmount` string, required
      - `deviation` SimulationDeviationDto
        - `absolute` string, required — Simulated output minus advertised output in raw units.
        - `bps` number, required — Signed basis points. Negative means the adapter overstated output.
        - `percent` string, required
      - `gasUsed` string
      - `reason` string
      - `latencyMs` number, required
      - `providerResults` SimulationProviderResultDto[], required
        - `source` 'TENDERLY' | 'RPC' | 'SOLANA_RUNTIME' | 'NONE', required
        - `executionStatus` 'SUCCESS' | 'REVERTED' | 'TIMEOUT' | 'SKIPPED' | 'UNSUPPORTED' | 'ERROR', required
        - `outputValidation` 'VERIFIED' | 'UNVERIFIABLE' | 'NOT_SIMULATED', required
        - `simulatedOutputAmount` string
        - `deviation` SimulationDeviationDto
          - `absolute` string, required — Simulated output minus advertised output in raw units.
          - `bps` number, required — Signed basis points. Negative means the adapter overstated output.
          - `percent` string, required
        - `gasUsed` string
        - `reason` string
        - `latencyMs` number, required
  - `integrator` string
  - `fee` number
  - `execution` AdvancedStepExecutionOptionsDto, required
    - `applyFee` boolean, required
    - `requiresPreviousStepAmount` boolean
    - `quoteRequest` object
    - `routeRequest` object
  - `warnings` QuoteWarningDto[]
    - `code` 'INTEGRATOR_SOLANA_WALLET_NOT_ACTIVATED_FEE_SKIPPED' | 'INTEGRATOR_WALLET_NOT_CONFIGURED_FEE_SKIPPED' | 'SOLANA_SYSTEM_ACCOUNT_SKIPPED' | 'SOLANA_INSUFFICIENT_BALANCE' | 'SOLANA_SIMULATION_FAILED', required
    - `message` string, required
  - `bridgeScan` BridgeScanMetadataDto
  - `transactionRequest` AdvancedTransactionRequestDto, required
    - `to` string, required
    - `data` string
    - `value` string, required
    - `gas` GasEstimationDto
      - `gasPrice` string
      - `maxFeePerGas` string
      - `maxPriorityFeePerGas` string
    - `transactionSize` object
      - `raw` number
      - `encoded` number

## Other responses

- `400` — Invalid step payload or no quote for the selected step.
- `429` — Rate limit exceeded.

---

[API](https://skmtc.net/deloraprotocol/apis/delora-api.md) · [All operations](https://skmtc.net/deloraprotocol/apis/delora-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deloraprotocol/delora-api/revisions/99a03dcc3e3b/schema)
