Skip to main content
Use this page when you need the exact names that appear in SDK configuration, request payloads, or runtime responses.
This page focuses on names exposed in the current shared interfaces and common runtime responses. Only lifi and aave are valid autoRouter defaults today.

Start with the common defaults

import { IllaSDK } from '@illalabs/sdk'

const sdk = new IllaSDK(
  { apiKey: process.env.ILLA_API_KEY! },
  {
    contextManagerOptions: {
      defaultToolsConfig: {
        autoRouter: {
          swapOrBridge: 'lifi',
          defi: { lending: 'aave' },
        },
      },
    },
  },
)
Use this as the baseline if you want explicit tool-routing defaults without overriding the rest of the SDK behavior.

Tool names

  • swap
  • bridge
  • exchangeRate
  • getWalletBalance
  • defiFetchListings
  • defiPositions
  • defiSupply
  • defiWithdraw
  • tokenTransfer
  • predictionMarketsFetch
  • predictionMarketsBet
  • predictionMarketsPositions
  • predictionMarketsRedeem
  • polymarketPostOrder
  • polymarketPostRedeem
These are the names you should expect in pendingTools, tool configs, and provider-specific docs.

Provider keys

  • lifi for swap/bridge
  • aave for DeFi supply/withdraw
  • duneSim for exchange-rate and wallet-balance simulation-backed responses
  • moralis for wallet-balance responses
  • coinMarketCap for exchange-rate responses
  • polymarket for prediction-market responses

Prediction-market redeem flow

Redeem support is a two-step tool sequence:
  1. predictionMarketsRedeem returns a signature request payload for Safe execution.
  2. polymarketPostRedeem submits the signed payload to the relayer.
If your integration executes pendingTools directly, ensure your executor supports signature request handling in addition to transaction handling.

Supported chains

These chains are currently enumerated in the shared interfaces:
ChainChain ID
Ethereum1
Polygon137
Optimism10
Base8453
Arbitrum42161
Avalanche43114
BSC56

Model selection

The SDK exposes model selection through modelContext, and the raw API exposes it through the languageModel request field. SDK example:
const result = await sdk.sendMessage(
  'What is my balance?',
  { userContext: { address: '0x1234...' } },
  {
    modelContext: {
      provider: 'openrouter',
      model: 'anthropic/claude-sonnet-4.5',
    },
  },
)
Raw API example:
curl -X POST https://api.illa.io/api/v1/chat \
  -H "x-api-key: $ILLA_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "messages": [],
    "userContext": { "address": "0x1234..." },
    "prompt": { "role": "user", "content": [{ "type": "text", "text": "What is my balance?" }] },
    "languageModel": "openrouter:anthropic/claude-sonnet-4.5"
  }'
Use the SDK form when you are calling sdk.sendMessage(...). Use the raw API form only if you are integrating directly with the HTTP API.

Async execution

For operations that continue after submission, use:
  • IllaSDK.awaitAction(...)
  • IllaSDK.subscribeToToolStatus(...)
  • GET /api/v1/actions/check