Назад към всички

tator-trader

// Execute crypto trades using natural language via Tator's AI trading API. Use when: buying tokens, selling tokens, swapping, bridging cross-chain, sending tokens, wrapping/unwrapping ETH, opening perp positions, betting on prediction markets, launching tokens, registering blockchain names, or managin

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nametator-trader
descriptionExecute crypto trades using natural language via Tator's AI trading API. Use when: buying tokens, selling tokens, swapping, bridging cross-chain, sending tokens, wrapping/unwrapping ETH, opening perp positions, betting on prediction markets, launching tokens, registering blockchain names, or managing yield positions. Triggers: 'buy token', 'sell token', 'swap X for Y', 'bridge to', 'send tokens', 'open long', 'open short', 'bet on', 'launch token', 'register name', 'deposit yield', 'wrap ETH'. Supports 24 chains. Returns UNSIGNED transactions — you sign and broadcast. Costs $0.20 USDC per request via x402. Recommended wallet integration: Sponge (SPONGE_API_KEY) or AgentWallet (AGENTWALLET_API_TOKEN) — no raw private keys needed. This skill is a transaction builder and never accesses your private keys or tokens.

Tator AI Trading API

Trade 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.

Quick Reference

SituationAction
User wants to buy/sell/swap a tokenBuild prompt with amount + token + chain, call Tator
User wants to bridge tokensInclude source chain, destination chain, amount in prompt
User wants to open a leveraged positionInclude 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 returnedExecute sequentially — wait for each to confirm before sending next
Unknown/new tokenUse contract address instead of name in prompt
User hasn't scanned the token yetScan first with quickintel-scan skill ($0.03) before buying

Endpoint

POST https://x402.quickintel.io/v1/tator/prompt

{
  "prompt": "Buy 0.1 ETH worth of PEPE on Base",
  "walletAddress": "0xYourPublicWalletAddress",
  "provider": "your-agent-name"
}
FieldRequiredDescription
promptYesNatural language trading instruction
walletAddressYesYour PUBLIC wallet address (receives tokens, signs TX)
providerYesYour agent/app identifier
asyncNoReturns job ID to poll. Default: false
chainNoPreferred chain (e.g., "base", "ethereum")
slippageNoSlippage 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 walletAddress field is your public address — the one you'd share to receive tokens.

Writing Good Prompts

Better prompts = better results. You pay $0.20 regardless of outcome.

GoodBad
"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.

Capabilities

CategoryOperationsExample
TradingBuy, sell, swap"Swap 100 USDC for ETH on Arbitrum"
TransfersSend, wrap, unwrap, burn"Send 50 USDC to 0x1234..."
BridgingCross-chain via Relay, LiFi, GasZip, deBridge"Bridge 100 USDC from Base to Arbitrum"
PerpsLong/short via Avantis (Base)"Open 5x long on ETH with 100 USDC"
Prediction MarketsBet via Myriad"Bet $10 on YES for 'Will ETH hit 5k?'"
Token LaunchClanker (Base, Ethereum, Arbitrum, Unichain), Flaunch (Base), Pump.fun (Solana)"Launch MYTOKEN with symbol MTK on Clanker"
NamesBasenames, MegaETH, Somnia"Register myname.base"
YieldAave, Morpho, Compound, Yearn"Deposit 1000 USDC into Aave on Base"

Supported Chains (24)

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").

Handling Responses

Transaction Response (Most Common)

{
  "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:

  1. to address — Should be a known DEX router, bridge contract, or the address YOU specified
  2. value field — Should match the ETH/native amount from your prompt (for ERC-20 swaps this is usually "0")
  3. chainId — Should match the chain you requested
  4. description — Should align with your original prompt
  5. For approvals (0x095ea7b3 selector) — Spender should be a known protocol contract

If anything looks wrong, do not sign. Ask Tator again with a more specific prompt or verify the contract on a block explorer.

Error Response

{
  "type": "error",
  "message": "Insufficient balance. You have 0.05 ETH but need 0.1 ETH.",
  "code": "INSUFFICIENT_BALANCE"
}
CodeFix
INSUFFICIENT_BALANCECheck token balance before calling
UNSUPPORTED_CHAINUse a supported chain from the list
TOKEN_NOT_FOUNDUse contract address instead of name
INVALID_PROMPTBe more specific
SLIPPAGE_TOO_HIGHReduce trade size or increase slippage tolerance

Info Response

Returned for information queries (prices, balances). Display the message to the user.

Wallet Integration

⚠️ 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 setupUse thisKey exposure
Using Sponge WalletPattern A below (recommended)✅ No raw keys
Using AgentWallet (frames.ag)Pattern B below✅ No raw keys
Using Lobster.cash / CrossmintSee references/REFERENCE.md✅ No raw keys
Using Vincent WalletSee 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 walletStart with Pattern A (Sponge)✅ No raw keys

Pattern A: Sponge Wallet (Recommended — 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.

Pattern B: AgentWallet (No Raw Keys)

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.

Async Mode

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

Scan Before You Buy

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.

Security Model

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.

Payment Networks (14)

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 Handling

ErrorCauseFix
402 Payment RequiredNo payment headerEnsure wallet configured with $0.20+ USDC
402 Signature verification failedBad payload structureCheck references/REFERENCE.md common mistakes
INSUFFICIENT_BALANCECan't afford tradeCheck balance first
TOKEN_NOT_FOUNDUnknown tokenUse contract address

Important Notes

  • Payment charged regardless of outcome. Use payment-identifier extension for safe retries (see references/REFERENCE.md).
  • Multi-TX requires sequential execution. Approvals must confirm before swaps.
  • Bridge times vary. 30 seconds to 30 minutes depending on protocol.
  • Perps have liquidation risk. Leverage trading can lose your collateral.
  • Scan results are point-in-time. Re-scan periodically for held tokens.

Discovery Endpoint

Query accepted payments and schemas: GET https://x402.quickintel.io/accepted

Cross-Reference

  • Token security scanningquickintel-scan skill ($0.03/scan)
  • Deep x402 implementation, all wallet patterns, transaction verificationreferences/REFERENCE.md
  • Chain details, RPCs, block explorersreferences/chains.md

About

Tator'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.