Elsa x402 API
/install elsa-x402-api
Elsa x402 DeFi Tools
This skill provides access to the Elsa DeFi API for portfolio management, token analysis, and swap execution using x402 micropayments.
Standard Operating Procedure
Budget Controls
- Maximum $0.05 per API call (configurable)
- Maximum $2.00 per day (configurable)
- Maximum 30 calls per minute rate limit
- Daily budget resets at midnight in configured timezone (default: UTC)
Recommended Swap Flow (OpenClaw)
When executing swaps, follow this 4-step flow:
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────┐ ┌─────────────────────┐
│ 1. Get Quote │ ──▶ │ 2. Dry Run │ ──▶ │ 3. Confirm │ ──▶ │ 4. Execute Pipeline │
│ elsa_get_swap_quote │ │ elsa_execute_swap_ │ │ [User says │ │ elsa_pipeline_run_ │
│ │ │ dry_run │ │ "yes"] │ │ and_wait │
└─────────────────────┘ └─────────────────────┘ └─────────────┘ └─────────────────────┘
Step 1: Get Quote - Show user what they'll receive
npx tsx scripts/index.ts elsa_get_swap_quote '{
"from_chain": "base", "from_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"from_amount": "10", "to_chain": "base", "to_token": "0x4200000000000000000000000000000000000006",
"wallet_address": "0x...", "slippage": 0.5
}'
Step 2: Dry Run - Create pipeline, get pipeline_id
npx tsx scripts/index.ts elsa_execute_swap_dry_run '{...same params...}'
# Returns: { "pipeline_id": "abc-123", "confirmation_token": "..." }
Step 3: User Confirmation - Present results and wait for explicit "yes"
Step 4: Execute Pipeline - Sign and broadcast transactions
ELSA_ENABLE_EXECUTION_TOOLS=true npx tsx scripts/index.ts elsa_pipeline_run_and_wait '{
"pipeline_id": "abc-123",
"timeout_seconds": 180,
"poll_interval_seconds": 3,
"mode": "local_signer"
}'
# Automatically: signs approve tx → submits → signs swap tx → submits → returns tx hashes
Required Environment Variables
# For x402 API payments
PAYMENT_PRIVATE_KEY=0x...
# For signing swap transactions (optional - falls back to PAYMENT_PRIVATE_KEY)
TRADE_PRIVATE_KEY=0x...
# Enable execution tools
ELSA_ENABLE_EXECUTION_TOOLS=true
Critical Rules
- NEVER execute swaps without showing the user the quote first
- NEVER call execution tools in a loop
- NEVER proceed if budget limits are exceeded
- ALWAYS check
elsa_budget_statusif unsure about remaining budget - ALWAYS use dry-run mode first for any swap operation
Tool Catalog
Read-Only Tools (Always Available)
elsa_search_token
Search for tokens across supported blockchains.
npx tsx scripts/index.ts elsa_search_token '{"query": "USDC", "limit": 5}'
Input:
query(string, required): Token name, symbol, or addresslimit(number, optional): Max results (default: 10)
elsa_get_token_price
Get current price for a token.
npx tsx scripts/index.ts elsa_get_token_price '{"token_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "chain": "base"}'
Input:
token_address(string, required): Token contract addresschain(string, optional): Chain name (default: "base")
elsa_get_balances
Get token balances for a wallet.
npx tsx scripts/index.ts elsa_get_balances '{"wallet_address": "0x..."}'
Input:
wallet_address(string, required): Wallet address to query
elsa_get_portfolio
Get comprehensive portfolio analysis.
npx tsx scripts/index.ts elsa_get_portfolio '{"wallet_address": "0x..."}'
Input:
wallet_address(string, required): Wallet address to analyze
elsa_analyze_wallet
Get wallet behavior and risk assessment.
npx tsx scripts/index.ts elsa_analyze_wallet '{"wallet_address": "0x..."}'
Input:
wallet_address(string, required): Wallet address to analyze
elsa_get_swap_quote
Get a swap quote with optimal routing.
npx tsx scripts/index.ts elsa_get_swap_quote '{
"from_chain": "base",
"from_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"from_amount": "100",
"to_chain": "base",
"to_token": "0x4200000000000000000000000000000000000006",
"wallet_address": "0x...",
"slippage": 0.5
}'
Input:
from_chain(string, required): Source chainfrom_token(string, required): Source token addressfrom_amount(string, required): Amount to swapto_chain(string, required): Destination chainto_token(string, required): Destination token addresswallet_address(string, required): Wallet addressslippage(number, required): Slippage tolerance (0-50)
elsa_execute_swap_dry_run
Simulate a swap without execution. Returns a confirmation token for subsequent confirmed execution.
npx tsx scripts/index.ts elsa_execute_swap_dry_run '{
"from_chain": "base",
"from_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"from_amount": "100",
"to_chain": "base",
"to_token": "0x4200000000000000000000000000000000000006",
"wallet_address": "0x...",
"slippage": 0.5
}'
Output includes:
- Swap simulation results
confirmation_token(if ELSA_REQUIRE_CONFIRMATION_TOKEN=true)- Token expires after ELSA_CONFIRMATION_TTL_SECONDS
elsa_budget_status
Check current budget usage and remaining limits.
npx tsx scripts/index.ts elsa_budget_status '{}'
Output:
spent_today_usd: Amount spent todayremaining_today_usd: Remaining daily budgetcalls_last_minute: Recent call countlast_calls: Recent call details
elsa_get_limit_orders
Get all limit orders for a wallet.
npx tsx scripts/index.ts elsa_get_limit_orders '{"wallet_address": "0x...", "chain": "base"}'
Input:
wallet_address(string, required): Wallet address to querychain(string, optional): Chain name (default: "base")
Output:
orders: Array of limit orders with status, prices, and expiry
elsa_get_perp_positions
Get perpetual positions for a wallet.
npx tsx scripts/index.ts elsa_get_perp_positions '{"wallet_address": "0x..."}'
Input:
wallet_address(string, required): Wallet address to query
Output:
positions: Array of open perp positions with PnL, leverage, and liquidation pricestotal_unrealized_pnl: Sum of unrealized profits/lossestotal_margin: Total margin used
elsa_get_transaction_history
Get transaction history for a wallet.
npx tsx scripts/index.ts elsa_get_transaction_history '{"wallet_address": "0x...", "chain": "base", "limit": 20}'
Input:
wallet_address(string, required): Wallet address to querychain(string, optional): Filter by chainlimit(number, optional): Max results (default: 20, max: 100)
Output:
transactions: Array of transactions with details, token transfers, and status
Execution Tools (Requires ELSA_ENABLE_EXECUTION_TOOLS=true)
elsa_execute_swap_confirmed
Execute a confirmed swap. Requires prior dry-run and confirmation token.
npx tsx scripts/index.ts elsa_execute_swap_confirmed '{
"from_chain": "base",
"from_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"from_amount": "100",
"to_chain": "base",
"to_token": "0x4200000000000000000000000000000000000006",
"wallet_address": "0x...",
"slippage": 0.5,
"confirmation_token": "abc123..."
}'
elsa_pipeline_get_status
Check status of a pipeline/transaction.
npx tsx scripts/index.ts elsa_pipeline_get_status '{"pipeline_id": "pip_123456789"}'
elsa_pipeline_submit_tx_hash
Submit a signed transaction hash to the pipeline.
npx tsx scripts/index.ts elsa_pipeline_submit_tx_hash '{"task_id": "task_123", "tx_hash": "0x..."}'
elsa_pipeline_run_and_wait
Orchestrate full pipeline execution with automatic signing and submission.
npx tsx scripts/index.ts elsa_pipeline_run_and_wait '{
"pipeline_id": "pip_123456789",
"timeout_seconds": 120,
"poll_interval_seconds": 2,
"mode": "local_signer"
}'
Modes:
local_signer: Signs and broadcasts transactions using TRADE_PRIVATE_KEYexternal_signer: Returns unsigned tx_data for external signing
elsa_create_limit_order
Create a limit order to execute when price reaches target.
ELSA_ENABLE_EXECUTION_TOOLS=true npx tsx scripts/index.ts elsa_create_limit_order '{
"wallet_address": "0x...",
"chain": "base",
"from_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"to_token": "0x4200000000000000000000000000000000000006",
"from_amount": "100",
"limit_price": "0.0004",
"expiry_hours": 24
}'
Input:
wallet_address(string, required): Wallet addresschain(string, required): Chain namefrom_token(string, required): Token to sellto_token(string, required): Token to buyfrom_amount(string, required): Amount to selllimit_price(string, required): Target price to trigger executionexpiry_hours(number, optional): Hours until order expires (default: 24, max: 720)
elsa_cancel_limit_order
Cancel an existing limit order.
ELSA_ENABLE_EXECUTION_TOOLS=true npx tsx scripts/index.ts elsa_cancel_limit_order '{
"wallet_address": "0x...",
"order_id": "order_123",
"chain": "base"
}'
Input:
wallet_address(string, required): Wallet addressorder_id(string, required): Order ID to cancelchain(string, optional): Chain name (default: "base")
elsa_open_perp_position
Open a perpetual futures position.
ELSA_ENABLE_EXECUTION_TOOLS=true npx tsx scripts/index.ts elsa_open_perp_position '{
"wallet_address": "0x...",
"market": "ETH-USD",
"side": "long",
"size_usd": "100",
"leverage": 5,
"take_profit": "4000",
"stop_loss": "2800"
}'
Input:
wallet_address(string, required): Wallet addressmarket(string, required): Market pair (e.g., "ETH-USD", "BTC-USD")side(enum, required): "long" or "short"size_usd(string, required): Position size in USDleverage(number, optional): Leverage multiplier (default: 1, max: 100)take_profit(string, optional): Take profit pricestop_loss(string, optional): Stop loss price
elsa_close_perp_position
Close an open perpetual position.
ELSA_ENABLE_EXECUTION_TOOLS=true npx tsx scripts/index.ts elsa_close_perp_position '{
"wallet_address": "0x...",
"position_id": "pos_123",
"close_percentage": 100
}'
Input:
wallet_address(string, required): Wallet addressposition_id(string, required): Position ID to closeclose_percentage(number, optional): Percentage to close (default: 100, range: 1-100)
Supported Chains
- base (default)
- ethereum
- arbitrum
- optimism
- polygon
- bsc
- avalanche
- zksync
API Costs
| Tool | Estimated Cost |
|---|---|
| elsa_search_token | $0.002 |
| elsa_get_token_price | $0.002 |
| elsa_get_balances | $0.002 |
| elsa_get_portfolio | $0.002 |
| elsa_analyze_wallet | $0.005 |
| elsa_get_swap_quote | $0.002 |
| elsa_execute_swap_dry_run | $0.005 |
| elsa_get_limit_orders | $0.002 |
| elsa_get_perp_positions | $0.002 |
| elsa_get_transaction_history | $0.002 |
| elsa_create_limit_order | $0.05 |
| elsa_cancel_limit_order | $0.01 |
| elsa_open_perp_position | $0.05 |
| elsa_close_perp_position | $0.05 |
| elsa_execute_swap_confirmed | $0.05 |
Coming Soon
- Polymarket APIs - Prediction market trading and data
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install elsa-x402-api - 安装完成后,直接呼叫该 Skill 的名称或使用
/elsa-x402-api触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Elsa x402 API 是什么?
DeFi tools for portfolio analysis, token search, and swap execution via Elsa API with x402 micropayments. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 410 次。
如何安装 Elsa x402 API?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install elsa-x402-api」即可一键安装,无需额外配置。
Elsa x402 API 是免费的吗?
是的,Elsa x402 API 完全免费(开源免费),可自由下载、安装和使用。
Elsa x402 API 支持哪些平台?
Elsa x402 API 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Elsa x402 API?
由 J Kishore Kumar(@justjkk)开发并维护,当前版本 v1.0.0。