Know who can pull the liquidity
before your agent buys.

Launch data for Robinhood Chain and Solana, updated every 20 seconds. Every ETH-quoted Uniswap v4 and v3 pool created on Robinhood Chain in the last 24 hours, and pump.fun tokens 5 minutes to 4 hours old, decoded into buyer bursts with a rug check on each one: who held the pool's liquidity at that moment. Robinhood signals are scored 30 minutes later, Solana ones at graduation or 20 minutes, rugs counted. Pay per call in USDC. No keys, no signup.

Check a token before you buy · $0.02GET https://api.paxie.fun/v1/rh/token/{address}/rugcheckWho holds the liquidity of every tracked v4 pool for that token right now: the creator's share (they can pull it), burned, locker or launchpad, other wallets. Untracked tokens return 404 and cost nothing.
95%of Robinhood Chain buyer bursts fire on pools whose creator still holds the liquidity
82%of those had it pulled within 30 minutes of the signal
2 of 35pulled when the liquidity was burned, locked or launchpad-held

Last 24 hours, live from this API (728 bursts checked). A pull is 80%+ of the pool's liquidity removed; it scores the burst at -100%. Raw bursts are not a buy signal: the median scored burst returned -3.5% under our exit rule after 2% costs. We publish the losers too.

4,273pools watched
1,205bursts, last 24h
1,140scored outcomes
446pump.fun bursts, 24h
6ssince last update

Try the free sample15-minute-delayed, 3 bursts per chain, no wallet needed

Endpoints

/v1/rh/token/:addr/rugcheckRobinhood Chain$0.02/call

Before you buy: who holds the token's liquidity right now. Creator share (can pull it), burned, locker or launchpad, other wallets, LP age, and a held / safe verdict.

needs a token addressGET https://api.paxie.fun/v1/rh/token/:addr/rugcheck
/v1/rh/bursts/liveRobinhood Chain$0.01/call

Buyer bursts within seconds of firing (data updated every 20 s): net ETH in, buy and sell swaps, scripted or spread buying, pool age, and the rug check. Filter with ?lp=safe.

Open and payGET https://api.paxie.fun/v1/rh/bursts/live?minutes=60
/v1/rh/bursts/historyRobinhood Chain$0.02/call

The last 24 hours of bursts, each scored 30 minutes later: return, peak, every exit rule net of costs, and whether the liquidity was pulled.

Open and payGET https://api.paxie.fun/v1/rh/bursts/history?hours=24
/v1/rh/pools/newRobinhood Chain$0.005/call

Fresh ETH-quoted pools on Uniswap v4 and v3: token, age, last price, liquidity, last swap and the last hour of net flow.

Open and payGET https://api.paxie.fun/v1/rh/pools/new?hours=6
/v1/sol/bursts/liveSolana · pump.fun$0.01/call

pump.fun bonding-curve bursts on tokens 5 min to 4 h old: SOL in, where on the curve, and the burst anatomy (same-slot bundles, scripted sizes, top holders).

Open and payGET https://api.paxie.fun/v1/sol/bursts/live?minutes=60
/v1/sol/bursts/historySolana · pump.fun$0.02/call

The last 24 hours of pump.fun bursts, scored at graduation or 20 minutes: which graduated, how fast, peak, and every exit rule net of costs.

Open and payGET https://api.paxie.fun/v1/sol/bursts/history?hours=24
/v1/snapshotBoth chains$0.03/call

Everything in one call: live bursts on both chains, the last hour of new Robinhood pools, and 24-hour tallies.

Open and payGET https://api.paxie.fun/v1/snapshot?minutes=60
/v1/rh/pools/:id/flowRobinhood Chain$0.005/call

One pool (v4 pool id or v3 pool address), minute by minute: net ETH, buy ETH, sell ETH, swap counts, plus its burst history.

needs a pool id from /v1/rh/pools/newGET https://api.paxie.fun/v1/rh/pools/:id/flow
/v1/sol/wallets/leadersSolana · pump.fun$0.05/call

Copy-trade leaders ranked by replay: each wallet's last 60 big buys run through one fixed copy exit, fees in, shrunk for small samples, plus how the leader itself sells.

Open and payGET https://api.paxie.fun/v1/sol/wallets/leaders
/v1/rh/crewsRobinhood Chain$0.02/call

Repeat buyers: wallets that keep showing up inside Robinhood bursts. Sniper crews, with burst counts and when they were last seen.

Open and payGET https://api.paxie.fun/v1/rh/crews
/v1/sol/callers/leaderboardSolana · pump.fun$0.05/call

Telegram call-channel callers (Solana and Robinhood Chain calls) ranked by what happened after their own posts, traded or not: per caller n, hit15 (reached +15% within 60 min), win35 (+35% before -20%), x2, rug rate (-80% within 60 min) and median 1/5/15/60-minute returns and max moves, each shrunk toward the pooled value so a few lucky calls do not top the board. Callers are sha1 hashes; chats are named only when they are public channels/groups. Windows 24h, 7d, 30d. Rebuilt hourly; refused (503, not charged) if older than 3 h.

needs a path parameterGET https://api.paxie.fun/v1/sol/callers/leaderboard
/v1/sol/calls/outcomesSolana · pump.fun$0.05/call

Every human call from the followed Telegram chats (Solana and Robinhood Chain tokens) that is 1-48 hours old, with its return 1, 4, 12, 24 and 48 hours after the first post, the 48-hour high and when it came, the dip before the high, and whether the token died. Sampled every 10 minutes from our own series; no third-party prices passed through. Callers hashed, public chats only by name. Rebuilt hourly; refused (503, not charged) if older than 3 h.

needs a path parameterGET https://api.paxie.fun/v1/sol/calls/outcomes
/v1/sol/calls/liveSolana · pump.fun$0.02/call

Contract addresses (Solana and Robinhood Chain) posted in the followed Telegram call chats in the last 1-120 minutes: first seen, how many chats posted it, our own price and market cap at the first call (pump.fun curve or on-chain pool reads only), the move since and the max since, and its stage (curve band or pool age). Public channels are named with their @username; private chats appear only as counts. Data rewritten every 20 s; refused (503, not charged) if older than 120 s.

needs a path parameterGET https://api.paxie.fun/v1/sol/calls/live
/v1/sol/grads/liveSolana · pump.fun$0.01/call

Solana pump.fun graduations from the last 1-240 minutes: time on the curve (gradMin), the curve path into graduation from our own curve reads, the buyer burst that preceded it when there was one, and returns 1, 5 and 15 minutes after graduation from our own sampled series. Data rewritten every 20 s; refused (503, not charged) if older than 120 s.

needs a path parameterGET https://api.paxie.fun/v1/sol/grads/live
/v1/sol/grads/historySolana · pump.fun$0.02/call

Solana pump.fun graduations from the last 1-48 hours with aggregates: median time on the curve, how many followed a buyer burst, and median post-graduation returns at 1, 5 and 15 minutes (with the share still up at 15). Data rewritten every 20 s; refused (503, not charged) if older than 120 s.

needs a path parameterGET https://api.paxie.fun/v1/sol/grads/history
/v1/desk/tradesRobinhood Chain$0.01/call

The Paxie.Matrix desk's closed trades on Solana and Robinhood Chain since a time, for auditing its track record: book (main or explore), mode (paper = simulated fills on live prices, no real money), desk and lane, token, open and close times, return on cost with fees, peak gain and exit reason. Random-twin baseline desks are excluded. Aggregates are free at /v1/desk/stats. Data rewritten every 60 s; refused (503, not charged) if older than 10 min.

needs a path parameterGET https://api.paxie.fun/v1/desk/trades
/v1/sol/wallets/:addr/copy-statsSolana · pump.fun$0.01/call

Every buy by one Solana copy-leader wallet that the desk observed in the last 14 days (newest 100): leader size, curve position, token age, other leaders on it, our quote drift and paper fill slip vs the leader, what the leader did next, the token's 60-minute path after the buy and the replayed copy return, plus a summary. On-chain addresses only. Rebuilt hourly; untracked wallets answer 404 and are not charged.

needs a path parameterGET https://api.paxie.fun/v1/sol/wallets/:addr/copy-stats
/v1/stream/passRobinhood Chain$0.50/pass

A stream pass ($0.50 per pass, not per call): up to 60 minutes of Server-Sent Events at /v1/sol/bursts/stream?token=…, pushing Solana pump.fun and Robinhood Chain buyer bursts, pump.fun graduations and new Telegram calls (public chats named, callers hashed) as they fire. The worker appends events every few seconds; heartbeat every 15 s, up to 2 connections per pass. Answers 503 stream_disabled (not charged) when the server has streaming switched off.

needs a path parameterGET https://api.paxie.fun/v1/stream/pass
/v1/rh/token/:addr/precallRobinhood Chain$0.02/call

What a Robinhood Chain token did in the hour before a Telegram call on it was posted, for every call our desk saw in the last 48 h: buy swaps and ETH in the 10 minutes before the post, the run over the hour before (run60), the token's age at the call, the most buy txs in one block, and the pre-post buyers' wallets (on-chain addresses; distinct wallets and the most in one block). flags = the bot's own veto rules that match: run (>= 3x in the hour before), young (< 30 min old at the call), cluster (>= 5 wallets in one block). No chat names, callers or message text. Tokens with no call answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.

needs a path parameterGET https://api.paxie.fun/v1/rh/token/:addr/precall
/v1/rh/token/:addr/verdictRobinhood Chain$0.03/call

One call before you buy a Robinhood Chain token: avoid, caution or ok, with every reason. Combines the rug check (who holds the Uniswap v4 liquidity, or the Pons bonding-curve fill), liquidity pulls after buyer bursts, the pre-call flags if the token was called (ran >= 3x before the post, same-block wallet cluster, < 30 min old), the token's age, and our desk's own last trade and shadow outcome on it. The rules are listed in every response. Untracked tokens answer 404 and are not charged. Rug check and pool data rewritten every 20 s, pre-call and desk data every 30 s; stale inputs are refused (503, not charged). Research data from our own paper-trading desk, not trading advice.

needs a path parameterGET https://api.paxie.fun/v1/rh/token/:addr/verdict
/v1/sol/token/:mint/verdictSolana · pump.fun$0.02/call

Everything our desk recorded on a Solana mint in the last 48 h: the safety gate result (with rugcheck.xyz numbers, attributed), scout scores (numbers), our grade from scanner-card fields, the trader's action and conviction, the shadow outcomes (return at 1/5/15/60 min, max favourable / adverse excursion) and our last closed paper trade. No trader thesis, no bot card text, no chat content. Mints the desk never saw answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.

needs a path parameterGET https://api.paxie.fun/v1/sol/token/:mint/verdict
/v1/scanner/:mintRobinhood Chain$0.01/call

Our grade (A-F) for a Solana or Robinhood Chain token from the holder structure on scanner-bot cards: holders, top-10 share, largest holder, snipers, bundles, dev holding, fresh wallets, curve progress, as numbers, with the penalties that set the grade. Derived fields only; the bots' cards are not reproduced. Covers tokens our desk scanned in the last 48 h; others answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.

needs a path parameterGET https://api.paxie.fun/v1/scanner/:mint

Quickstart

TypeScript

// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(process.env.KEY)) }],
  spendControls: { maxAmountPerPayment: "$0.05" }, // hard cap per call
});
const r = await pay("https://api.paxie.fun/v1/rh/bursts/live?minutes=240&tier=all");
const { bursts } = await r.json(); // 402 -> sign -> retry happens inside
const safe = bursts.filter((b) => b.lp?.class === "safe"); // creator can't pull the LP

Python

# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact import ExactEvmScheme
from x402.http.clients import x402_requests

client = x402ClientSync()
client.register("eip155:8453", ExactEvmScheme(signer=EthAccountSigner(Account.from_key(os.environ["KEY"]))))
client.set_spend_controls({"max_amount_per_payment": "$0.05"})
bursts = x402_requests(client).get("https://api.paxie.fun/v1/rh/bursts/live?minutes=240&tier=all").json()["bursts"]
safe = [b for b in bursts if (b.get("lp") or {}).get("class") == "safe"]  # creator can't pull the LP

Use a wallet that holds only a few dollars of USDC on Base (or Solana with @x402/svm). Errors (404, 503, stale data) are never charged. Poll /v1/rh/bursts/live every minute for $14.40/day, or once with a 240-minute window. Browser apps on any origin can call it (CORS is open for the x402 headers).

Before you backtest

Every field is tagged in /v1/fields and in the OpenAPI schemas (x-available). History rows already carry their outcome: use only signal-time fields as inputs.

Use it from an agent (MCP)

Add one URL to any MCP client and your agent gets the data as tools. Paid tools settle per call in USDC with x402; sample and status are free.

"mcpServers": {
  "paxie-matrix-data": { "url": "https://api.paxie.fun/mcp" }
}

rh_token_rugcheck rh_bursts_live rh_bursts_history rh_pools_new rh_pool_flow rh_crews sol_bursts_live sol_bursts_history sol_wallet_leaders launch_snapshot rh_token_precall rh_token_verdict sol_token_verdict scanner_grade sol_callers_leaderboard sol_calls_outcomes sol_calls_live sol_grads_live sol_grads_history desk_trades sol_wallet_copy_stats stream_pass sample status

How paying works

In a browser

Hit "Open and pay", connect any wallet with USDC on Base or Solana, approve the cents, get the JSON.

From an agent

Any x402 client pays automatically: request, get a 402 with the price, sign, retry. Or add the MCP server: https://api.paxie.fun/mcp.

What it costs

half a cent to 5 cents a call, settled per request in USDC. No subscription, no rate-limit tiers. Failed calls are not charged.

Sample: /v1/rh/bursts/live

A real burst from this API, at least 15 minutes old (live data is paid). Times are epoch ms.

{
  "chain": "robinhood",
  "schemaVersion": 1,
  "generatedAt": 1791595915773,
  "ageSec": 6,
  "ethUsd": 2488.28,
  "rules": {
    "main": "net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old",
    "lite": "net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old",
    "refire": "main thresholds again on the same pool >= 30 min after its last burst",
    "old": "first main-threshold burst on a 6-24 h old pool",
    "outcome": "path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"
  },
  "bursts": [
    {
      "id": "c3b5289129e66e21",
      "at": 1791594944823,
      "token": "0x802ca85c16e3b038add1f197e37159b4c0fd829e",
      "pool": "0x14a488f457334387f9d74bffb702376c4144c81d",
      "tier": "refire",
      "dex": "v3",
      "shape": "v3",
      "inflowEth": 1.469,
      "buys": 26,
      "sells": 5,
      "windowSec": 60,
      "poolAgeMin": 45.9,
      "sameSizeMax": 5,
      "top3Share": 0.3,
      "sizeCV": 0.88,
      "buyers": null,
      "repeatBuyers": null,
      "lp": null,
      "outcome": {
        "scored": false
      }
    }
  ]
}