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.
The Token Dev History endpoint returns a single, chronological feed of a token deployer’s on-chain activity for a specific coin — so you can see what the dev is doing in one place instead of stitching together fee-claim events, DEX swaps, and wallet transfers across three different datasets. It’s the same feed you’d build to power a “dev activity” panel, a rug-detection alert, or a trust score.

What this endpoint does

One call returns a merged, paginated stream of three polymorphic event types, all attributable to the token’s deployer:
  • feeClaim — the deployer drained their accumulated trading fees from a protocol vault.
    • Supported: PumpFun bonding curve, PumpSwap AMM, and Meteora DBC — which is the underlying program for Bags, Moonshot, Believe, Subs.fun, Cults.fun, Time.fun, and most Solana launchpads. You don’t have to query each launchpad separately.
  • swap — the deployer executed a swap on a pool that contains the queried token. The side field tells you if they bought or sold from their perspective.
  • transfer — a direct token transfer to or from the deployer, with direction: "in" or "out".
Each row has a type discriminator — client code switches on that to render each variant.

What you’ll need

Note: all Mobula endpoints require an API key. Get a free API key: Here You’ll provide two things:
  • blockchain — e.g. solana, base, ethereum.
  • token — the token’s mint / contract address.
The endpoint reads the deployer from Mobula’s token registry automatically; you don’t need to know it yourself.

When to use Token Dev History

  • Rug & dump detection — detect fresh transfer out-rows from the deployer while their coin is trading.
  • Fee extraction scoring — sum feeClaim.amountRaw to quantify how aggressively a dev is cashing out.
  • Cross-launchpad dev views — a Bags token graduates to PumpSwap? The same endpoint keeps following the deployer.
  • Pre-trade due diligence — show “last 10 dev actions” before a buy.
If you want the deployer’s other tokens, use the Wallet Deployer endpoint. If you want wallet-level trade history for any address (not just the deployer), use Wallet Trades.

Walkthrough

1. Prepare your query

ParameterRequiredDescription
blockchainYesBlockchain identifier (solana, base, ethereum, …).
tokenYesToken mint / contract address.
typeNoFilter to one variant: feeClaim, swap, or transfer.
limitNo1–200, default 50.
offsetNoPagination offset, default 0.

2. Call the endpoint

Full feed (all three types interleaved by date DESC):
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&limit=50" \
  -H "Authorization: Bearer <YOUR_API_KEY>"
Only fee claims (useful for a “dev earnings” card):
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&type=feeClaim"
Next page:
curl -X GET "https://api.mobula.io/api/2/token/dev-history?blockchain=solana&token=Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr&limit=50&offset=50"

3. Discriminate on type in your client

import { MobulaClient } from '@mobula_labs/sdk';

const mobula = new MobulaClient({ apiKey: process.env.MOBULA_API_KEY! });

const { data, deployer } = await mobula.fetchTokenDevHistory({
  blockchain: 'solana',
  address: 'Fv8HhSVUquGC8WHqmMJLp7QEZMN4cZqcZjeYUPqvbrrr',
  limit: 50,
});

for (const entry of data) {
  switch (entry.type) {
    case 'feeClaim':
      console.log(
        `🎁 ${deployer} claimed ${entry.amountRaw} of ${entry.quoteAddress} on ${entry.protocol}`,
      );
      break;
    case 'swap':
      console.log(
        `🔁 dev ${entry.side === 'buy' ? 'bought' : 'sold'} — tx ${entry.transactionHash}`,
      );
      break;
    case 'transfer':
      console.log(
        `📤 dev ${entry.direction === 'out' ? 'sent to' : 'received from'} ${entry.counterpartyAddress}`,
      );
      break;
  }
}

Attribution caveats

For PumpFun bonding curve and PumpSwap AMM, the creator fee vault is derived from the creator’s address alone and is shared across all their coins. A feeClaim row under those protocols reflects one real on-chain claim, but the amount may include fees accumulated from other coins by the same deployer. If you need exact per-coin attribution, rely on meteoradbc rows, which carry tokenAddress and poolAddress precisely (per-pool vaults).