Skip to main content
Alpha — This endpoint is in early access. Response shape, field names, and filter semantics may change without notice. Currently Solana-only; EVM launchpads (Clanker v4, Bankr) will be added in a follow-up release.

Query Details

This endpoint returns a polymorphic, chronological feed of a token deployer’s on-chain activity. Each row is one of three types:
typeMeaning
feeClaimThe deployer drained their accumulated trading fees from a protocol vault. Supported protocols: PumpFun bonding curve, PumpSwap AMM, and Meteora DBC — which is the backbone of Bags, Moonshot, Believe, Subs.fun, Cults.fun, Time.fun, and most Solana launchpads.
swapThe deployer executed a swap on a pool that contains the queried token. side is buy if the deployer ended up with MORE of the queried token, sell otherwise.
transferA direct transfer of the queried token to (direction: "in") or from (direction: "out") the deployer.
ParameterRequiredDescription
blockchainYesBlockchain identifier (e.g., solana, base, ethereum).
tokenYesToken mint / contract address.
typeNoFilter to a single entry type: feeClaim, swap, or transfer.
limitNoPage size. 1–200, default 50.
offsetNoPagination offset, default 0.
For PumpFun and PumpSwap, the per-creator vault is shared across all of the deployer’s coins — a feeClaim row under those protocols reflects the same on-chain claim event, but the amount may include fees from OTHER coins by the same creator. Rows from meteoradbc carry an exact tokenAddress and poolAddress and attribute 1:1 to a specific coin.

Step-by-Step Tutorial


Response Overview

Each data[i] is discriminated on the type field. Common fields across all variants:
  • type: "feeClaim" | "swap" | "transfer" — the discriminator.
  • blockchain: Friendly blockchain name (e.g. "solana").
  • date: Event timestamp in milliseconds.
  • transactionHash: On-chain transaction hash / signature.
feeClaim additional fields
  • protocol: "pumpfun" | "pumpswap" | "meteoradbc".
  • blockHeight: Block / slot number, or null.
  • instructionIndex: Stable index of the claim instruction within the transaction.
  • creatorAddress: Address that received the claimed fees (= the deployer).
  • quoteAddress: Mint of the asset the claim is denominated in (wSOL, USDC, …).
  • tokenAddress: Source coin mint for protocols with per-pool vaults (Meteora DBC). null for per-creator vaults (PumpFun, PumpSwap).
  • poolAddress: Source pool address if available; null for per-creator vaults.
  • amountRaw: Amount claimed in base units of quoteAddress.
  • amountUSD: USD value (0 until enrichment lands).
swap additional fields
  • side: "buy" (deployer received the queried token) or "sell".
  • poolAddress: The pool the swap went through.
  • baseTokenAddress / quoteTokenAddress: token0 / token1 of the pool. Not re-oriented to the queried token — compare addresses to know which side is which.
  • baseTokenAmount / baseTokenAmountRaw / quoteTokenAmount / quoteTokenAmountRaw: amounts on each leg.
  • amountUSD: USD value of the swap.
  • swapSenderAddress: On-chain swap sender. Often a router (Jupiter, TG bots) when the deployer trades through an aggregator.
transfer additional fields
  • direction: "in" (deployer received) or "out" (deployer sent).
  • counterpartyAddress: The other side of the transfer.
  • tokenAddress: Mint of the transferred token (= the queried token).
  • amountRaw / amountUSD: transferred amount.
Top-level response
  • data: array of polymorphic entries as described above.
  • deployer: the queried token’s recorded deployer address, or null if unknown.
  • pagination: { offset, limit, count, hasMore }.

Usage Examples

Full feed for a Solana meme coin (GET):
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&limit=50"
Fee claims only:
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&type=feeClaim"
Paginate further:
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&limit=50&offset=50"

Sample Response

{
  "data": [
    {
      "type": "feeClaim",
      "blockchain": "solana",
      "date": 1745251935000,
      "transactionHash": "5Uxxpff8iDTHM3Nu9D653aP6T2yzVbW8PfwsWBxi9ApwBAo7dbYm7ATLKBXbycAFP1yQQ1RYCByVqzzzaGNdVD6q",
      "blockHeight": 358123456,
      "instructionIndex": 2,
      "protocol": "meteoradbc",
      "creatorAddress": "82VbBzGtb8v5wFx1TM6iaMmLyRSLy8WeqA123orjHGzL",
      "quoteAddress": "So11111111111111111111111111111111111111112",
      "tokenAddress": "Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr",
      "poolAddress": "DrKy5sCkpNSWFuUKcPn5STN7g9ghcH9GYcrMqwJxUG4W",
      "amountRaw": "10157228",
      "amountUSD": 0
    },
    {
      "type": "swap",
      "blockchain": "solana",
      "date": 1745251800000,
      "transactionHash": "4n3xM...",
      "side": "buy",
      "poolAddress": "DrKy5sCkpNSWFuUKcPn5STN7g9ghcH9GYcrMqwJxUG4W",
      "baseTokenAddress": "Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr",
      "quoteTokenAddress": "So11111111111111111111111111111111111111112",
      "baseTokenAmount": 1234567.89,
      "baseTokenAmountRaw": "1234567890000",
      "quoteTokenAmount": 1.5,
      "quoteTokenAmountRaw": "1500000000",
      "amountUSD": 250.4,
      "swapSenderAddress": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"
    },
    {
      "type": "transfer",
      "blockchain": "solana",
      "date": 1745251500000,
      "transactionHash": "2kPm...",
      "direction": "out",
      "counterpartyAddress": "5q54X...",
      "tokenAddress": "Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr",
      "amountRaw": "500000000",
      "amountUSD": 42.5
    }
  ],
  "deployer": "82VbBzGtb8v5wFx1TM6iaMmLyRSLy8WeqA123orjHGzL",
  "pagination": {
    "offset": 0,
    "limit": 50,
    "count": 3,
    "hasMore": false
  }
}

Error Responses

404 — Token not found:
{ "statusCode": 404, "message": "Token not found" }
400 — Missing parameters:
{ "statusCode": 400, "message": "Blockchain is required" }
{ "statusCode": 400, "message": "Token address is required" }

Use Cases

  • Rug & dump detection: see if the deployer has been selling or transferring the token out.
  • Trust scoring: quantify fee extraction (claim frequency & amount) across all supported launchpads — Bags, Moonshot, Believe, PumpFun, etc.
  • Dev reputation: track a creator’s full activity on their coin across time in one feed.
  • Pre-trade due diligence: check for recent unusual deployer activity before entering a position.