Skip to main content

Overview

The Token Security endpoint provides detailed security and restriction data for tokens on EVM and Solana chains. It analyzes the token contract to identify potential red flags, holding distributions, fee structures, transfer limitations, and minting/freezing capabilities that may affect trading.

GET Method - Single Item Query

Retrieve security information for a single token.

Query Parameters

  • blockchain (required) — The blockchain identifier (e.g., evm:1, evm:56, solana:solana, ethereum, bsc)
  • address (required) — Token contract address

Usage Examples

curl -X GET "https://api.mobula.io/api/2/token/security?blockchain=evm:1&address=0xe538905cf8410324e03a5a23c1c177a474d59b2b"
curl -X GET "https://api.mobula.io/api/2/token/security?blockchain=solana:solana&address=FMhPkAX5XLA2n6KvBqUTML5JLCdHZ7v2H4BfAbUucSuz"

Response Format

{
  "data": {
    "address": "0xe538905cf8410324e03a5a23c1c177a474d59b2b",
    "chainId": "evm:1",
    "contractHoldingsPercentage": 2.5,
    "contractBalanceRaw": "25000000000000000000000",
    "burnedHoldingsPercentage": 45.8,
    "totalBurnedBalanceRaw": "458000000000000000000000",
    "buyFeePercentage": 5.0,
    "sellFeePercentage": 5.0,
    "maxWalletAmountRaw": "1000000000000000000000",
    "maxSellAmountRaw": "500000000000000000000",
    "maxBuyAmountRaw": "750000000000000000000",
    "maxTransferAmountRaw": "500000000000000000000",
    "isLaunchpadToken": false,
    "top10HoldingsPercentage": 45.2,
    "top50HoldingsPercentage": 68.5,
    "top100HoldingsPercentage": 82.1,
    "top200HoldingsPercentage": 91.3,
    "isMintable": false,
    "isFreezable": false,
    "proTraderVolume24hPercentage": 12.5
  }
}

Response Fields

Core Fields

  • address (string) — Token contract address (checksummed for EVM)
  • chainId (string) — Blockchain chain ID (e.g., evm:1, solana:solana)

Holdings Analysis

  • contractHoldingsPercentage (number | null) — Percentage of total supply held by the contract itself. High values (>10%) may indicate centralization risks or potential honeypot mechanisms. EVM only.
  • contractBalanceRaw (string | null) — Raw balance of tokens held by the contract address (in smallest unit). EVM only.
  • burnedHoldingsPercentage (number | null) — Percentage of total supply sent to dead/burn addresses. Higher values generally indicate deflationary tokenomics. EVM only.
  • totalBurnedBalanceRaw (string | null) — Raw total balance of tokens sent to burn addresses (in smallest unit). EVM only.

Holder Distribution

  • top10HoldingsPercentage (number | null) — Percentage of total supply held by the top 10 holders (excluding liquidity pools). High concentration may indicate whale risk.
  • top50HoldingsPercentage (number | null) — Percentage of total supply held by the top 50 holders (excluding liquidity pools).
  • top100HoldingsPercentage (number | null) — Percentage of total supply held by the top 100 holders (excluding liquidity pools).
  • top200HoldingsPercentage (number | null) — Percentage of total supply held by the top 200 holders (excluding liquidity pools).

Fee Structure

  • buyFeePercentage (number) — Fee percentage charged on buy transactions (0-100 scale). Extracted from the token contract’s security configuration.
  • sellFeePercentage (number) — Fee percentage charged on sell transactions (0-100 scale). Extracted from the token contract’s security configuration.

Transfer Restrictions (EVM Only)

These fields attempt to query various common function names used by contracts to restrict transfers:
  • maxWalletAmountRaw (string | null) — Maximum token balance an address can hold (in wei/smallest unit). Null if no restriction exists.
    • Common function names checked: _maxWalletToken, maxWalletToken, maxWallet, _maxWalletBalance, maxWalletAmount, _maxWalletSize, MaxWalletSize, _walletMax, maxWalletSize
  • maxSellAmountRaw (string | null) — Maximum amount that can be sold in a single transaction (in wei/smallest unit). Null if no restriction exists.
    • Common function names checked: maxSellTransactionAmount, maxSellAmount
  • maxBuyAmountRaw (string | null) — Maximum amount that can be bought in a single transaction (in wei/smallest unit). Null if no restriction exists.
    • Common function names checked: maxBuyTransactionAmount, maxBuyAmount, maxBuy
  • maxTransferAmountRaw (string | null) — Maximum transaction amount regardless of buy/sell direction (in wei/smallest unit). Null if no restriction exists.
    • Common function names checked: _maxTransactionAmount, _maxTxAmount, maxTransactionAmount, MaxTxAmount, maxTransferAmount, maxTrxnAmount

Token Capabilities

  • isMintable (boolean | null) — Whether the token can have additional supply minted.
    • Solana: Determined via RPC by checking if mintAuthority is set on the mint account
    • EVM: Determined from security metadata if available
  • isFreezable (boolean | null) — Whether token accounts can be frozen by an authority.
    • Solana: Determined via RPC by checking if freezeAuthority is set on the mint account
    • EVM: Returns null (not applicable)

Market Analysis

  • isLaunchpadToken (boolean | null) — Whether the token comes from (or is still on) a bonding curve/launchpad (e.g., Pump.fun, Moonshot, Raydium Launchlab, Boop, Meteora DBC, Heaven). true indicates the token originated from a bonding curve mechanism, regardless of whether it has since graduated to a regular DEX pool.
  • proTraderVolume24hPercentage (number | null) — Estimated percentage of 24h trading volume coming through terminal UIs (Axiom, Phantom, BullX, etc.). Calculated as (feesPaid24h / volume24h) * 100 * 50. Volume that doesn’t pass through these UIs is generally non-organic (bots, direct contract calls). Higher values indicate more legitimate retail/terminal activity.

Chain Support

FeatureEVM ChainsSolana
Contract Holdings
Burned Holdings
Buy/Sell Fees
Max Wallet/Buy/Sell/Transfer
Top X Holdings
isMintable✅ (metadata)✅ (RPC)
isFreezable✅ (RPC)
isLaunchpadToken
proTraderVolume24hPercentage

Important Notes

  1. RPC Preference: This endpoint uses private RPCs when available for better reliability and performance.
  2. Null Values: Many fields may return null for legitimate reasons:
    • The token contract doesn’t implement the specific restriction
    • The function names don’t match common patterns
    • RPC call failed or timed out
    • Feature not supported on the chain type
  3. Interpretation Guidelines:
    • High contractHoldingsPercentage (>10%): Potential centralization or honeypot risk
    • High burnedHoldingsPercentage: Generally positive, indicates deflationary supply
    • High fees (buyFeePercentage/sellFeePercentage >10%): May limit trading activity
    • Transfer restrictions (maxWalletAmountRaw, maxBuyAmountRaw, maxSellAmountRaw): Common anti-whale measures
    • High top10HoldingsPercentage (>50%): Significant supply concentration, potential control risk
    • isMintable = true: Token supply can increase, potential inflation risk
    • isFreezable = true: Token accounts can be frozen by authority (common on Solana)
    • isLaunchpadToken = true: Token originated from a bonding curve (Pump.fun, Moonshot, etc.)
    • Low proTraderVolume24hPercentage: Most volume is non-organic (bots, direct contract calls), potential wash trading
  4. Performance: All RPC calls are executed in parallel for optimal response time.

Error Handling

The endpoint returns HTTP 400 for:
  • Missing or invalid blockchain parameter
  • Missing or invalid address parameter
  • Token not found in the system
Other fields gracefully degrade to null if specific data points cannot be retrieved.

Use Cases

  • Due Diligence: Automated security screening for new tokens
  • Trading Bots: Pre-trade validation to avoid tokens with restrictive mechanics
  • Portfolio Risk Analysis: Assess holdings for potential red flags
  • DeFi Integrations: Validate token compatibility with protocols
  • Community Tools: Display security badges or warnings for tokens
  • Supply Control Analysis: Monitor holder concentration and distribution via top X holdings percentages
  • Bonding Curve Origin: Identify tokens that originated from launchpads/bonding curves (Pump.fun, Moonshot, etc.)
  • Organic Volume Detection: Distinguish between terminal UI volume (organic) vs direct/bot volume (non-organic)