POST
/
base
/
execute
curl --location 'https:api.fibrous.finance/base/execute' \
--header 'Content-Type: application/json' \
--data '{"route": {
        "success": true,
        "routeSwapType": 0,
        "inputToken": {
            "name": "Wrapped Ether",
            "address": "0x4200000000000000000000000000000000000006",
            "decimals": 18,
            "price": 4729.31
        },
        "inputAmount": "100000000000000000",
        "outputToken": {
            "name": "USD Base Coin",
            "address": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "decimals": 6,
            "price": 0.999727
        },
        "outputAmount": "471974940",
        "route": [
            {
                "percent": "100%",
                "swaps": [
                    [
                        {
                            "protocol": 5,
                            "poolName": "Uniswap V3",
                            "poolAddress": "0x4c36388be6f416a29c8d8eee81c771ce6be14b18",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "83%",
                            "extraData": {
                                "fee": 500
                            }
                        },
                        {
                            "protocol": 5,
                            "poolName": "Uniswap V3",
                            "poolAddress": "0x3ddf264ac95d19e81f8c25f4c300c4e59e424d43",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "10%",
                            "extraData": {
                                "fee": 3000
                            }
                        },
                        {
                            "protocol": 9,
                            "poolName": "PancakeSwap V3",
                            "poolAddress": "0xe58b73ff901325b8b2056b29712c50237242f520",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "7%",
                            "extraData": {
                                "fee": 500
                            }
                        }
                    ]
                ]
            }
        ],
        "estimatedGasUsed": "1108171899576",
        "estimatedGasUsedInUsd": 0.010410898218070664,
        "bestQuotesByProtocols": [],
        "time": 0.654,
        "initial": true
    },
"slippage":0.1,
"destination":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}'
{
    "route": {
        "token_in": "0x4200000000000000000000000000000000000006",
        "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
        "amount_in": "100000000000000000",
        "amount_out": "471974940",
        "min_received": "471502966",
        "destination": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
        "swap_type": 0
    },
    "swap_parameters": [
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "830000",
            "protocol_id": "5",
            "pool_address": "0x4c36388be6f416a29c8d8eee81c771ce6be14b18",
            "swap_type": 0,
            "extra_data": "0x00000000000000000000000000000000000000000000000000000000000001f4"
        },
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "100000",
            "protocol_id": "5",
            "pool_address": "0x3ddf264ac95d19e81f8c25f4c300c4e59e424d43",
            "swap_type": 0,
            "extra_data": "0x0000000000000000000000000000000000000000000000000000000000000bb8"
        },
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "70000",
            "protocol_id": "9",
            "pool_address": "0xe58b73ff901325b8b2056b29712c50237242f520",
            "swap_type": 0,
            "extra_data": "0x00000000000000000000000000000000000000000000000000000000000001f4"
        }
    ]
}

Endpoint

https://api.fibrous.finance/base/execute
Execute a token swap using the optimal route previously found through the route endpoint. This endpoint handles the actual transaction execution and ensures the swap is performed with the best possible outcome.

Request Body Parameters

route
RouteResponse
required
The route object returned from the /base/route endpoint. This contains all necessary information about the swap path and expected outcomes.
slippage
number
default:"0.5"
required
Maximum acceptable slippage in percentage (0.1 to 100). Example: 0.5 for 0.5% slippage tolerance
destination
string
required
Unix timestamp (in seconds) after which the transaction will revert. Defaults to 20 minutes from the current time if not specified.

Response

route
object
The executed route details.
swap_parameters
object[]
Swap parameters for every hop in the route.

Error Responses

Route Expired

{
  "success": false,
  "error": "Route expired",
  "details": "The provided route has expired. Please fetch a new route."
}

Slippage Exceeded

{
  "success": false,
  "error": "Slippage exceeded",
  "details": "The swap would result in more slippage than allowed"
}

Insufficient Balance

{
  "success": false,
  "error": "Insufficient balance",
  "details": "Wallet does not have enough tokens for the swap"
}

Invalid Deadline

{
  "success": false,
  "error": "Invalid deadline",
  "details": "Deadline must be a future timestamp"
}
curl --location 'https:api.fibrous.finance/base/execute' \
--header 'Content-Type: application/json' \
--data '{"route": {
        "success": true,
        "routeSwapType": 0,
        "inputToken": {
            "name": "Wrapped Ether",
            "address": "0x4200000000000000000000000000000000000006",
            "decimals": 18,
            "price": 4729.31
        },
        "inputAmount": "100000000000000000",
        "outputToken": {
            "name": "USD Base Coin",
            "address": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "decimals": 6,
            "price": 0.999727
        },
        "outputAmount": "471974940",
        "route": [
            {
                "percent": "100%",
                "swaps": [
                    [
                        {
                            "protocol": 5,
                            "poolName": "Uniswap V3",
                            "poolAddress": "0x4c36388be6f416a29c8d8eee81c771ce6be14b18",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "83%",
                            "extraData": {
                                "fee": 500
                            }
                        },
                        {
                            "protocol": 5,
                            "poolName": "Uniswap V3",
                            "poolAddress": "0x3ddf264ac95d19e81f8c25f4c300c4e59e424d43",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "10%",
                            "extraData": {
                                "fee": 3000
                            }
                        },
                        {
                            "protocol": 9,
                            "poolName": "PancakeSwap V3",
                            "poolAddress": "0xe58b73ff901325b8b2056b29712c50237242f520",
                            "fromTokenAddress": "0x4200000000000000000000000000000000000006",
                            "toTokenAddress": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
                            "percent": "7%",
                            "extraData": {
                                "fee": 500
                            }
                        }
                    ]
                ]
            }
        ],
        "estimatedGasUsed": "1108171899576",
        "estimatedGasUsedInUsd": 0.010410898218070664,
        "bestQuotesByProtocols": [],
        "time": 0.654,
        "initial": true
    },
"slippage":0.1,
"destination":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}'
{
    "route": {
        "token_in": "0x4200000000000000000000000000000000000006",
        "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
        "amount_in": "100000000000000000",
        "amount_out": "471974940",
        "min_received": "471502966",
        "destination": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
        "swap_type": 0
    },
    "swap_parameters": [
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "830000",
            "protocol_id": "5",
            "pool_address": "0x4c36388be6f416a29c8d8eee81c771ce6be14b18",
            "swap_type": 0,
            "extra_data": "0x00000000000000000000000000000000000000000000000000000000000001f4"
        },
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "100000",
            "protocol_id": "5",
            "pool_address": "0x3ddf264ac95d19e81f8c25f4c300c4e59e424d43",
            "swap_type": 0,
            "extra_data": "0x0000000000000000000000000000000000000000000000000000000000000bb8"
        },
        {
            "token_in": "0x4200000000000000000000000000000000000006",
            "token_out": "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca",
            "rate": "70000",
            "protocol_id": "9",
            "pool_address": "0xe58b73ff901325b8b2056b29712c50237242f520",
            "swap_type": 0,
            "extra_data": "0x00000000000000000000000000000000000000000000000000000000000001f4"
        }
    ]
}

Best Practices

  1. Route Freshness
    • Always use a fresh route from the /base/route endpoint
    • Routes can become stale due to market movements
    • Implement retry logic with fresh routes if execution fails
  2. Slippage Management
    • Set appropriate slippage tolerance based on:
      • Token pair volatility
      • Trade size
      • Market conditions
    • Higher values increase success rate but may result in worse prices
    • Lower values ensure better prices but may cause more failed transactions
  3. Deadline Setting
    • Set reasonable deadlines to prevent stale transactions
    • Consider network congestion when setting deadlines
    • Default of 20 minutes is suitable for most cases
  4. Gas Optimization
    • Monitor gasUsed in responses to optimize future transactions
    • Consider using direct routes for major pairs
    • Bundle multiple swaps if possible

See Also