New Recipes: multiple X Layer endpoints chained into one call and one x402 payment. A full market read for a cent or two. Explore
Otto AI OKX
Live on X Layer · Chain 196 · EIP155:196

One HTTP call.
Autonomous DeFi.

Otto X is an agent-native DeFi platform. AI agents can swap, bridge, and invest on your behalf with a single wallet signature. No seed-phrase exposure. No gas management. No intermediate custody by Otto. The infrastructure composes three existing primitives — x402 + OKX Onchain OS + EIP-3009 — and the user feels magic.

64
paid endpoints live
4
Base · Arb · Polygon · X Layer
1
signature for full auto-exec
0
custody by Otto

We chain the endpoints —
one payment, one dose of alpha.

Recipes chain multiple of Otto's live X Layer endpoints into one high-signal report. You sign once — Otto runs the chain server-side and returns one answer.

ONE CALL YOU SIGN ONCE security markets liquidity sentiment yield OTTO RUNS THE STEPS SERVER-SIDE ONE COMPOSED RESULT ONE CALL YOU SIGN ONCE security markets liquidity sentiment yield OTTO RUNS THE STEPS SERVER-SIDE ONE COMPOSED RESULT

Five steps → one HTTP call.

Traditional agent-driven DeFi is a five-step gauntlet of approvals, gas estimations, and failure modes. Otto X collapses it into a single request with one wallet confirmation.

Before · Legacy flow

Agent tries to swap 10 USDC → WETH for you

1
Expose your private key to the agent somewhere it can reach. Immediate fail.
2
Approve the token to the router. Separate tx, user pays gas.
3
Submit the swap. Another gas fee. Agent or user signs.
4
Track the tx, handle reverts, monitor slippage, watch for frontrunning.
5
Every approval stays open forever. Every step is a failure mode.
After · Otto X

Same agent. Same swap. One HTTP call.

1
Bootstrap (once per payer). A paid GET /sub-wallet ($0.01) provisions your TEE sub-wallet and returns its address. Cache it — same payer, same sub-wallet, forever. No provisioning without a real payment behind it.
2
One wallet confirmation. Sign x402 fee + an EIP-3009 TransferWithAuthorization note — exact amount, short time window, to = your sub-wallet. Modern wallets batch both into one prompt.
3
POST /auto-swap. Server pulls your USDC → your sub-wallet direct, tops up dust gas, executes via OKX DEX. HTTP 200 with every tx hash.

Three layers. Zero Otto-held funds.

The key insight: principal moves user → user's own sub-wallet, never through Otto. Otto pays gas + orchestrates, nothing more. You can empty the sub-wallet at any time via the escape hatch.

1
Your wallet
Holds your USDC / USDT principal. Your seed phrase, your keys — Otto cannot see or touch it. You sign EIP-3009 authorizations off-chain from here.
Self-custody · EOA / hardware wallet
2
Your Otto X sub-wallet
TEE-custodied inside OKX Onchain OS. The key never leaves the Trusted Execution Environment — neither Otto nor OKX staff can export it. Receives principal, executes ops, holds residuals.
TEE · idempotent · deterministic per payer
3
Otto X operator
Pays gas to broadcast your EIP-3009 authorization and dust gas top-ups. Never takes custody of your principal. The transfer is user → sub-wallet direct.
Hot wallet · gas-only · orchestration
✓
Signer binding. principalAuth.from must equal the x402 payer. No impersonation.
✓
Destination locked. principalAuth.to must equal your own sub-wallet. No drains.
✓
Amount + time bound. Exact value, specific time window. No open allowances.
✓
Replay protection. Nonce uniqueness enforced in DB + on-chain authorizationState.
✓
Protocol allowlist. Sub-wallets can only touch Aave V3, Lido, Compound V3, Morpho on vetted chains.
✓
Escape hatch. POST /auto-withdraw sweeps sub-wallet funds to any address, anytime.
✓
Idempotency. Every op has a (payer, op_type, body_hash) key. Safe to retry.
✓
409 fallback. Clients without EIP-3009 support still get a working two-step funds-required path.

Feel what your agent just learned.

Every endpoint below is a new skill an AI agent can earn the right to use for a fraction of a cent. Connect a wallet, sign one tiny USDT0 payment on X Layer, and watch the superpower light up in real time — live news, KOL sentiment, on-chain research, a TEE-custodied sub-wallet, even a DEX swap — all behind a single signature.

Wallet
Not connected
Network
—
USDT0 balance (X Layer)
—
Need USDT0 on X Layer? Bridge from any chain via OKX Bridge, or deposit from your OKX exchange account. Payments are ~$0.001–$0.01 each; a few dollars goes a long way.
Payment
$0.001 USDT0 (once)

Swap USDT0 → any X Layer asset.

Two prompts in your wallet, one HTTP call. The first signs an EIP-3009 principalAuth note that pulls your USDT0 principal directly into your TEE sub-wallet — never through Otto's hands. Otto checks it before asking for payment; the second prompt then signs the x402 fee — $0.05 USDT0 to Otto. The server tops up dust gas, executes via OKX DEX, and returns every tx hash. Connect above first.

Wallet
Connect above ↑
Sub-wallet (X Layer)
—
We look up your sub-wallet via free /sub-wallet/preview as soon as you connect. If you don't have one yet, the panel above can provision it for $0.01 (select GET /sub-wallet and Pay & call).
USDT0 — X Layer's EIP-3009 principal asset
You'll sign
$0.05 fee + 1.00 principal = 1.05 USDT0 total

Yield Watch — Otto rebalances for you.

One signature, 30 days of autonomous rebalancing. Under a signed delegation, Otto moves your USDC between Aave V3 and Compound V3 on Base and Ethereum when the other venue sustains a meaningful APY gap. You stay in control: cap the maximum per move, cap the number of moves, pause or revoke any time. The delegation is scoped, on-chain-verifiable, and the worker only signs from your TEE sub-wallet (never from your external wallet).

Wallet
Connect above ↑
Sub-wallet
—
Same TEE sub-wallet as Swap. Yield Watch operates ON your sub-wallet's existing positions (deposit via /auto-defi-invest first if you haven't yet). Otto's worker runs hourly; auto-mode broadcasts only fire when a hysteresis-confirmed APY gap clears your signed thresholds.
Notify only. Otto Telegrams you when there's a better venue. You click the suggested two-call switch yourself. No on-chain delegation, no spending limits — just alerts.
You'll sign
Just a POST — no signature needed for Notify mode.
Pause / revoke an existing subscription
Auto mode requires a signed revoke (EIP-712); notify mode just sends a DELETE.

Free endpoints, right here.

All three below run against the live Otto X server — no API key, no payment, just click. Perfect for sanity-checking the service is alive before you wire up a paid call.

Look up a sub-wallet

Free · GET /sub-wallet/preview

Read-only DB lookup. Paste any EVM address to see whether Otto has already provisioned a TEE sub-wallet for it. Nothing is provisioned here — provisioning is tied to a real paid /auto-* call, not a button click.

Service health

Free · GET /health

One-click ping. Returns service name, chain, x402 network, and a timestamp. Useful as a canary during stress tests.

X Layer curated tokens

Free · GET /tokens

The on-the-house token registry Otto X uses for swap quoting on X Layer. Small, curated list with the native assets and stablecoins.

64 endpoints. One payment standard.

Every paid endpoint honors x402 Payment Required. Send a request with its inputs and without payment, receive a 402 with exact price + payment address. A missing or invalid input gets a 400 first, before any payment. Pay, retry, get data. No API keys.

GET
/vet-token?address=0x...
Token Safety & Tradeability Vetting — one-call X Layer token check: GoPlus contract security (honeypot, tax, mint/ownership flags) + holder concentration + live OKX DEX tradeability & price. Refuses (unpaid) if the security scan is empty.
$0.01
GET
/token-deep-dive?symbol=BTC
Token Deep-Dive — full-picture briefing for a major token: price & market cap + contract security + derivatives funding/OI + market KOL context + OKX DEX price. Unresolved legs labelled unavailable, never faked. Refuses (unpaid) if core token details are missing.
$0.05
GET
/rwa-pulse
RWA Market Pulse — a pulse on the real-world-asset market: TradFi macro (indices, VIX, DXY, yields, commodities) + live tokenized-RWA perps (equities like AAPL/TSLA/NVDA, commodities, FX) from Hyperliquid + crypto market news. Live legs only; any reading that would fabricate is omitted and named. Refuses (unpaid) if the macro core is empty.
$0.05
POST
/auto-swap
Swap inside your Otto X sub-wallet via OKX DEX. JSON body: payer (string, 0x address that pays this call), chain (string, e.g. "xlayer"), fromToken (string, 0x address, e.g. USDT 0x779ded0c9e1022225f8e0630b35a9b54be713736), toToken (string, 0x address, e.g. USDG 0x4ae46a509f6b1d9056937ba4500cb143933d2dc8), amount (string, e.g. "1"); optional slippage (string, percent, e.g. "0.5"), principalAuth (EIP-3009 object)
$0.05
POST
/auto-bridge
Bridge from your Otto X sub-wallet via the OKX cross-chain router. JSON body: payer (string, 0x address that pays this call), fromChain (string, e.g. "base"), toChain (string, another chain, e.g. "arbitrum"), fromToken (string, 0x address, e.g. USDC 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913), toToken (string, 0x address, e.g. USDC 0xaf88d065e77c8cc2239327c5edb3a432268e5831), amount (string, e.g. "10"); optional receiveAddress (0x), principalAuth
$0.05
POST
/auto-defi-invest
Deposit from your Otto X sub-wallet into an allowlisted lending venue (Aave V3, Compound V3, Morpho; GET /supported-protocols). JSON body: payer (string, 0x address that pays this call), protocol (string, e.g. "aave_v3"), chain (string, e.g. "base"), token (string, symbol or 0x address, e.g. "USDC"), amount (string, e.g. "5"); optional slippage (string, fraction, "0.01" = 1%), principalAuth (EIP-3009 object)
$0.05
POST
/auto-defi-withdraw
Redeem a DeFi position held by your Otto X sub-wallet. JSON body: payer (string, 0x address that pays this call), protocol (string, e.g. "aave_v3"), chain (string, e.g. "xlayer"), token (string, symbol or 0x address, e.g. "USDT"), and ratio (string in (0, 1], e.g. "1" for all) or amount (string, e.g. "5"); optional slippage (string, fraction, "0.01" = 1%)
$0.05
POST
/auto-withdraw
Escape hatch: send funds from your Otto X sub-wallet to any address. JSON body: payer (string, 0x address that pays this call), chain (string, e.g. "xlayer"), token (string, "native" or 0x address, e.g. USDT 0x779ded0c9e1022225f8e0630b35a9b54be713736), amount (string, e.g. "1"), toAddress (string, 0x destination address)
$0.05
GET
/sub-wallet
Resolve (or auto-provision) your Otto X sub-wallet — bound to the verified x402 payer
$0.01
GET
/idle-capital
Detect undeployed tokens that could earn yield
$0.001
GET
/yield-recommendations
Personalized yield vault recommendations
$0.001
POST
/yield-watch
Register or update a yield-watch subscription. mode=auto: signed EIP-712 30-day delegation authorizing Otto to auto-rebalance between Aave V3 and Compound V3 (Morpho ships v1.1). mode=notify: observation alerts only, no delegation and no moves (the same $0.001 call).
$0.001
DELETE
/yield-watch
Revoke an active yield-watch subscription — requires a signed YieldWatchRevocation typed-data note (different primaryType from the registration delegation)
$0.001
GET
/yield-watch
Read the caller's current yield-watch subscription state (mode, scope, policy knobs, move counter, next nonce)
$0.001
GET
/yield-watch/audit
Read the caller's yield-watch audit trail — registrations, revocations, observation starts/resets, auto-move attempts/results
$0.001
GET
/crypto-news
Importance-ranked crypto headlines with per-article source links and publish times, plus a sentiment-scored market brief. Regenerated hourly; meta carries the snapshot's age and a fresh/stale verdict.
$0.001
GET
/token-alpha?symbol=BTC
Premium token intelligence — news, Twitter sentiment, futures data
$0.001
GET
/kol-sentiment
Aggregated sentiment from top 50 crypto KOLs
$0.003
GET
/trending-altcoins
Top 3 trending altcoins with analysis
$0.001
GET
/mega-report
Alpha & Intel Report — comprehensive daily market briefing — headlines, sentiment, KOL alpha, trending, yield
$0.05
GET
/token-security?address=0x...
Token contract security audit — honeypot detection, rug pull risk, tax analysis
$0.001
GET
/funding-rates
Derivatives dashboard — funding rates, open interest, long/short ratios
$0.001
GET
/defi-analytics
DeFi protocol analytics — TVL rankings, chain breakdown, gainers/losers
$0.001
GET
/filtered-news?topic=DeFi
AI-filtered news by topic (DeFi, NFTs, Layer2, etc.)
$0.001
GET
/twitter-summary
Curated crypto Twitter/X digest from top KOLs
$0.001
GET
/token-details?symbol=BTC
Token price, market cap, 24h change
$0.001
GET
/yield-alpha
Top DeFi yield opportunities across chains
$0.001
GET
/tradfi-data
TradFi macro intelligence — indices, VIX, DXY, yields, commodities
$0.001
GET
/stablecoin-watch
Is USDC/USDT/DAI holding its $1 peg, and is stablecoin supply growing or shrinking (risk-on vs risk-off)? Live peg deviation (bps), circulating supply + 1d/7d/30d flow, market dominance and chain spread for the top 30 USD stablecoins, plus downside depeg alerts for any coin trading >0.5% below peg. Sourced from DefiLlama (public). Served from a cached snapshot while fresh (≤1h) and regenerated on demand when a read finds it stale.
$0.001
GET
/protocol-revenue-leaders
Which protocols earn the most — and who is accelerating? Top 30 DeFi protocols by 24h fees, each with revenue, take-rate (the cut the protocol keeps vs fees users pay), 7d/30d trend and category, plus total DeFi fees & revenue. A fundamentals screen (fee/revenue economics), distinct from TVL. Sourced from DefiLlama (public). Served from a cached snapshot while fresh (DefiLlama fees are daily aggregates) and regenerated on demand when a read find…
$0.001
GET
/market-risk
Composite crypto market-stress digest: a 0-100 score (low/moderate/elevated/high) blended from global USD-stablecoin depeg health (DefiLlama) and Base on-chain DEX exit-liquidity, with a per-leg breakdown and an AI risk line. Both legs required for a score. Every read older than an hour regenerates the score inline. Fresh-or-refuse: if a current score can't be computed, the call refuses (uncharged) rather than return an older reading.
$0.002
GET
/news-recaps
A tight 4-6 sentence crypto market recap an agent can ingest whole: overall direction and why, the 2-3 developments that matter, and anything notable on the top-10 board — distilled hourly from the same live news engine behind Otto's top-ranked /crypto-news feed. The one-paragraph state-of-market; buy /crypto-news when you want the full report.
$0.003
GET
/fx-rates
Live + reference foreign-exchange (forex) rates, base USD. LIVE near-real-time mid quotes for the 12 most-traded currencies (EUR, GBP, JPY, CHF, CAD, AUD, NZD, CNY, HKD, SGD, SEK, KRW), refreshed every minute with an honest market-open/stale flag, PLUS the official ECB daily reference table for ~30 currencies. Derive any cross-rate or pair. Keyless, pay-per-call.
$0.001
GET
/pm-markets
Top Polymarket prediction markets right now: the 25 highest-volume open markets with live odds (outcome probabilities), best bid/ask, spread, last trade, 24h + total volume, liquidity, 1d/7d price change, end date and event link. Flat JSON, refreshed every 5 minutes.
$0.001
GET
/pm-crypto
Crypto prediction markets on Polymarket: the highest-volume open BTC, ETH and crypto markets with live odds (outcome probabilities), best bid/ask, spread, 24h + total volume, liquidity, price change and end date. 'Bitcoin above X', price targets, ETF and protocol events — what the market actually prices in, as flat JSON refreshed every 5 minutes.
$0.001
GET
/rh-season
Robinhood Chain memecoin intelligence: the rug-screened RH Chain (chainId 4663) movers. Hard liquidity + wash-volume gates filter $0-liquidity honeypots faking $1M volumes; every survivor carries rug-risk flags (thin liquidity, vol/liquidity anomaly, pool age, CoinGecko listing) plus trusted-KOL mentions with verbatim quotes and a synthesized RH sentiment read. What is pumping AND whether it is real. Served from a cached snapshot while fresh (≤1…
$0.001
GET
/tokenized-equities
The live registry of tokenized US equities & ETFs on Robinhood Chain (chainId 4663): symbol, canonical token address, decimals, listed-on-rail routability, and the EXECUTABLE buy price — what a $100 buy pays per token at the route's minimum output — published next to the catalog reference price and the deviation between them. Every served address is bound to a hand-verified identity pin. The on-chain settlement layer for tokenized-equity exposur…
$0.001
GET
/earnings-calendar?ticker=...
Earnings calendar + surprise history for a vendor-resolved equity or ETF: next report date and session (before-open / after-close) with EPS & revenue estimates, latest reported EPS versus estimate with surprise %, and a four-quarter history. Licensed Finnhub feed; monetary values keep vendor payload units. Event-window price drift is marked unavailable, never inferred. Pass ?ticker= (e.g. AAPL). Refreshed daily.
$0.003
GET
/analyst-ratings?ticker=...
Analyst consensus for a vendor-resolved equity: the latest buy/hold/sell distribution (strong buy · buy · hold · sell · strong sell counts, total, and a deterministic consensus label) plus up to six months of the same distribution so an agent can read the drift — is the street moving toward or away from the name. Vendor counts (Finnhub), label rule stated in the payload. No price targets and no per-analyst grade actions are served.
$0.003
GET
/equity-news?ticker=...
Company news for a vendor-resolved equity: licensed Finnhub headlines from the trailing 7 days with publish time, source and summary. Only articles that name the company are served — labelled primary (headline names it) or mentioned (only the summary does) — so a symbol-tagged story about another company never fills the list. No sentiment is fabricated. Pass ?ticker= (e.g. TSLA). Refreshed hourly.
$0.003
GET
/dividend-intel?ticker=...
Cash-dividend intelligence for a vendor-resolved equity from the licensed Tiingo end-of-day feed: TTM dividend/share and yield against the latest close, latest dividend, split-adjusted complete-year growth, the last eight payments, split events, and a cut-detection checklist with explicit coverage. Payout ratio, forward ex-dates and declaration/record/payment dates are not served (not in the Tiingo feed); non-payers return status no-cash-dividen…
$0.003
GET
/macro-regime
Daily US macro-regime snapshot from licensed Alpha Vantage series: 10-year Treasury yield, effective federal funds rate, 3-month rate changes, CPI index and YoY inflation, plus a mechanical rate-direction / inflation-direction label with disclosed thresholds. Scanner context, no query param. Refreshed daily.
$0.003
GET
/technical-signals?ticker=...
Daily technical snapshot for a vendor-resolved equity from licensed Tiingo adjusted closes: Wilder RSI-14 with state, 20-session momentum, SMA-20 / SMA-50, price distance from each average, above / below / mixed trend state, and the latest observed golden / death cross. Price and averages keep vendor payload units. Pass ?ticker= (e.g. MSFT). Refreshed daily.
$0.003
GET
/insider-trades?ticker=...
SEC Form 4 insider trades for any US-listed company: who bought and sold (officer / director / 10% owner), purchase vs sale counts and dollar values (SEC codes P/S), net purchase-sale balance, shares held after each transaction, and filing links. An hourly snapshot straight from the primary source — public-domain SEC EDGAR. Pass ?ticker= (e.g. AAPL). Refreshed hourly.
$0.003
GET
/institutional-holdings?manager=...
Latest 13F-HR holdings for any SEC-filing manager (hedge funds, asset managers): top 20 positions by value with issuer, CUSIP, value in whole USD, share / principal amount (SH/PRN), put/call flag and position count, amendments applied. Whale-tracking straight from the primary source — public-domain SEC EDGAR. Pass ?manager= a CIK or manager ticker (e.g. 1067983 for Berkshire, or BLK). Refreshed hourly.
$0.003
GET
/pm-search?query=...
Search Polymarket prediction markets by free text — elections, Fed rates, crypto prices, sports, geopolitics, AI. Returns the top matching open markets with live odds (outcome probabilities), best bid/ask, spread, volume, liquidity, end date and event link as flat JSON. Pass ?query= (e.g. "fed rate cut"). Live odds on a ~10-minute cadence.
$0.001
GET
/equity-smart-money?ticker=...
Smart-money bundle for any US-listed company in ONE call: SEC Form 4 insider activity (purchases vs sales, SEC codes P/S, net purchase-sale balance, who filed and their roles) PLUS trailing-twelve-month fundamentals — revenue + YoY, net income + YoY, diluted EPS — from XBRL filings. Insider conviction and the financials behind it, together. Public-domain SEC EDGAR. Pass ?ticker= (e.g. NVDA). Refreshed hourly.
$0.006
GET
/tweet-search?query=...
Search X / Twitter for any query and get the actual matching tweets — keyword, $CASHTAG, from:handle, @handle mentions, or boolean OR. Each tweet returns author, full text (long-form notes included), timestamp, likes and retweets. Most-recent-first for real-time monitoring. Structured JSON, pay-per-call. Pass ?query= (e.g. $BTC). Live X search, ~5-minute recency.
$0.005
GET
/generate-meme?prompt=...
AI image generation via fal.ai (gpt-image-2 default, nano-banana-pro alt)
$0.15
GET
/llm-research?prompt=...
AI research assistant with web search via Gemini 3.1 Flash-Lite
$0.10
GET
/tx-explainer?txHash=0x...
Decode & explain an EVM transaction on Base, Ethereum, Arbitrum, Optimism, Avalanche, Polygon, BNB Chain, Mantle, Monad, Plasma or HyperEVM (not X Layer)
$0.01
GET
/portfolio
Multi-chain token balances for your Otto X sub-wallet (or ?address=0x...)
$0.001
GET
/supported-tokens?chainId=8453&search=USDC
Search tokens by symbol on chain
$0.001
GET
/hyperliquid-account
Hyperliquid perpetual futures account info — defaults to your Otto X sub-wallet
$0.001
GET
/hyperliquid-market
Perpetual market data & funding rates
$0.001
GET
/hl-transaction-history
Hyperliquid trade history — defaults to your Otto X sub-wallet
$0.001
GET
/yield-markets
Blue-chip supply APYs from each protocol's authoritative source — Aave V3 + Compound V3 (on-chain), Morpho (official GraphQL), Syrup (ERC-4626 trailing)
$0.001
GET
/yield-farming-active
Active yield positions for a wallet — Otto-allowlisted lending positions also get a rebalance recommendation (current APY vs. the highest-rated allowlisted protocol alternative + the action calls to switch) and a portfolio yield summary
$0.001
GET
/yield-farming-historical
Yield op history for a wallet — deposit/redeem timeline with exact Otto fees and a totals summary
$0.001
POST
/swap
Quote + unsigned swap calldata on X Layer via OKX DEX (you broadcast). JSON body: fromToken (string, 0x address: USDT 0x779ded0c9e1022225f8e0630b35a9b54be713736 or USDG 0x4ae46a509f6b1d9056937ba4500cb143933d2dc8), toToken (string, 0x address other than fromToken, e.g. WOKB 0xe538905cf8410324e03a5a23c1c177a474d59b2b), amount (string, e.g. "1.5"), userWalletAddress (string, your 0x wallet); optional slippage (string, percent 0.1-50, e.g. "1")
$0.01
GET
/market-alpha
X Layer token market intelligence — live pricing for curated tokens
$0.005
GET
/price?token=0x...
Single token USD price via OKX DEX quote
$0.002
GET
/all-tokens
Full list of all tokens supported on X Layer DEX
$0.002
GET
/approve?token=0x...&amount=N
ERC-20 approval calldata for DEX router (needed before swap)
$0.005
GET
/
This landing page (HTML) or JSON service discovery (Accept: application/json).
Free
GET
/health
Service health check.
Free
GET
/tokens
Curated X Layer token registry.
Free
GET
/llm.txt
AI-readable service catalog.
Free
GET
/llms.txt
Long-form AI-readable catalog.
Free
GET
/.well-known/x402
x402 discovery document (JSON).
Free
GET
/openapi.json
OpenAPI 3.1 description — the machine invocation contract (method, query params, body schema, price).
Free
GET
/otto.md
Otto Intelligence Plugin skill file.
Free
GET
/supported-protocols
DeFi allowlist — protocol × chain × token combinations Otto will execute against.
Free
GET
/sub-wallet/preview?address=0x...
Read-only lookup — is a sub-wallet already provisioned for this address? Never provisions; provisioning is a paid GET /sub-wallet ($0.01).
Free
GET
/defi-positions?address=0x...
Read active DeFi positions for a sub-wallet.
Free

Hit your first endpoint in 30 seconds.

Every example below is copy-paste runnable against the live service. The one-call /auto-swap flow is documented in full detail in the docs.

# Look up your sub-wallet — read-only, never provisions
curl "https://xlayer.ottoai.services/sub-wallet/preview?address=0xYOUR_WALLET"

# Service discovery (x402scan-compatible)
curl "https://xlayer.ottoai.services/.well-known/x402"
# Step 1 — get the price
curl -i "https://xlayer.ottoai.services/portfolio"
# < HTTP/1.1 402 Payment Required
# < PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi4uLg==

# Step 2 — pay + retry (use x402 client lib or browser wallet)
curl -H "PAYMENT-SIGNATURE: $SIGNED_402" \
     "https://xlayer.ottoai.services/portfolio"
# Once per wallet: GET /sub-wallet ($0.01) creates the sub-wallet that principalAuth funds
# One-call autonomous swap — principalAuth collapses fund + execute
curl -X POST "https://xlayer.ottoai.services/auto-swap" \
  -H "PAYMENT-SIGNATURE: $X402_FEE" \
  -H "Content-Type: application/json" \
  -d '{
    "payer":     "0xYOUR_WALLET",
    "fromToken": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "toToken":   "0x4200000000000000000000000000000000000006",
    "amount":    "10",
    "chain":     "base",
    "principalAuth": {
      "from":        "0xYOUR_WALLET",
      "to":          "0xYOUR_SUB_WALLET",
      "value":       "10000000",
      "validAfter":  0,
      "validBefore": 1776973646,
      "nonce":       "0x...",
      "signature":   "0x..."
    }
  }'

# < HTTP/1.1 200 OK
# < {
# <   "status": "success",
# <   "data": {
# <     "approveTxHash": "0x752564d8...",
# <     "swapTxHash":    "0x8d57950c...",
# <     "fromAmount":    "10000000",
# <     "toAmount":      "...",
# <     "priceImpact":   "-0.16%"
# <   }
# < }