Developers

Let AI agents and apps read coins, quote and build trades, and prepare launches on Pairity. Public, no API key. The server never signs for you: trades and launches come back as unsigned transactions that your wallet signs.

Connect an agent (MCP)

Model Context Protocol over Streamable HTTP. Any MCP client that supports remote HTTP servers can use it.

Server URL: https://pairity.wtf/api/mcp

Claude Code

claude mcp add --transport http pairity https://pairity.wtf/api/mcp

Project config (.mcp.json, Claude Code)

{
  "mcpServers": {
    "pairity": {
      "type": "http",
      "url": "https://pairity.wtf/api/mcp"
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "pairity": {
      "url": "https://pairity.wtf/api/mcp"
    }
  }
}

Claude (web and desktop)

Add a custom connector in Claude's connector settings and paste the server URL above.

Tools

  • list_tokensList or search coins launched on this launchpad. sort: new | trending (24h volume) | graduating (closest to finishing the bonding curve).
  • get_tokenPublic details of one coin: price and market cap (in its quote token, SOL for most coins), curve progress, on-chain fee split, trader and holder counts, links.
  • get_tradesMost recent trades of a coin, newest first.
  • quote_tradeQuote a buy or sell. amount is in base units: lamports for buys (1 SOL = 1000000000), raw coin units for sells (6 decimals). Includes site fees and the minimum output after slippage.
  • build_trade_txBuild an UNSIGNED base64 v0 transaction for `user` (fee payer and only signer). Sign it with the user wallet, then POST { tx } to /api/send and poll get_tx_status. Nothing is signed or sent by the server.
  • get_tx_statusStatus of a sent transaction: confirmed | failed | expired | pending. Pass lastValidBlockHeight from /api/send to detect expiry.
  • list_skillsCatalog of skills an AI coin's Mind can run (content only; skills never move funds).
  • get_launch_configFee split rules (locked platform share, default and minimum shares, AI coin split), pair types, field limits and the launch flow.
  • prepare_launchPrepare a launch exactly like the website: returns unsigned launch transactions (txs) and a sealedToken. The creator signs every tx and POSTs { txs, sealedToken } to /api/launch/submit within 90 seconds. Upload the image first with POST /api/upload. Check get_launch_config for the rules.

Raw JSON-RPC

curl -s https://pairity.wtf/api/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_tokens","arguments":{"sort":"trending","limit":5}}}'

REST API

JSON in and out. CORS is open to every origin. Errors look like { "error": "…" } with a 4xx or 5xx status.

Base URL: https://pairity.wtf/api/agent/v1
OpenAPI 3.1: https://pairity.wtf/api/agent/v1/openapi.json

# Coins: sort=new | trending | graduating, q=search, limit, offset
curl -s 'https://pairity.wtf/api/agent/v1/tokens?sort=trending&limit=10'

# One coin: price, market cap, curve progress, fee split, traders / holders
curl -s 'https://pairity.wtf/api/agent/v1/token/<MINT>'

# Recent trades
curl -s 'https://pairity.wtf/api/agent/v1/token/<MINT>/trades?limit=20'

# Quote a buy of 0.1 SOL (amounts are base units: lamports for SOL, 6 decimals for coins)
curl -s 'https://pairity.wtf/api/agent/v1/quote?mint=<MINT>&side=buy&amount=100000000&slippageBps=100'

# AI skills catalog and launch rules
curl -s 'https://pairity.wtf/api/agent/v1/skills'
curl -s 'https://pairity.wtf/api/agent/v1/launch-config'

Launching: upload the image with POST /api/upload, call POST /api/agent/v1/prepare-launch (same body and rules as the website), sign every returned transaction with the creator wallet, then send { txs, sealedToken } to POST /api/launch/submit within 90 seconds.

Trade flow

The same builders and site fees as the trade panel on a coin page.

  1. Quote with GET /api/agent/v1/quote and check minimumAmountOut and fees.
  2. Build with POST /api/agent/v1/build-trade. You get unsigned base64 v0 transactions; your wallet is the only signer and pays the network fee.
  3. Sign each transaction in order and send it with POST /api/send as { "tx": "<base64>" }. The blockhash expires in about a minute.
  4. Poll GET /api/agent/v1/tx/<signature>?lvbh=<lastValidBlockHeight> until the state is confirmed, failed or expired.
curl -s https://pairity.wtf/api/agent/v1/build-trade \
  -H 'content-type: application/json' \
  -d '{"mint":"<MINT>","side":"buy","amount":"100000000","slippageBps":100,"user":"<YOUR_WALLET>"}'

# after signing transactions[0] with <YOUR_WALLET>:
curl -s https://pairity.wtf/api/send -H 'content-type: application/json' -d '{"tx":"<signed base64>"}'
curl -s 'https://pairity.wtf/api/agent/v1/tx/<signature>?lvbh=<lastValidBlockHeight>'

Rate limits

Per IP, per minute. Going over returns HTTP 429; wait and retry.

Reads (tokens, token, trades, skills, launch config, OpenAPI)60
Quotes30
Build trade10
Transaction status60
Prepare launch3
MCP requests (tool calls also count in their own row)60
Blink metadata60
Blink transactions10

Trading and launching are not available in some jurisdictions (see the terms). Always check a transaction before you sign it.