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.
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:
predictionMarketsRedeem returns a signature request payload for Safe execution.
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:
| Chain | Chain ID |
|---|
| Ethereum | 1 |
| Polygon | 137 |
| Optimism | 10 |
| Base | 8453 |
| Arbitrum | 42161 |
| Avalanche | 43114 |
| BSC | 56 |
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