> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Token Security

> Retrieve comprehensive security information for a token including contract holdings, burned tokens, trading fees, transfer restrictions, holder distribution analysis, contract risk indicators, and AI-powered static code analysis for verified EVM contracts.

## Overview

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

## Data Sources

Security data is aggregated from multiple sources for comprehensive analysis:

| Source                   | Description                                                                                                                           | Chain Support |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| **GoPlus API**           | Primary security provider analyzing contract bytecode and on-chain behavior for honeypots, taxes, ownership, blacklists, and more     | EVM + Solana  |
| **Static Code Analysis** | Deep source code analysis that detects hidden risks in verified contracts (balance manipulation, hidden minting, honeypot mechanisms) | EVM only      |
| **On-chain RPC**         | Direct blockchain queries for real-time data (holdings, max limits, mint/freeze authorities)                                          | EVM + Solana  |
| **IsHoneypot Service**   | Specialized honeypot detection via simulated trades                                                                                   | EVM only      |

### Static Code Analysis Details

For EVM tokens with verified source code on block explorers (Etherscan, etc.), our static analysis can detect:

* **Balance manipulation** (`balanceMutable`): Hidden functions that allow arbitrary balance modifications
* **Minting capabilities** (`isMintable`): Hidden or obfuscated minting functions
* **Transfer restrictions** (`transferPausable`): Mechanisms to pause or block transfers
* **Blacklist/Whitelist** (`isBlacklisted`, `isWhitelisted`): Address restriction mechanisms
* **Tax manipulation** (`modifyableTax`): Ability to change fees after deployment
* **Honeypot mechanisms** (`isHoneypot`): Code patterns preventing sells
* **Self-destruct** (`selfDestruct`): Contract can be destroyed, stealing funds

Static analysis runs on tokens meeting liquidity thresholds and takes precedence over other sources when it detects risks.

## 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

### Step-by-Step Tutorial and Video Walkthrough

* Check out the guide: [Here](https://docs.mobula.io/guides/how-to-check-token-security)

### Usage Examples

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/token/security?blockchain=evm:1&address=0xe538905cf8410324e03a5a23c1c177a474d59b2b"
```

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/token/security?blockchain=solana:solana&address=FMhPkAX5XLA2n6KvBqUTML5JLCdHZ7v2H4BfAbUucSuz"
```

### Response Format

```json theme={null}
{
  "data": {
    "address": "0xe538905cf8410324e03a5a23c1c177a474d59b2b",
    "chainId": "evm:1",
    "contractHoldingsPercentage": 2.5,
    "contractBalanceRaw": "25000000000000000000000",
    "burnedHoldingsPercentage": 45.8,
    "totalBurnedBalanceRaw": "458000000000000000000000",
    "buyFeePercentage": 5.0,
    "sellFeePercentage": 5.0,
    "transferFeePercentage": 0.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,
    "transferPausable": false,
    "isBlacklisted": false,
    "isHoneypot": false,
    "isNotOpenSource": false,
    "renounced": true,
    "locked": "0.8500",
    "isWhitelisted": false,
    "balanceMutable": false,
    "lowLiquidity": null,
    "burnRate": "0.4580",
    "modifyableTax": false,
    "selfDestruct": false,
    "staticAnalysisStatus": "completed",
    "staticAnalysisDate": "2026-01-09T10:30:00.000Z",
    "liquidityBurnPercentage": 85.5,
    "liquidityAnalysis": [
      {
        "poolAddress": "0xa43fe16908251ee70ef74718545e4fe6c5ccec8f",
        "poolType": "uniswap-v2",
        "burnedPercentage": 36.4,
        "lockedPercentage": 0.0,
        "contractPercentage": 0.8,
        "unlockedPercentage": 62.8,
        "topHolders": [
          { "address": "0x371d986236...", "percentage": 31.8, "type": "unlocked", "protocol": null },
          { "address": "0x000000000000000000000000000000000000dead", "percentage": 20.6, "type": "burned", "protocol": null },
          { "address": "0x663a5c229c...", "percentage": 16.2, "type": "locked", "protocol": "Unicrypt" }
        ]
      }
    ]
  }
}
```

## 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.

* **`transferFeePercentage`** (number) — Fee-on-transfer tax applied to user-to-user transfers (0-100 scale). Measured on-chain via a two-hop ERC20 transfer in the honeypot simulation (whale → intermediary → recipient) to avoid whale-side fee exemptions, reconciled with the higher of the simulation / honeypot.is value. **EVM only** (Solana tokens return `0`).

### 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 GoPlus or static analysis if available
  * **Source**: GoPlus API, Static Code Analysis, On-chain RPC (Solana)

* **`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)

### Contract Security Flags

These flags indicate potential security risks detected by GoPlus and/or static code analysis:

* **`isHoneypot`** (boolean | null) — Whether the token is identified as a honeypot (can buy but cannot sell).
  * **Source**: GoPlus API, Static Code Analysis, IsHoneypot Service
  * **Risk**: 🔴 Critical - Unable to sell tokens

* **`isNotOpenSource`** (boolean | null) — Whether the contract source code is NOT verified/open source.
  * **Source**: GoPlus API
  * **Risk**: 🟠 High - Cannot audit contract behavior

* **`renounced`** (boolean | null) — Whether ownership has been renounced (owner is zero address or safe known address).
  * **Source**: GoPlus API
  * **Risk**: 🟢 Good if true - No owner can modify contract

* **`locked`** (string | null) — Percentage of LP tokens that are locked (0-1 scale as decimal string, e.g., "0.8500" = 85%).
  * **Source**: GoPlus API
  * **Risk**: Higher is better - Locked LP prevents rug pulls

* **`transferPausable`** (boolean | null) — Whether transfers can be paused by the owner/authority.
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🟠 Medium - Owner can freeze trading

* **`isBlacklisted`** (boolean | null) — Whether a blacklist mechanism exists (addresses can be blocked from trading).
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🟠 Medium - Specific addresses can be blocked

* **`isWhitelisted`** (boolean | null) — Whether a whitelist mechanism exists (only approved addresses can trade).
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🟠 Medium - Trading restricted to approved addresses

* **`balanceMutable`** (boolean | null) — Whether the owner can arbitrarily modify token balances.
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🔴 Critical - Owner can steal or manipulate funds

* **`modifyableTax`** (boolean | null) — Whether buy/sell taxes can be modified after deployment.
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🟠 Medium - Owner can increase fees unexpectedly

* **`selfDestruct`** (boolean | null) — Whether the contract contains a self-destruct function.
  * **Source**: GoPlus API, Static Code Analysis
  * **Risk**: 🔴 Critical - Contract can be destroyed, funds lost

* **`lowLiquidity`** (string | null) — Indicates low liquidity warning (value varies by source).
  * **Source**: GoPlus API
  * **Risk**: 🟡 Low - High slippage on trades

* **`burnRate`** (string | null) — Percentage of supply that has been burned (decimal string, e.g., "0.4580" = 45.8%).
  * **Source**: GoPlus API, On-chain RPC
  * **Risk**: 🟢 Informational - Higher values indicate deflationary tokenomics

### Static Analysis Status

* **`staticAnalysisStatus`** (string | null) — Current status of the static code analysis for this token:
  * `completed` — Analysis has been performed, results are included in security flags
  * `pending` — Analysis has been triggered, results will be available on next request
  * `not_available` — Chain not supported for static analysis or service unavailable
  * `insufficient_liquidity` — Token doesn't meet minimum liquidity requirements (default: \$5,000)
  * `not_evm` — Static analysis only available for EVM chains

* **`staticAnalysisDate`** (string | null) — ISO 8601 timestamp of when static analysis was last performed. Only present when `staticAnalysisStatus` is `completed`.

<Note>
  Static analysis is automatically triggered when you query `/token/security` for EVM tokens with verified source code that meet liquidity requirements. Results are typically available within seconds on subsequent requests.
</Note>

### Liquidity Analysis

* **`liquidityBurnPercentage`** (number | null) — Percentage (0-100) of liquidity pool tokens that have been sent to dead/zero addresses (burned). Higher values indicate the liquidity provider cannot rug pull by removing liquidity. Returns `null` if data is not available.

  **On-chain verification (Solana):** For PumpSwap, Raydium AMM v4, Raydium CPMM, and Meteora DYN pools, the LP burn percentage is verified directly on-chain by reading the LP mint supply and checking holder addresses against known dead addresses. This provides accurate data even when third-party providers (GoPlus) return incorrect values — e.g. PumpFun tokens migrated to PumpSwap have 100% LP burned by design.

* **`liquidityAnalysis`** (array | null) — Per-pool breakdown of LP holder distribution for the top 3 pools by 24h volume. Each entry contains:

  * `poolAddress` (string) — On-chain pool address
  * `poolType` (string) — DEX protocol type (see supported protocols below)
  * `burnedPercentage` (number) — LP tokens sent to dead/burn addresses (0-100)
  * `lockedPercentage` (number) — LP tokens held by known locker contracts (0-100)
  * `contractPercentage` (number) — LP tokens held by other contracts (0-100)
  * `unlockedPercentage` (number) — LP tokens held by regular wallets (0-100)
  * `topHolders` (array) — Top LP holders with `address`, `percentage`, `type` (`burned` | `locked` | `contract` | `unlocked`), and `protocol` (locker name if locked, e.g. "Unicrypt")

#### Supported Pool Types

**EVM — Fungible LP tokens (V2-style):**

| Pool Type    | Protocol             | Chains                              |
| ------------ | -------------------- | ----------------------------------- |
| `uniswap-v2` | Uniswap V2 (+ forks) | Ethereum, Base, BSC, Arbitrum, etc. |
| `camelot-v2` | Camelot V2           | Arbitrum                            |
| `balancer`   | Balancer             | Ethereum, Arbitrum, etc.            |
| `curve`      | Curve                | Ethereum, Arbitrum, etc.            |
| `fluid`      | Fluid                | Ethereum                            |

**EVM — Concentrated Liquidity (V3/V4-style, NFT positions):**

| Pool Type                   | Protocol                  | Chains                         |
| --------------------------- | ------------------------- | ------------------------------ |
| `uniswap-v3`                | Uniswap V3                | Ethereum, Base, Arbitrum, etc. |
| `uniswap-v4`                | Uniswap V4                | Ethereum, Base, Arbitrum, etc. |
| `pcs-infinity-cl`           | PancakeSwap Infinity CL   | BSC                            |
| `solidly-v3`                | Solidly V3 / Aerodrome CL | Base                           |
| `clanker-v3` / `clanker-v4` | Clanker                   | Base                           |
| `zora-v3` / `zora-v4`       | Zora                      | Zora Network                   |

**Solana — Fungible LP tokens:**

| Pool Type                      | Protocol            | Analysis Method                               |
| ------------------------------ | ------------------- | --------------------------------------------- |
| `pumpswap`                     | PumpSwap            | LP mint holders via `getTokenLargestAccounts` |
| `raydium`                      | Raydium AMM V4      | LP mint holders via `getTokenLargestAccounts` |
| `raydium-cpmm`                 | Raydium CPMM        | LP mint holders via `getTokenLargestAccounts` |
| `meteora-dyn` / `meteora-dyn2` | Meteora Dynamic AMM | LP mint holders via `getTokenLargestAccounts` |
| `meteora-dbc`                  | Meteora DBC         | LP mint holders via `getTokenLargestAccounts` |

**Solana — Concentrated Liquidity (CLMM, indexed RPC):**

| Pool Type | Protocol       | Analysis Method                                                        |
| --------- | -------------- | ---------------------------------------------------------------------- |
| `orca`    | Orca Whirlpool | NFT position scanning via `getProgramAccounts` + owner resolution      |
| `meteora` | Meteora DLMM   | Position scanning via `getProgramAccounts` (owner embedded in account) |

<Note>
  Raydium CLMM is not currently supported for liquidity analysis — Raydium V3 no longer stores individual position accounts on-chain.
</Note>

#### Holder Classification

Each LP holder is classified into one of four types:

| Type           | Description                                                                                         |
| -------------- | --------------------------------------------------------------------------------------------------- |
| **`burned`**   | LP tokens sent to known dead/burn addresses. Liquidity is permanently locked and cannot be removed. |
| **`locked`**   | LP tokens held by a known locker protocol. Liquidity is locked for a defined period.                |
| **`contract`** | LP tokens held by an unrecognized smart contract. May or may not be locked.                         |
| **`unlocked`** | LP tokens held by a regular wallet (EOA). Liquidity can be removed at any time.                     |

**Recognized burn addresses:**

| Chain  | Addresses                                                      |
| ------ | -------------------------------------------------------------- |
| EVM    | `0x0000...0000`, `0x...dead`, `0xdead...4206`, `0x0000...0001` |
| Solana | `1111...1112`, `1111...1113`, `1nc1nerator1111...1111`         |

**Recognized LP locker protocols:**

| Protocol         | Chains                        |
| ---------------- | ----------------------------- |
| **Unicrypt**     | Ethereum, BSC, Arbitrum, Base |
| **Team Finance** | Ethereum, BSC                 |
| **PinkLock**     | Ethereum, BSC, Arbitrum, Base |
| **Mudra Locker** | BSC                           |

### 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

| Feature                      | EVM Chains | Solana | Source                                 |
| ---------------------------- | ---------- | ------ | -------------------------------------- |
| Contract Holdings            | ✅          | ❌      | On-chain RPC                           |
| Burned Holdings              | ✅          | ❌      | On-chain RPC                           |
| Buy/Sell Fees                | ✅          | ✅      | GoPlus API                             |
| Max Wallet/Buy/Sell/Transfer | ✅          | ❌      | On-chain RPC                           |
| Top X Holdings               | ✅          | ✅      | Token Service                          |
| isMintable                   | ✅          | ✅      | GoPlus, Static, RPC                    |
| isFreezable                  | ❌          | ✅      | On-chain RPC                           |
| isLaunchpadToken             | ✅          | ✅      | Pools Storage                          |
| proTraderVolume24hPercentage | ✅          | ✅      | Token Service                          |
| isHoneypot                   | ✅          | ❌      | GoPlus, Static, IsHoneypot             |
| isNotOpenSource              | ✅          | ❌      | GoPlus API                             |
| renounced                    | ✅          | ❌      | GoPlus API                             |
| locked                       | ✅          | ❌      | GoPlus API                             |
| transferPausable             | ✅          | ✅      | GoPlus, Static                         |
| isBlacklisted                | ✅          | ✅      | GoPlus, Static                         |
| isWhitelisted                | ✅          | ❌      | GoPlus, Static                         |
| balanceMutable               | ✅          | ✅      | GoPlus, Static                         |
| modifyableTax                | ✅          | ❌      | GoPlus, Static                         |
| selfDestruct                 | ✅          | ❌      | GoPlus, Static                         |
| lowLiquidity                 | ✅          | ✅      | GoPlus API                             |
| burnRate                     | ✅          | ✅      | GoPlus, RPC                            |
| staticAnalysisStatus         | ✅          | ❌      | Static Analysis                        |
| staticAnalysisDate           | ✅          | ❌      | Static Analysis                        |
| liquidityBurnPercentage      | ✅          | ✅      | On-chain RPC, GoPlus                   |
| liquidityAnalysis            | ✅          | ✅      | On-chain RPC (indexed for Solana CLMM) |

## 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. **Data Source Priority**: When multiple sources provide the same data:
   * Static analysis takes precedence when it detects a risk (true values override)
   * GoPlus provides baseline security data
   * On-chain RPC provides real-time holdings/limits

4. **Interpretation Guidelines**:
   * High `contractHoldingsPercentage` (>10%): Potential centralization or honeypot risk
   * High `burnedHoldingsPercentage`: Generally positive, indicates deflationary supply
   * High fees (`buyFeePercentage`/`sellFeePercentage`/`transferFeePercentage` >10%): May limit trading activity or indicate a fee-on-transfer honeypot
   * 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
   * `isHoneypot = true`: 🔴 Critical risk - unable to sell tokens
   * `renounced = false`: Owner can still modify contract behavior
   * `balanceMutable = true`: 🔴 Critical risk - owner can steal funds
   * `selfDestruct = true`: 🔴 Critical risk - contract can be destroyed

5. **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)
* **Rug Pull Prevention**: Check `locked`, `renounced`, `balanceMutable` for rug pull risks
* **Honeypot Detection**: Multi-source honeypot detection via GoPlus, static analysis, and IsHoneypot service


## OpenAPI

````yaml get /2/token/security
openapi: 3.0.0
info:
  version: 1.0.0
  title: Mobula API
  description: >-
    Documentation of the Mobula API


    **Demo API**: The default server (demo-api.mobula.io) is a demo API with
    rate limits.

    For production use, please use api.mobula.io with an API key from
    https://admin.mobula.io
servers:
  - url: https://demo-api.mobula.io/api/
    description: Demo API (rate limited, for testing only)
  - url: https://api.mobula.io/api/
    description: Production API (requires API key)
security: []
tags:
  - name: V2 - Token
    description: Token details, price, security, ATH, and holder data
  - name: V2 - Market Data
    description: Market details, OHLCV history, and lighthouse metrics
  - name: V2 - Trades
    description: Token trades, enriched trades, and trade filters
  - name: V2 - Wallet
    description: Wallet positions, activity, trades, analysis, and labels
  - name: V2 - Assets
    description: Cross-chain asset details and price history
  - name: V2 - Swap
    description: Swap quoting and execution
  - name: V2 - Perps
    description: Perpetual futures quoting, execution, and positions
  - name: V2 - Bridge
    description: Cross-chain bridge quoting and intent status (Alpha Preview)
  - name: V2 - DeFi
    description: Bonding pools and pulse data
  - name: V2 - Search
    description: Universal fast search
  - name: V2 - Blockchains
    description: System metadata and chain listings
  - name: V1 - Market Data
    description: Market prices, history, sparklines, pairs, and multi-data
  - name: V1 - Wallet
    description: Wallet portfolio, transactions, history, and NFTs
  - name: V1 - Token
    description: First buyers
  - name: V1 - Trades
    description: Market trades by pair
  - name: V1 - Metadata
    description: Token metadata, categories, trendings, and news
  - name: V1 - Assets
    description: List all assets
  - name: V1 - Search
    description: Search for assets, tokens, and pairs
  - name: V1 - DeFi
    description: Bonding pool pulse data
  - name: V1 - Blockchains
    description: Blockchain listings, pairs, and stats
  - name: V1 - Webhooks
    description: Webhook management
  - name: V1 - Feed
    description: Custom feed creation
paths:
  /2/token/security:
    get:
      tags:
        - V2 - Token
      summary: Get Token Security Information
      parameters:
        - schema:
            type: string
            description: Blockchain chain ID (e.g., "evm:56", "solana:solana")
          required: false
          description: Blockchain chain ID (e.g., "evm:56", "solana:solana")
          name: chainId
          in: query
        - schema:
            type: string
            description: Token contract address
          required: true
          description: Token contract address
          name: address
          in: query
      responses:
        '200':
          description: >-
            Token security response with holdings, fees, and transfer
            restrictions
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      address:
                        type: string
                      chainId:
                        type: string
                      contractHoldingsPercentage:
                        type: number
                        nullable: true
                      contractBalanceRaw:
                        type: string
                        nullable: true
                      burnedHoldingsPercentage:
                        type: number
                        nullable: true
                      totalBurnedBalanceRaw:
                        type: string
                        nullable: true
                      buyFeePercentage:
                        type: number
                      sellFeePercentage:
                        type: number
                      transferFeePercentage:
                        type: number
                      maxWalletAmountRaw:
                        type: string
                        nullable: true
                      maxSellAmountRaw:
                        type: string
                        nullable: true
                      maxBuyAmountRaw:
                        type: string
                        nullable: true
                      maxTransferAmountRaw:
                        type: string
                        nullable: true
                      isLaunchpadToken:
                        type: boolean
                        nullable: true
                      top10HoldingsPercentage:
                        type: number
                        nullable: true
                      top50HoldingsPercentage:
                        type: number
                        nullable: true
                      top100HoldingsPercentage:
                        type: number
                        nullable: true
                      top200HoldingsPercentage:
                        type: number
                        nullable: true
                      isMintable:
                        type: boolean
                        nullable: true
                      isFreezable:
                        type: boolean
                        nullable: true
                      proTraderVolume24hPercentage:
                        type: number
                        nullable: true
                      transferPausable:
                        type: boolean
                        nullable: true
                      isBlacklisted:
                        type: boolean
                        nullable: true
                      isHoneypot:
                        type: boolean
                        nullable: true
                      isNotOpenSource:
                        type: boolean
                        nullable: true
                      renounced:
                        type: boolean
                        nullable: true
                      locked:
                        type: string
                        nullable: true
                      isWhitelisted:
                        type: boolean
                        nullable: true
                      balanceMutable:
                        type: boolean
                        nullable: true
                      lowLiquidity:
                        type: string
                        nullable: true
                      burnRate:
                        type: string
                        nullable: true
                      modifyableTax:
                        type: boolean
                        nullable: true
                      selfDestruct:
                        type: boolean
                        nullable: true
                      staticAnalysisStatus:
                        type: string
                        nullable: true
                        enum:
                          - completed
                          - pending
                          - not_available
                          - insufficient_liquidity
                          - not_evm
                      staticAnalysisDate:
                        type: string
                        nullable: true
                      liquidityBurnPercentage:
                        type: number
                        nullable: true
                      securityScore:
                        type: number
                        nullable: true
                      securityScoreUpdatedAt:
                        type: string
                        nullable: true
                      securityScoreDetails:
                        oneOf:
                          - type: object
                            properties:
                              version:
                                type: number
                                enum:
                                  - 3
                              base:
                                type: number
                              killed:
                                type: boolean
                              killReason:
                                type: string
                                nullable: true
                              hardKill:
                                type: object
                                nullable: true
                                properties:
                                  id:
                                    type: string
                                  reason:
                                    type: string
                                  description:
                                    type: string
                                  meta:
                                    type: object
                                    additionalProperties:
                                      nullable: true
                                required:
                                  - id
                                  - reason
                                  - description
                                  - meta
                              checks:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: integer
                                      minimum: 1
                                      maximum: 15
                                    name:
                                      type: string
                                    kind:
                                      type: string
                                      enum:
                                        - penalty
                                        - bonus
                                    delta:
                                      type: number
                                    rawDelta:
                                      type: number
                                    cap:
                                      type: number
                                    cexAdjusted:
                                      type: boolean
                                    meta:
                                      type: object
                                      additionalProperties:
                                        nullable: true
                                  required:
                                    - id
                                    - name
                                    - kind
                                    - delta
                                    - rawDelta
                                    - cap
                                    - cexAdjusted
                                    - meta
                              hardFloors:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    description:
                                      type: string
                                    maxScore:
                                      type: number
                                    meta:
                                      type: object
                                      additionalProperties:
                                        nullable: true
                                  required:
                                    - id
                                    - description
                                    - maxScore
                                    - meta
                              cexMultiplier:
                                type: number
                              tier1Cexes:
                                type: array
                                items:
                                  type: string
                              inputs:
                                type: object
                                properties:
                                  chainId:
                                    type: string
                                  address:
                                    type: string
                                  liquidityUSD:
                                    type: number
                                  liquidityMaxUSD:
                                    type: number
                                  marketCapUSD:
                                    type: number
                                  volume24hUSD:
                                    type: number
                                  organicVolume24hUSD:
                                    type: number
                                  organicRatio:
                                    type: number
                                    nullable: true
                                  priceChange24hPct:
                                    type: number
                                  holdersCount:
                                    type: number
                                  top10HoldingsPct:
                                    type: number
                                  lpHoldingsPct:
                                    type: number
                                  bundlersCount:
                                    type: number
                                  bundlersHoldingsPct:
                                    type: number
                                  insidersCount:
                                    type: number
                                  insidersHoldingsPct:
                                    type: number
                                  snipersCount:
                                    type: number
                                  snipersHoldingsPct:
                                    type: number
                                  devHoldingsPct:
                                    type: number
                                  proTradersCount:
                                    type: number
                                  proTradersHoldingsPct:
                                    type: number
                                  deployerTokensCount:
                                    type: number
                                  deployerMigrationsCount:
                                    type: number
                                  migrationRate:
                                    type: number
                                    nullable: true
                                  tier1Cexes:
                                    type: array
                                    items:
                                      type: string
                                  cexMultiplier:
                                    type: number
                                  ageDays:
                                    type: number
                                    nullable: true
                                  bondedAgeDays:
                                    type: number
                                    nullable: true
                                  securityFlags:
                                    type: object
                                    nullable: true
                                    additionalProperties:
                                      nullable: true
                                  securitySourcesAvailable:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - chainId
                                  - address
                                  - liquidityUSD
                                  - marketCapUSD
                                  - volume24hUSD
                                  - organicVolume24hUSD
                                  - organicRatio
                                  - priceChange24hPct
                                  - holdersCount
                                  - top10HoldingsPct
                                  - lpHoldingsPct
                                  - bundlersCount
                                  - bundlersHoldingsPct
                                  - insidersCount
                                  - insidersHoldingsPct
                                  - snipersCount
                                  - snipersHoldingsPct
                                  - devHoldingsPct
                                  - proTradersCount
                                  - proTradersHoldingsPct
                                  - deployerTokensCount
                                  - deployerMigrationsCount
                                  - migrationRate
                                  - tier1Cexes
                                  - cexMultiplier
                                  - ageDays
                                  - bondedAgeDays
                                  - securityFlags
                                  - securitySourcesAvailable
                              rawScore:
                                type: number
                              finalScore:
                                type: number
                              tier:
                                type: string
                                enum:
                                  - Very Low
                                  - Low
                                  - Moderate
                                  - High
                                  - Critical
                              computedAt:
                                type: string
                            required:
                              - version
                              - base
                              - killed
                              - killReason
                              - hardKill
                              - checks
                              - hardFloors
                              - cexMultiplier
                              - tier1Cexes
                              - inputs
                              - rawScore
                              - finalScore
                              - tier
                              - computedAt
                          - type: object
                            properties:
                              version:
                                type: number
                                enum:
                                  - 2
                              base:
                                type: number
                              rules:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    label:
                                      type: string
                                    bucket:
                                      type: string
                                      enum:
                                        - market
                                        - decentralization
                                        - aiCode
                                        - spl
                                    delta:
                                      type: number
                                    meta:
                                      type: object
                                      additionalProperties:
                                        nullable: true
                                  required:
                                    - id
                                    - label
                                    - bucket
                                    - delta
                                    - meta
                              caps:
                                type: object
                                properties:
                                  market:
                                    type: object
                                    properties:
                                      raw:
                                        type: number
                                      applied:
                                        type: number
                                      max:
                                        type: number
                                    required:
                                      - raw
                                      - applied
                                      - max
                                  decentralization:
                                    type: object
                                    properties:
                                      raw:
                                        type: number
                                      applied:
                                        type: number
                                      max:
                                        type: number
                                    required:
                                      - raw
                                      - applied
                                      - max
                                  aiCode:
                                    type: object
                                    properties:
                                      raw:
                                        type: number
                                      applied:
                                        type: number
                                      max:
                                        type: number
                                    required:
                                      - raw
                                      - applied
                                      - max
                                  spl:
                                    type: object
                                    properties:
                                      raw:
                                        type: number
                                      applied:
                                        type: number
                                      max:
                                        type: number
                                    required:
                                      - raw
                                      - applied
                                      - max
                                required:
                                  - market
                                  - decentralization
                                  - aiCode
                                  - spl
                              inputs:
                                type: object
                                properties:
                                  chainId:
                                    type: string
                                  address:
                                    type: string
                                  liquidityUSD:
                                    type: number
                                  marketCapUSD:
                                    type: number
                                  volume24hUSD:
                                    type: number
                                  organicVolume24hUSD:
                                    type: number
                                  organicRatio:
                                    type: number
                                    nullable: true
                                  priceChange24hPct:
                                    type: number
                                  hl24Pct:
                                    type: number
                                    nullable: true
                                  holdersCount:
                                    type: number
                                  deployerTokensCount:
                                    type: number
                                  top10HoldingsPct:
                                    type: number
                                  lpHoldingsPct:
                                    type: number
                                  capBand:
                                    type: string
                                    nullable: true
                                    enum:
                                      - MICROCAP
                                      - SMALL_CAP
                                      - MID_LARGE_CAP
                                  securityFlags:
                                    type: object
                                    nullable: true
                                    additionalProperties:
                                      nullable: true
                                  securitySourcesAvailable:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - chainId
                                  - address
                                  - liquidityUSD
                                  - marketCapUSD
                                  - volume24hUSD
                                  - organicVolume24hUSD
                                  - organicRatio
                                  - priceChange24hPct
                                  - hl24Pct
                                  - holdersCount
                                  - deployerTokensCount
                                  - top10HoldingsPct
                                  - lpHoldingsPct
                                  - capBand
                                  - securityFlags
                                  - securitySourcesAvailable
                              finalScore:
                                type: number
                              tier:
                                type: string
                                enum:
                                  - Very Low
                                  - Low
                                  - Moderate
                                  - High
                                  - Critical
                              computedAt:
                                type: string
                            required:
                              - version
                              - base
                              - rules
                              - caps
                              - inputs
                              - finalScore
                              - tier
                              - computedAt
                          - nullable: true
                      liquidityAnalysis:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            poolAddress:
                              type: string
                            poolType:
                              type: string
                            burnedPercentage:
                              type: number
                            lockedPercentage:
                              type: number
                            contractPercentage:
                              type: number
                            unlockedPercentage:
                              type: number
                            topHolders:
                              type: array
                              items:
                                type: object
                                properties:
                                  address:
                                    type: string
                                  percentage:
                                    type: number
                                  type:
                                    type: string
                                    enum:
                                      - burned
                                      - locked
                                      - contract
                                      - unlocked
                                  protocol:
                                    type: string
                                    nullable: true
                                required:
                                  - address
                                  - percentage
                                  - type
                                  - protocol
                          required:
                            - poolAddress
                            - poolType
                            - burnedPercentage
                            - lockedPercentage
                            - contractPercentage
                            - unlockedPercentage
                            - topHolders
                    required:
                      - address
                      - chainId
                      - contractHoldingsPercentage
                      - contractBalanceRaw
                      - burnedHoldingsPercentage
                      - totalBurnedBalanceRaw
                      - buyFeePercentage
                      - sellFeePercentage
                      - transferFeePercentage
                      - maxWalletAmountRaw
                      - maxSellAmountRaw
                      - maxBuyAmountRaw
                      - maxTransferAmountRaw
                      - isLaunchpadToken
                      - top10HoldingsPercentage
                      - top50HoldingsPercentage
                      - top100HoldingsPercentage
                      - top200HoldingsPercentage
                      - isMintable
                      - isFreezable
                      - proTraderVolume24hPercentage
                      - transferPausable
                      - isBlacklisted
                      - isHoneypot
                      - isNotOpenSource
                      - renounced
                      - locked
                      - isWhitelisted
                      - balanceMutable
                      - lowLiquidity
                      - burnRate
                      - modifyableTax
                      - selfDestruct
                      - staticAnalysisStatus
                      - staticAnalysisDate
                      - liquidityBurnPercentage
                      - securityScore
                      - securityScoreUpdatedAt
                      - securityScoreDetails
                      - liquidityAnalysis
                  hostname:
                    type: string
                required:
                  - data

````