Routing Strategy Examples
delegate (other wallets)
Enter multiple positions from 1 token

Enter multiple positions from 1 token

💡

When using a Smart Wallet, there's no need for token approvals!

In this example, we have a smart wallet (e.g. Gnosis Safe, Enso Smart Wallet) that is holding [3 WETH (opens in a new tab) and wants to:

Set Smart-wallet address

💡

If you know your smart wallet address, you can skip this step.

You will need to set the smart wallet address in the fromAddress field. If you are using an Enso Smart Wallet, and don't remember the address you can fetch using the metadata API (command below). If you know your address or you are using another smart wallet such as Safe, you can skip to the next step.

curl -X 'GET' \
  -H "Accept: application/json" \
  "https://api.enso.finance/api/v1/wallet?chainId=1&fromAddress=<EOA_ADDRESS>" \

It returns the following:

{
  "address": "0xD6A4217CF6A3587B4E33e9a59C52BF57469e713a", // Enso Smart Wallet Address
  "isDeployed": true
}

Step 2: Execute

Execute: Build actions

We are using the Route action inside of the Bundle endpoint as this action compares the best execution route for token amount out, and gas execution price. For example, it might be better to purchase yvWETH on a secondary exchange than directly depositing it depending upon the exchange rate of that token on the secondary market.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 1e02632d-6feb-4a75-a157-documentation" \
  --data '[
  {
    "protocol": "enso",
    "action": "route",
    "args": {
      "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "tokenOut": "0xa258C4606Ca8206D8aA700cE2143D7db854D168c",
      "amountIn": "1000000000000000000"
    }
  },
  {
    "protocol": "enso",
    "action": "route",
    "args": {
      "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "tokenOut": "0x5c6ee304399dbdb9c8ef030ab642b10820db8f56",
      "amountIn": "1000000000000000000"
    }
  },
  {
    "protocol": "enso",
    "action": "route",
    "args": {
      "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "tokenOut": "0xe0d5f9da3613c047003b77caa31270abe3eda6b0",
      "amountIn": "1000000000000000000"
    }
  }
]' \
  "https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xD6A4217CF6A3587B4E33e9a59C52BF57469e713a"
 

You will be returned:

{
  "chainId": 1,
  "createdAt": 17707569,
  "bundle": [
    {
      "protocol": "enso",
      "action": "route",
      "args": {
        "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "tokenOut": "0xa258C4606Ca8206D8aA700cE2143D7db854D168c",
        "amountIn": "1000000000000000000"
      }
    },
    {
      "protocol": "enso",
      "action": "route",
      "args": {
        "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "tokenOut": "0xe0d5f9da3613c047003b77caa31270abe3eda6b0",
        "amountIn": "1000000000000000000"
      }
    },
    {
      "protocol": "enso",
      "action": "route",
      "args": {
        "tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "tokenOut": "0x6b175474e89094c44da98b954eedeac495271d0f",
        "amountIn": "1000000000000000000"
      }
    }
  ],
  "tx": {
    "data": "0xffa2ca3b2475e18fa8e2b6e9278146d2d1dfee8bf7e3cf6fb96a890fb6142c45f762b0b6000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000001a70a082310100ffffffffff0da258c4606ca8206d8aa700ce2143d7db854d168c095ea7b3010102ffffffffffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2b6b55f250102ffffffffffffa258c4606ca8206d8aa700ce2143d7db854d168c70a082310100ffffffffff01a258c4606ca8206d8aa700ce2143d7db854d168cb67d77c501010dffffffff01ca99eaa38e8f37a168214a3a57c9a45a58563ed56e7a43a3010103ffffffff017e7d64d987cab6eed08a191c4c2459daf2f8ed0b241c59120101ffffffffffff7e7d64d987cab6eed08a191c4c2459daf2f8ed0b70a082310100ffffffffff0132296969ef14eb0c6d29669c550d4a0449130230095ea7b3010402ffffffffffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2b95cac280105000086ffffffba12222222228d8ba445958a75a0704d566bf2c870a082310100ffffffffff0632296969ef14eb0c6d29669c550d4a0449130230b67d77c5010601ffffffff06ca99eaa38e8f37a168214a3a57c9a45a58563ed570a082310100ffffffffff01e0d5f9da3613c047003b77caa31270abe3eda6b0095ea7b3010706ffffffffff32296969ef14eb0c6d29669c550d4a0449130230b6b55f250106ffffffffffffe0d5f9da3613c047003b77caa31270abe3eda6b070a082310100ffffffffff06e0d5f9da3613c047003b77caa31270abe3eda6b0b67d77c5010601ffffffff06ca99eaa38e8f37a168214a3a57c9a45a58563ed56e7a43a3010608ffffffff067e7d64d987cab6eed08a191c4c2459daf2f8ed0b241c59120106ffffffffffff7e7d64d987cab6eed08a191c4c2459daf2f8ed0b70a082310100ffffffffff066b175474e89094c44da98b954eedeac495271d0f095ea7b3010902ffffffffffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc219198595a30a8bffffffffffdef1c0ded9bec7f1a1670819833240f027b25eff70a082310100ffffffffff006b175474e89094c44da98b954eedeac495271d0fb67d77c5010006ffffffff00ca99eaa38e8f37a168214a3a57c9a45a58563ed56e7a43a301000cffffffff007e7d64d987cab6eed08a191c4c2459daf2f8ed0b241c59120100ffffffffffff7e7d64d987cab6eed08a191c4c2459daf2f8ed0b000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000005c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d6a4217cf6a3587b4e33e9a59c52bf57469e713a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a258c4606ca8206d8aa700ce2143d7db854d168c00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000cedeb17c8c74fb20000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8000000000000000000000000000000000000000000000000000000000000002032296969ef14eb0c6d29669c550d4a04491302300002000000000000000000800000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000cfcb97e8345b255000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e0d5f9da3613c047003b77caa31270abe3eda6b000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000c8b0c6894a5241a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001486af479b200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000065def525246d440ba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f4a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000646b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000000000869584cd00000000000000000000000010000000000000000000000000000000000000110000000000000000000000000000000000000000000000b29fe7fa7664b433e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000065def54241c289beae0000000000000000000000000000000000000000000000000000000000000000",
    "to": "0x7fEA6786D291A87fC4C98aFCCc5A5d3cFC36bc7b",
    "from": "0x57757E3D981446D585Af0D9Ae4d7DF6D64647806",
    "value": "0",
    "chainId": 1
  }
}

The data value contains the bundle calldata to be submitted to the user.