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/mcpProject 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.
- Quote with
GET /api/agent/v1/quoteand check minimumAmountOut and fees. - 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. - Sign each transaction in order and send it with
POST /api/sendas{ "tx": "<base64>" }. The blockhash expires in about a minute. - 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>'Blinks (Solana Actions)
Share a coin on X and people can buy or sell from the post in wallets and apps that show Blinks.
Coin page links unfurl as Blinks:
https://pairity.wtf/token/<MINT>Direct Action URL and a dial.to link that works anywhere:
solana-action:https://pairity.wtf/api/actions/trade/<MINT>
https://dial.to/?action=solana-action%3Ahttps%3A%2F%2Fpairity.wtf%2Fapi%2Factions%2Ftrade%2F<MINT>Buttons: buy 0.1, 0.5 or 1 SOL or a custom amount, sell 25%, 50% or 100%. Discovery file: https://pairity.wtf/actions.json
Rate limits
Per IP, per minute. Going over returns HTTP 429; wait and retry.
| Reads (tokens, token, trades, skills, launch config, OpenAPI) | 60 |
| Quotes | 30 |
| Build trade | 10 |
| Transaction status | 60 |
| Prepare launch | 3 |
| MCP requests (tool calls also count in their own row) | 60 |
| Blink metadata | 60 |
| Blink transactions | 10 |
Trading and launching are not available in some jurisdictions (see the terms). Always check a transaction before you sign it.