Deframe
  • 🏠Getting Started
  • 🏗️Architecture Overview
  • Tutorial Guides
    • Loans
      • How to quote for a new loan
      • How to execute a new loan
      • How to get current position of a loan
      • How to repay a loan
    • Yield
      • How to check protocol info
      • How to deposit
      • How to check open positions
      • How to withdraw
    • Swaps
      • EVM
        • How to execute a swap
        • How to get a quote
      • Solana
        • How to execute a swap
        • How to get a quote
  • ⚙️API
    • GET /strategies
    • GET /strategies/:id
    • GET /strategies/:id/bytecode
    • GET /wallets/:address
  • 🔒Protocols
  • 🗳️Widget Integration
Powered by GitBook
On this page
  • Prerequisites
  • A) Protocol-Specific Approach (Explicit)
  • B) Protocol-Agnostic Approach (Less Explicit)
  • Next Steps
  1. Tutorial Guides
  2. Swaps
  3. EVM

How to execute a swap

PreviousEVMNextHow to get a quote

Last updated 2 months ago

In this section, you'll learn how to request ready-to-use transaction data (bytecode) for executing a token swap.

Prerequisites

As in the section, you can choose either the explicit path or the protocol-agnostic (less explicit) path to get the transaction data.

A) Protocol-Specific Approach (Explicit)

Use this when you want to work with a specific DEX protocol.

  1. Request Transaction Data Fetch specific protocol information using:

    GET /strategies/:id/bytecode

    Required Parameters:

    Parameter
    Description
    Example

    action

    Type of operation

    swap

    chainId

    Blockchain network ID

    137 (Polygon)

    protocol

    Protocol name

    uniswap

    fromToken

    Token to swap from

    ETH

    toToken

    Token to swap to

    USDC

    amountIn

    Input amount

    1000000000000000000 (1 ETH with decimals)

    amountOut

    Output amount

    1820450000 (1820.45 USDC with decimals)

    slippage

    Maximum price slippage

    0.5 (0.5% slippage tolerance)

    deadline

    Transaction deadline

    1800 (30 minutes in seconds)

    Example Request:

    GET /strategies/3341412233111/bytecode?action=swap&chainId=137&protocol=uniswap&fromToken=ETH&toToken=USDC&amountIn=1000000000000000000&amountOut=1820450000&slippage=0.5&deadline=1800

    Response:

    {
     "bytecode": [
        {
            "to": "0x794a61358D6845594F94dc1DB02A252b5b4814aD",
            "value": "1000000000000000000",
            "data": "0xe8eda9df0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c33590000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000"
        }
     ]
    }

Our API returns the transaction data as an object containing to, value, and data fields.

B) Protocol-Agnostic Approach (Less Explicit)

Let our system automatically select the optimal protocol for your needs.

  1. Use the Generic Endpoint

    GET /strategies/0x0/bytecode

    Use the same parameters as above, excluding protocol.

    Example Request:

    GET /strategies/0x0/bytecode?action=swap&chainId=137&fromToken=ETH&toToken=USDC&amountIn=1000000000000000000&amountOut=1820450000&slippage=0.5&deadline=1800

    Response:

    {
     "bytecode": [
        {
            "to": "0x794a61358D6845594F94dc1DB02A252b5b4814aD",
            "value": "1000000000000000000",
            "data": "0xe8eda9df0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c33590000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000"
        }
     ]
    }
  2. Execute the Transaction You'll need to sign and propagate the transaction data to the blockchain. This happens on your end - we don't touch your funds, custody remains yours.

Next Steps

After executing the swap, you can:

How to Get a Quote
How to Get a Quote
Get Another Quote