This guide introduces a simple multi-chain workflow by using the /intent endpoint. It will:
  1. Unwind the users AAVE USDC position on Optimism (represented by aUSDC)
  2. Bridge the received USDC from Optimism to Base
  3. Supply to AAVE on Base (represented by aUSDC)
This can be done to move the AAVE position to a higher yielding chain. This entire action is expressed as a token transformation:
inputToken: aUSDC on Optimism
outputToken: aUSDC on Base
The Supertransaction API will query the integrators to find the optimal way to move a users AAVE position from one chain to another.

Choose Your Execution Mode

Select the mode that matches your application architecture:
When to Use: External wallets (MetaMask, WalletConnect)Key Benefit: One-click flow without smart account depositsPerfect for applications where users already have their assets in external wallets and want a simple transaction flow.

Integration Flexibility

The Supertransaction API only requires payload signing, making it compatible with:
  • Frontend applications - Direct wallet integration
  • Backend services - Programmatic execution
  • Mobile apps - Native or React Native
  • Any platform that can make API calls and sign messages

Complete Flow: aUSDC Optimism → Base

Step 1: Build Intent Instructions

First, we’ll use the /intent endpoint to create instructions for moving aUSDC from Optimism to Base:
curl -X POST https://api.biconomy.io/v1/instructions/intent \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "slippage": 0.003,
    "ownerAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "inputPositions": [{
      "chainToken": {
        "chainId": 10,
        "tokenAddress": "0x625E7708f30cA75bfd92586e17077590C60eb4cD"
      },
      "amount": "1000000000"
    }],
    "targetPositions": [{
      "chainToken": {
        "chainId": 8453,
        "tokenAddress": "0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB"
      },
      "weight": 1.0
    }]
  }'

Step 2: Generate Quote

Now generate a quote using your chosen execution mode:
curl -X POST https://api.biconomy.io/v1/mee/quote \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "mode": "eoa",
    "ownerAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "fundingTokens": [{
      "tokenAddress": "0x625E7708f30cA75bfd92586e17077590C60eb4cD",
      "chainId": 10,
      "amount": "1000000000"
    }],
    "instructions": [...]
  }'

Step 3: Sign Payloads

Sign the required payloads based on your quote type:
# Signing happens client-side - cannot be done via cURL
# You'll need to sign the payloads using your wallet
# and include signatures in the execute request

Step 4: Execute Transaction

Submit the signed quote for execution:
curl -X POST https://api.biconomy.io/v1/mee/execute \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "ownerAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "fee": {
      "amount": "10000000000000000",
      "token": "0x0000000000000000000000000000000000000000",
      "chainId": 8453
    },
    "quoteType": "permit",
    "quote": {...},
    "payloadToSign": [
      {
        ...originalPayload,
        "signature": "0x1234567890abcdef..."
      }
    ]
  }'

Decision Tree

Next Steps

Quick Tips

Frontend Integration: Use EOA mode for the simplest user experience with MetaMask
Backend Automation: Use EIP-7702 mode when you control the private keys
Mobile Apps: Any mode works - choose based on your wallet infrastructure