Coin Holders
by pump.x4o2.com in Onchain & crypto
The largest positions in a coin as pump.fun tracks them: each holder's wallet, pump.fun username and profile, amount held, position value, cost basis, realized and unrealized P&L and whether they are the developer. Use for holder concentration and smart-money analysis of a token.
https://pump.x4o2.com/v1/coin/:mint/holders- Price
- $0.001
- per call in USDC
- Uptime
- 100%
- last 30 days
- Response time
- 420 ms
- 473 ms slowest 5%
- Last check
- Passed
- 4 h ago, next any minute now
Reliability
Status and outage history · Atom feed · Watch with other listings
How to call it
GET https://pump.x4o2.com/v1/coin/:mint/holders
Each call costs $0.001 in USDC on Base, paid with the request over x402.
Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.
Example request
From the listing.
GET https://pump.x4o2.com/v1/coin/:mint/holders?limit=50&maxAge=5&stale=0Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | string | No | Number of entries, 1-100 |
maxAge | string | No | Serve a cached copy up to this many seconds old; 0 forces the freshest allowed |
stale | string | No | 1 returns any cached copy immediately and refreshes in the background |
Example response
The provider's example. We can't check it without paying.
Example response, 112 lines
{
"data": {
"hasMore": true,
"positions": [
{
"accountKind": "person",
"amountBought": 33222827.13715201,
"amountBoughtUsd": 138664.44064501926,
"amountHeld": 27535448.11699,
"callout": null,
"chainId": 1399811149,
"coinMint": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump",
"costBasisAmount": 27535448.11699,
"costBasisUsd": 128231.97405955517,
"isVerified": false,
"lowQuality": false,
"pnlPercentage": 1145.0764323741341,
"pnlUsd": 1587813.8299095354,
"profileImage": "https://socialimages.pump.fun/profile-images/pumpatar/2/Orange~Body-3-Green~Face-8~Glasses-black~Hairstyle-1---Green~...",
"realizedPnlUsd": 9286.993489819346,
"userId": "aa653097-46b7-40f7-bc93-3b84d8787853",
"userName": "latentfish83215",
"verifiedBadgeVisible": true,
"walletAddress": "HDixbrzwwLXczhDBk1JVrurPQsuLE8FUKnW2pucSXN3o",
"xUsername": null
},
{
"accountKind": "person",
"amountBought": 14413072.671787988,
"amountBoughtUsd": 356240.85633483774,
"amountHeld": 19611607.990354,
"callout": {
"actingUser": null,
"actingUserId": null,
"assetClass": "ASSET_CLASS_TOKEN",
"calledOutAtMcap": 27728837,
"calloutId": "c80441e0-f76e-4bc6-8672-8419a9383529",
"calloutPrice": 0.0287531428558,
"calloutTimestamp": "2026-08-04T03:30:32.325Z",
"chain": null,
"commentCount": 82,
"hasLiked": false,
"hasReposted": false,
"likes": 582,
"maxMultiplier": 4.541219206305773,
"maxMultiplierAt": "2026-09-19T20:29:33.664Z",
"mediaUrl": null,
"multiple": 2.155731573909867,
"perp": null,
"quoteCount": 0,
"quotedCallout": null,
"quotedCalloutId": null,
"replyCount": 206,
"repostCount": 30,
"thesis": "I'm back 100x the Cate",
"updateCount": 124,
"updates": [
{
"content": "Market down, gCate up",
"createdAt": "2026-10-14T21:06:24.525Z",
"id": "c77e4dce-9dfb-437b-b111-f4900de7d3df",
"likeCount": 3,
"mediaUrl": "https://socialimages.pump.fun/community-media/f779e161-0f93-49ec-b763-2142854fd005/75177424-7c92-4884-8eb9-72baaf1ca015",
"parentMessageId": null,
"repostCount": 0,
"viewCount": 702
},
{
"content": "Cate coin is reversing ... Get your entries gCate is going to moon",
"createdAt": "2026-10-12T12:25:22.721Z",
"id": "a8d3716e-7793-477a-b1b5-36c2f396c4f6",
"likeCount": 4,
"mediaUrl": "https://socialimages.pump.fun/community-media/f779e161-0f93-49ec-b763-2142854fd005/e7931320-8882-42c6-8dd3-751af83cc35e",
"parentMessageId": null,
"repostCount": 1,
"viewCount": 1302
}
],
"viewCount": 570966
},
"chainId": 1399811149,
"coinMint": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump",
"costBasisAmount": 19611607.99030797,
"costBasisUsd": 554335.129946899,
"isVerified": true,
"lowQuality": false,
"pnlPercentage": 119.2909991770251,
"pnlUsd": 661271.9153029163,
"profileImage": "https://socialimages.pump.fun/profile-images/2M2vLX34LXMg24dMEnjWHvRXS1tshpEDRWzmXgV8ENNZ/1483b61e-df0d-4b93-a3d4-161...",
"realizedPnlUsd": 0,
"userId": "f779e161-0f93-49ec-b763-2142854fd005",
"userName": "SossaDotKek",
"verifiedBadgeVisible": false,
"walletAddress": "2M2vLX34LXMg24dMEnjWHvRXS1tshpEDRWzmXgV8ENNZ",
"xUsername": "GeoffO7"
}
],
"totalCount": 5730
},
"meta": {
"ageMs": 40967,
"observedAt": 1792074228502,
"parts": {
"positions": {
"observedAt": 1792074228502,
"source": "cache"
}
},
"pumpCalls": 0,
"source": "cache"
}
}Call it from code
The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.001.
curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://pump.x4o2.com/v1/coin/:mint/holders?limit=50&maxAge=5&stale=0'
# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://pump.x4o2.com/v1/coin/:mint/holders?limit=50&maxAge=5&stale=0' \
| grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decodeJavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
// Pays at most $0.001 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.001" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.001 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fpump.x4o2.com%2Fv1%2Fcoin%2F%3Amint%2Fholders
const res = await pay("https://pump.x4o2.com/v1/coin/:mint/holders?limit=50&maxAge=5&stale=0");
console.log(res.status, await res.text());Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
# Pays at most $0.001 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.001"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))
with x402_requests(client) as session:
res = session.get("https://pump.x4o2.com/v1/coin/:mint/holders?limit=50&maxAge=5&stale=0")
print(res.status_code, res.text)Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 4 h ago | Passed | 402 | 146 ms | $0.001 |
| 8 h ago | Passed | 402 | 473 ms | $0.001 |
| 13 h ago | Passed | 402 | 420 ms | $0.001 |
| 18 h ago | Passed | 402 | 433 ms | $0.001 |
| 22 h ago | Passed | 402 | 215 ms | $0.001 |
Show 2 older checks
| 27 h ago | Passed | 402 | 429 ms | $0.001 |
| 31 h ago | Passed | 402 | 168 ms | $0.001 |