# Send Elsa x402 API to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "elsa-x402-api",
    "name": "Elsa x402 API",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/justjkk/elsa-x402-api",
    "canonicalUrl": "https://clawhub.ai/justjkk/elsa-x402-api",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/elsa-x402-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=elsa-x402-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "ONE-PAGER.md",
      "README.md",
      "package-lock.json",
      "package.json",
      "SKILL.md",
      "tsconfig.json"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "elsa-x402-api",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T20:56:47.142Z",
      "expiresAt": "2026-05-09T20:56:47.142Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=elsa-x402-api",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=elsa-x402-api",
        "contentDisposition": "attachment; filename=\"elsa-x402-api-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "elsa-x402-api"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/elsa-x402-api"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/elsa-x402-api",
    "downloadUrl": "https://openagent3.xyz/downloads/elsa-x402-api",
    "agentUrl": "https://openagent3.xyz/skills/elsa-x402-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/elsa-x402-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/elsa-x402-api/agent.md"
  }
}
```
## Documentation

### Elsa x402 DeFi Tools

This skill provides access to the Elsa DeFi API for portfolio management, token analysis, and swap execution using x402 micropayments.

### 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_status if unsure about remaining budget
ALWAYS use dry-run mode first for any swap operation

### 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 address
limit (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 address
chain (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 chain
from_token (string, required): Source token address
from_amount (string, required): Amount to swap
to_chain (string, required): Destination chain
to_token (string, required): Destination token address
wallet_address (string, required): Wallet address
slippage (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 today
remaining_today_usd: Remaining daily budget
calls_last_minute: Recent call count
last_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 query
chain (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 prices
total_unrealized_pnl: Sum of unrealized profits/losses
total_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 query
chain (string, optional): Filter by chain
limit (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_KEY
external_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 address
chain (string, required): Chain name
from_token (string, required): Token to sell
to_token (string, required): Token to buy
from_amount (string, required): Amount to sell
limit_price (string, required): Target price to trigger execution
expiry_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 address
order_id (string, required): Order ID to cancel
chain (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 address
market (string, required): Market pair (e.g., "ETH-USD", "BTC-USD")
side (enum, required): "long" or "short"
size_usd (string, required): Position size in USD
leverage (number, optional): Leverage multiplier (default: 1, max: 100)
take_profit (string, optional): Take profit price
stop_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 address
position_id (string, required): Position ID to close
close_percentage (number, optional): Percentage to close (default: 100, range: 1-100)

### Supported Chains

base (default)
ethereum
arbitrum
optimism
polygon
bsc
avalanche
zksync

### API Costs

ToolEstimated Costelsa_search_token$0.002elsa_get_token_price$0.002elsa_get_balances$0.002elsa_get_portfolio$0.002elsa_analyze_wallet$0.005elsa_get_swap_quote$0.002elsa_execute_swap_dry_run$0.005elsa_get_limit_orders$0.002elsa_get_perp_positions$0.002elsa_get_transaction_history$0.002elsa_create_limit_order$0.05elsa_cancel_limit_order$0.01elsa_open_perp_position$0.05elsa_close_perp_position$0.05elsa_execute_swap_confirmed$0.05

### Coming Soon

Polymarket APIs - Prediction market trading and data
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: justjkk
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-02T20:56:47.142Z
- Expires at: 2026-05-09T20:56:47.142Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/elsa-x402-api)
- [Send to Agent page](https://openagent3.xyz/skills/elsa-x402-api/agent)
- [JSON manifest](https://openagent3.xyz/skills/elsa-x402-api/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/elsa-x402-api/agent.md)
- [Download page](https://openagent3.xyz/downloads/elsa-x402-api)