Install
openclaw skills install tator-traderExecute crypto trades using natural language via Tator's AI trading API. Use when: buying tokens, selling tokens, swapping, bridging cross-chain, sending tok...
openclaw skills install tator-traderTrade on 24 chains using natural language. Send a prompt like "Buy 0.1 ETH worth of PEPE on Base" — Tator returns UNSIGNED transactions for you to review, sign, and broadcast. $0.20 USDC per request via x402. Tator never touches your keys.
| Situation | Action |
|---|---|
| User wants to buy/sell/swap a token | Build prompt with amount + token + chain, call Tator |
| User wants to bridge tokens | Include source chain, destination chain, amount in prompt |
| User wants to open a leveraged position | Include leverage, direction, collateral amount, protocol |
| User gives a vague prompt ("buy some crypto") | Ask for specifics: which token, how much, which chain |
Response has type: "transaction" | Verify each TX (check to, value, chainId), then sign and broadcast IN ORDER |
Response has type: "error" | Show error message to user, suggest fixes |
Response has type: "info" | Display the information to user |
| Multiple transactions returned | Execute sequentially — wait for each to confirm before sending next |
| Unknown/new token | Use contract address instead of name in prompt |
| User hasn't scanned the token yet | Scan first with quickintel-scan skill ($0.03) before buying |
POST https://x402.quickintel.io/v1/tator/prompt
{
"prompt": "Buy 0.1 ETH worth of PEPE on Base",
"walletAddress": "0xYourPublicWalletAddress",
"provider": "your-agent-name"
}
| Field | Required | Description |
|---|---|---|
prompt | Yes | Natural language trading instruction |
walletAddress | Yes | Your PUBLIC wallet address (receives tokens, signs TX) |
provider | Yes | Your agent/app identifier |
async | No | Returns job ID to poll. Default: false |
chain | No | Preferred chain (e.g., "base", "ethereum") |
slippage | No | Slippage tolerance %. Default: 1 |
Cost: $0.20 USDC (200000 atomic units) on any of 14 payment networks. Base recommended for lowest fees.
⚠️ NEVER paste private keys or seed phrases into prompts. Tator only needs your PUBLIC wallet address. The
walletAddressfield is your public address — the one you'd share to receive tokens.
Better prompts = better results. You pay $0.20 regardless of outcome.
| Good | Bad |
|---|---|
| "Buy 0.1 ETH worth of PEPE on Base" | "Buy some crypto" |
| "Swap 100 USDC for ETH on Arbitrum" | "Swap tokens" |
| "Bridge 50 USDC from Base to Arbitrum" | "Bridge my tokens" |
| "Open 5x long on ETH with 100 USDC on Avantis" | "Go long ETH" |
| "Buy 0x1234...abcd on Base" (contract address for obscure tokens) | "Get me that new meme coin" |
Tips: Always include chain. Specify amounts. Use contract addresses for obscure tokens. For bridging, include source AND destination chain.
| Category | Operations | Example |
|---|---|---|
| Trading | Buy, sell, swap | "Swap 100 USDC for ETH on Arbitrum" |
| Transfers | Send, wrap, unwrap, burn | "Send 50 USDC to 0x1234..." |
| Bridging | Cross-chain via Relay, LiFi, GasZip, deBridge | "Bridge 100 USDC from Base to Arbitrum" |
| Perps | Long/short via Avantis (Base) | "Open 5x long on ETH with 100 USDC" |
| Prediction Markets | Bet via Myriad | "Bet $10 on YES for 'Will ETH hit 5k?'" |
| Token Launch | Clanker (Base, Ethereum, Arbitrum, Unichain), Flaunch (Base), Pump.fun (Solana) | "Launch MYTOKEN with symbol MTK on Clanker" |
| Names | Basenames, MegaETH, Somnia | "Register myname.base" |
| Yield | Aave, Morpho, Compound, Yearn | "Deposit 1000 USDC into Aave on Base" |
ethereum, base, arbitrum, optimism, polygon, avalanche, bsc, linea, sonic, berachain, abstract, unichain, ink, soneium, ronin, worldchain, sei, hyperevm, katana, somnia, plasma, monad, megaeth, solana
Use exact chain names as shown (e.g., "base" not "Base", "bsc" not "binance").
{
"type": "transaction",
"transactions": [
{
"to": "0xContractAddress",
"data": "0xCalldata...",
"value": "100000000000000000",
"chainId": 8453,
"description": "Buy PEPE with 0.1 ETH on Base"
}
],
"message": "Transaction ready. Sign and broadcast to complete."
}
Before signing every transaction, verify:
to address — Should be a known DEX router, bridge contract, or the address YOU specifiedvalue field — Should match the ETH/native amount from your prompt (for ERC-20 swaps this is usually "0")chainId — Should match the chain you requesteddescription — Should align with your original prompt0x095ea7b3 selector) — Spender should be a known protocol contractIf anything looks wrong, do not sign. Ask Tator again with a more specific prompt or verify the contract on a block explorer.
{
"type": "error",
"message": "Insufficient balance. You have 0.05 ETH but need 0.1 ETH.",
"code": "INSUFFICIENT_BALANCE"
}
| Code | Fix |
|---|---|
INSUFFICIENT_BALANCE | Check token balance before calling |
UNSUPPORTED_CHAIN | Use a supported chain from the list |
TOKEN_NOT_FOUND | Use contract address instead of name |
INVALID_PROMPT | Be more specific |
SLIPPAGE_TOO_HIGH | Reduce trade size or increase slippage tolerance |
Returned for information queries (prices, balances). Display the message to the user.
⚠️ Wallet Security: Tator does NOT require your private key. The x402 payment uses YOUR agent's existing wallet. Use a managed wallet service to avoid raw key exposure entirely.
| Your setup | Use this | Key exposure |
|---|---|---|
| Using Sponge Wallet | Pattern A below (recommended) | ✅ No raw keys |
| Using AgentWallet (frames.ag) | Pattern B below | ✅ No raw keys |
| Using Lobster.cash / Crossmint | See references/REFERENCE.md | ✅ No raw keys |
| Using Vincent Wallet | See references/REFERENCE.md | ✅ No raw keys |
| Need programmatic signing (viem, ethers, @x402/fetch, Solana) | See references/REFERENCE.md | ⚠️ Advanced — read security notes |
| Not sure / no wallet | Start with Pattern A (Sponge) | ✅ No raw keys |
curl -sS -X POST "https://api.wallet.paysponge.com/api/x402/fetch" \
-H "Authorization: Bearer $SPONGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://x402.quickintel.io/v1/tator/prompt",
"method": "POST",
"body": {
"prompt": "Buy 0.1 ETH worth of PEPE on Base",
"walletAddress": "0xYourSpongeWalletAddress",
"provider": "sponge-agent"
},
"preferred_chain": "base"
}'
Sponge handles the 402 payment flow automatically. You still verify and sign the returned trade transactions. Requires: SPONGE_API_KEY env var.
const response = await fetch('https://frames.ag/api/wallets/{username}/actions/x402/fetch', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.AGENTWALLET_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://x402.quickintel.io/v1/tator/prompt',
method: 'POST',
body: {
prompt: 'Swap 100 USDC for ETH on Base',
walletAddress: agentWalletAddress,
provider: 'my-agent'
}
})
});
const result = await response.json();
// Verify and broadcast via AgentWallet
if (result.type === 'transaction') {
for (const tx of result.transactions) {
// VERIFY before signing — check to, value, chainId, description
const broadcast = await fetch(
'https://frames.ag/api/wallets/{username}/actions/send-transaction',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.AGENTWALLET_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
chainId: tx.chainId, to: tx.to, data: tx.data, value: tx.value
})
}
);
console.log(`TX sent: ${(await broadcast.json()).hash}`);
}
}
For programmatic signing patterns (@x402/fetch, viem, ethers.js, Solana, Vincent), see
references/REFERENCE.md. These require a dedicated hot wallet with minimal funds — never use your main wallet.
For long-running operations, add "async": true to get a job ID:
{ "type": "pending", "jobId": "job_abc123", "message": "Poll for result." }
Poll (FREE — no payment): GET https://x402.quickintel.io/v1/tator/jobs/job_abc123
Always scan unknown tokens before trading. Use the quickintel-scan skill ($0.03) to check for honeypots, scams, and rug pull risks:
// 1. Scan token ($0.03)
const scan = await scanToken(chain, tokenAddress);
if (scan.tokenDynamicDetails.is_Honeypot) throw new Error('HONEYPOT');
if (scan.quickiAudit.has_Scams) throw new Error('SCAM');
// 2. Only then trade ($0.20)
const trade = await callTator(`Buy 0.1 ETH worth of ${tokenAddress} on ${chain}`, wallet);
Total cost: $0.23 for a scanned, verified trade. See references/REFERENCE.md for the complete scan-then-buy example.
YOUR SIDE TATOR'S SIDE
───────────── ─────────────
• Private keys (never shared) • Interprets your prompt
• Transaction review (before sign) • Constructs unsigned calldata
• Signing decision (your wallet) • Returns TXs for your review
• Broadcasting (you submit) • Charges $0.20 via x402
Tator NEVER receives your private key.
Tator CANNOT execute without your signature.
The worst Tator can do is return a bad transaction.
The worst YOU can do is sign it without checking.
Pay on any of these networks: Base (recommended), Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Unichain, Linea, Sonic, HyperEVM, Ink, Monad, MegaETH (USDM), Solana.
See references/REFERENCE.md for full USDC/USDM addresses per chain.
| Error | Cause | Fix |
|---|---|---|
402 Payment Required | No payment header | Ensure wallet configured with $0.20+ USDC |
402 Signature verification failed | Bad payload structure | Check references/REFERENCE.md common mistakes |
INSUFFICIENT_BALANCE | Can't afford trade | Check balance first |
TOKEN_NOT_FOUND | Unknown token | Use contract address |
payment-identifier extension for safe retries (see references/REFERENCE.md).Query accepted payments and schemas: GET https://x402.quickintel.io/accepted
quickintel-scan skill ($0.03/scan)references/REFERENCE.mdreferences/chains.mdTator's endpoint (x402.quickintel.io) is operated by Quick Intel LLC, a registered US-based cryptocurrency security company. Over 50 million token scans processed. APIs power DexTools, DexScreener, and Tator Trader. Operational since April 2023.