The Enso Shortcuts system offers two powerful APIs for building DeFi workflows:
- Automated Routing: The POST
shortcuts/route
API calculates optimized multi-step paths for entering/exiting DeFi positions or swapping ERC20 tokens. It automatically creates a path between two positions specified in the request.
- Bundling DeFi Actions: The POST
shortcuts/bundle
API lets you orchestrate DeFi workflows by composing multi-step sequences of Actions of your choosing.
Both APIs return a transaction object with calldata representing your workflow, ready to be submitted to EnsoShortcutRouter
for execution.
The following examples are on Ethereum (chainID=1).
1. Automated Routing
The POST route
API is suitable for single-path operations with automatic optimization.
Token Swaps
Optimize conversions between tokens by leveraging automated routing across DEXs.
Example: Swapping 1 ETH to USDC with the best execution price and 0.5% slippage
- Input: 1 ETH
- Slippage: 0.5%
- Output: USDC worth of 1 ETH
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"],
"tokenOut": ["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],
"amountIn": ["1000000000000000000"],
"slippage": "50"
}' | jq
Multi-Token Deposits
Deposit multiple tokens simultaneously into a liquidity pool to receive LP tokens in a single transaction.
Example: Depositig 10 DAI + 10 USDC + 10 USDT to 3Crv LP tokens (Curve 3pool) in one step
- Input: 10 DAI, 10 USDC, 10 USDT
- Slippage: 0.5%
- Output: 3Crv LP tokens
const routeData = await client.getRouteData({
chainId: 1,
fromAddress: "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
receiver: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", // Optional: Receiver
routingStrategy: "delegate",
tokenIn: [
"0x6B175474E89094C44Da98b954EedeAC495271d0F", // DAI
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
"0xdAC17F958D2ee523a2206206994597C13D831ec7", // USDT
],
tokenOut: [
"0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490", // 3Crv LP token
],
amountIn: [
"10000000000000000000", // 10 DAI (18 decimals)
"10000000", // 10 USDC (6 decimals)
"10000000", // 10 USDT (6 decimals)
],
});
LST Staking Entry
Transform base tokens directly into staked liquid staking positions with a single call.
Example: Converting 1 ETH to stETH (Lido Staked ETH) in one step
- Input: 1 ETH
- Slippage: 0.5%
- Output: stETH
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"],
"tokenOut": ["0xae7ab96520de3a18e5e111b5eaab095312d7fe84"],
"amountIn": ["1000000000000000000"],
"slippage": "50"
}' | jq
Yield Position Entry
Enter yield-generating positions from base assets.
Example: Moving from 1 WETH to a Yearn vault (yvWETH)
- Input: 1 WETH
Output: yvWETH (exact amount depends on the vault’s share price)
- Slippage: 0.5%
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],
"tokenOut": ["0xa258c4606ca8206d8aa700ce2143d7db854d168c"],
"amountIn": ["1000000000000000000"],
"slippage": "50"
}' | jq
Position Exit (Single Token)
Exit completely from a DeFi position back to a single base token.
Example: Converting 1 yvWETH (Yearn ETH vault) back to WETH
- Input: 1 yvWETH
- Output: WETH (actual amount depends on accrued yield)
- Slippage: 0.5%
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xa258c4606ca8206d8aa700ce2143d7db854d168c"],
"tokenOut": ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],
"amountIn": ["1000000000000000000"],
"slippage": "50"
}'
LP Position Entry
Enter into LP token positions with automatic routing and slippage protection.
Example: Going from 1 ETH to ETH/USDC Uniswap LP tokens
- Output: ~0.92 ETH/USDC LP tokens (varies with pool composition)
- Slippage: 1%
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"],
"tokenOut": ["0x06325440d014e39736583c165c2963ba99faf14e"],
"amountIn": ["1000000000000000000"],
"slippage": "100"
}' | jq
Zap into a Morpho Blue Vault
Zap a Morpho USDC vault position, represented by 0xc1fc3492f7b9c64871389d2a223eef6ccc165fb0
.
Example: Going from 1 ETH to Morpho USDC position
- Output: Morpho Blue USDC vault tokens
- Slippage: 3%
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 1e02632d-6feb-4a75-a157-documentation" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"amountIn": ["1000000000000000000"],
"slippage": "300",
"tokenIn": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"],
"tokenOut": ["0xBEeFFF209270748ddd194831b3fa287a5386f5bC"],
"routingStrategy": "router"
}' \
"https://api.enso.finance/api/v1/shortcuts/route" \
| jq
Simple LST Zapping
Direct entry into or exit from liquid staking tokens.
Example: Converting 1 stETH back to ETH
- Input: 1 stETH (Lido Staked ETH)
- Output: ETH (varies with current discount/premium)
- Slippage: 1%
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/route' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '{
"chainId": 1,
"fromAddress": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"routingStrategy": "router",
"receiver": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"spender": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenIn": ["0xae7ab96520de3a18e5e111b5eaab095312d7fe84"],
"tokenOut": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"],
"amountIn": ["1000000000000000000"],
"slippage": "100"
}' | jq
Note: Limited to simple LST interactions without complex staking steps. Use Bundle API for multi-step LST staking flows.
2. Bundling DeFi Actions
The Bundle API (POST /v1/shortcuts/bundle
) excels at orchestrating complex sequences of operations.
Multi-Position Entry
Splitting funds across several positions simultaneously
Example: Distributing 1 ETH into three LST tokens in one transaction
- Input: 1 ETH
- Slippage: 1% for each conversion
- Outputs:
- stETH (Lido Staked ETH)
- rETH (Rocket Pool ETH)
- cbETH (Coinbase Staked ETH)
- Process:
- Convert 1/3 ETH (0.333 ETH) to stETH
- Convert 1/3 ETH (0.333 ETH) to rETH
- Convert 1/3 ETH (0.334 ETH) to cbETH
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
"amountIn": "333000000000000000",
"slippage": "100"
}
},
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0xae78736cd615f374d3085123a210448e74fc6393",
"amountIn": "333000000000000000",
"slippage": "100"
}
},
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0xbe9895146f7af43049ca1c1ae358b0541ea49704",
"amountIn": "334000000000000000",
"slippage": "100"
}
}
]' | jq
Staking Pipeline
Chain multiple actions together to create a complete Curve LP staking workflow.
Example: Creating a staked Curve 3pool position starting with 1 ETH
- Input: 1 ETH
- Final Output: 3pool LP tokens staked in Curve gauge
- Process:
- Swap 1 ETH to USDC
- Deposit USDC into Curve 3pool to get 3pool LP tokens
- Stake 3pool LP tokens in the Curve gauge
curl -X 'POST' \
"https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate" \
-H 'accept: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-H 'Content-Type: application/json' \
-d '[
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amountIn": '1000000000000000000',
"slippage": "300"
}
},
{
"protocol": "curve",
"action": "deposit",
"args": {
"tokenIn": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"tokenOut": "0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490",
"amountIn": {
"useOutputOfCallAt": 0
},
"primaryAddress": "0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7"
}
},
{
"protocol": "curve-gauge",
"action": "deposit",
"args": {
"tokenIn": "0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490",
"tokenOut": "0xbFcF63294aD7105dEa65aA58F8AE5BE2D9d0952A",
"amountIn": {
"useOutputOfCallAt": 1
},
"primaryAddress": "0xbFcF63294aD7105dEa65aA58F8AE5BE2D9d0952A"
}
}
]' | jq
Portfolio Rebalancing
Adjusting position sizes across multiple protocols.
Example: Rebalancing from 70% ETH/30% USDC to 50% ETH/50% USDC across Aave positions
- Input: 0.6 WETH (for reallocation)
- Output:
- 0.4 WETH deposited to Aave (aWETH)
- ~$580 USDC (from 0.2 WETH) deposited to Aave (aUSDC)
- Process:
- Convert 0.2 WETH to USDC
- Deposit 0.4 WETH into Aave (aWETH position)
- Deposit the acquired USDC into Aave (aUSDC position)
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amountIn": "200000000000000000",
"slippage": "100"
}
},
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8",
"amountIn": "400000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"tokenOut": "0xbcca60bb61934080951369a648fb03df4f96263c",
"amountIn": {
"useOutputOfCallAt": 0
},
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
}
]' | jq
Position Migration
Moving from one protocol to another
Example: Migrating 1 aWETH from Aave to Compound’s cETH
- Input: 1 aWETH (Aave WETH)
- Output: cETH (Compound ETH)
- Process:
- Withdraw 1 WETH from Aave by redeeming aWETH
- Unwrap WETH to ETH
- Deposit ETH into Compound to get cETH
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "aave-v3",
"action": "redeem",
"args": {
"tokenIn": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8",
"tokenOut": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"amountIn": "1000000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "wrapped-native",
"action": "redeem",
"args": {
"tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"amountIn": {
"useOutputOfCallAt": 0
},
"primaryAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
},
{
"protocol": "compound-v2",
"action": "deposit",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0x4ddc2d193948926d02f9b1fe9e1daa0718270ed5",
"amountIn": {
"useOutputOfCallAt": 1
},
"primaryAddress": "0x4ddc2d193948926d02f9b1fe9e1daa0718270ed5"
}
}
]' | jq
Leveraged Positions
Creating leveraged positions through multiple actions
Example: Creating a 2x ETH position using Aave
- Input: 1 WETH initial collateral
- Final Result: WETH worth of collateral in Aave
- Process:
- Deposit 1 WETH as collateral in Aave
- Borrow ~1,000 USDC against the WETH collateral
- Swap the borrowed 1,000 USDC back to ~0.35 WETH
- Deposit the additional WETH back into Aave as more collateral
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8",
"amountIn": "1000000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "borrow",
"args": {
"collateral": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amountOut": "1000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"tokenOut": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"amountIn": {
"useOutputOfCallAt": 1
},
"slippage": "100"
}
},
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOut": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8",
"amountIn": {
"useOutputOfCallAt": 2
},
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
}
]' | jq
Zap into multiple LPs
Multi-step entry into or exit from liquid staking tokens with additional operations.
Example: Creating diversified LP and LST positions with 1 ETH
- Input: 1 ETH split evenly
- Slippage: 3% for each conversion
- Process:
- Convert 0.5 ETH to stETH/ETH Curve LP tokens
- Convert 0.5 ETH to BAL/WETH Balancer LP tokens
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0x06325440D014e39736583c165C2963BA99fAf14E",
"amountIn": "500000000000000000",
"slippage": "300"
}
},
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"tokenOut": "0x5c6Ee304399DBdB9C8Ef030aB642B10820DB8F56",
"amountIn": "500000000000000000",
"slippage": "300"
}
}
]' | jq
Yield Compounding Flow
Automate yield compounding by harvesting rewards, swapping, and redepositing in a single transaction.
Example: Compounding Curve gauge rewards back into the stETH/ETH pool
- Input: Existing position in stETH/ETH Curve gauge
- Slippage: 3%
- Process:
- Harvest accumulated wstETH rewards from the Curve gauge
- Convert wstETH rewards to stETH
- Deposit stETH back into the stETH/ETH Curve pool
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate&receiver=0xd8da6bf26964af9d7eed9e03e53415d37aa96045' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "curve-gauge",
"action": "harvest",
"args": {
"token": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
"primaryAddress": "0x182B723a58739a9c974cFDB385ceaDb237453c28"
}
},
{
"protocol": "enso",
"action": "route",
"args": {
"tokenIn": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
"tokenOut": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
"amountIn": { "useOutputOfCallAt": 0 },
"slippage": "300"
}
},
{
"protocol": "curve",
"action": "deposit",
"args": {
"tokenIn": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
"tokenOut": "0x06325440d014e39736583c165c2963ba99faf14e",
"amountIn": { "useOutputOfCallAt": 1 },
"primaryAddress": "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022"
}
}
]
' | jq
Liquid Staking Derivative Looping
Create a leveraged position with liquid staking tokens through recursive borrowing and depositing in a lending protocol.
Example: Implement a multi-loop leveraged position on Lido Staked ETH (wstETH) using Aave V3 as the lending platform.
- Input: 10 wstETH
- Final Result: ~18.32 wstETH deposited with ~8.32 wstETH borrowed (1.83x leverage)
- Process:
- Deposit 10 wstETH as collateral into Aave V3
- Borrow 5.4 wstETH against your deposited collateral
- Deposit the borrowed wstETH back as additional collateral
- Borrow 2.916 wstETH against your increased collateral
- Deposit this amount back again as additional collateral
curl -X POST \
'https://api.enso.finance/api/v1/shortcuts/bundle?chainId=1&fromAddress=0xd8da6bf26964af9d7eed9e03e53415d37aa96045&routingStrategy=delegate' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ENSO_API_KEY" \
-d '[
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"tokenOut": "0x0B925eD163218f6662a35E0F0371Ac234F9E9371",
"amountIn": "10000000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "borrow",
"args": {
"collateral": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"tokenOut": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"amountOut": "5400000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"tokenOut": "0x0B925eD163218f6662a35E0F0371Ac234F9E9371",
"amountIn": "5400000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "borrow",
"args": {
"collateral": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"tokenOut": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"amountOut": "2916000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
},
{
"protocol": "aave-v3",
"action": "deposit",
"args": {
"tokenIn": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"tokenOut": "0x0B925eD163218f6662a35E0F0371Ac234F9E9371",
"amountIn": "2916000000000000000",
"primaryAddress": "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2"
}
}
]' | jq