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

# CategoryTokenConnection

> CategoryTokenConnection is a GraphQL object type in the Codex API. See every field, its type, and which operations return it.

<div data-generated>
  ## GraphQL

  ```
  type CategoryTokenConnection {
    results: [TokenFilterResult]
    count: Int
    page: Int
  }

  type SocialLinks {
    bitcointalk: String
    blog: String
    coingecko: String
    coinmarketcap: String
    discord: String
    email: String
    facebook: String
    github: String
    instagram: String
    linkedin: String
    reddit: String
    slack: String
    telegram: String
    twitch: String
    twitter: String
    website: String
    wechat: String
    whitepaper: String
    youtube: String
  }

  type TokenInfo {
    id: String!
    address: String!
    circulatingSupply: String
    cmcId: Int
    gridAssetId: String
    bluechipRating: String
    isScam: Boolean
    name: String
    networkId: Int!
    symbol: String!
    totalSupply: String
    imageThumbHash: String
    imageThumbUrl: String
    imageSmallUrl: String
    imageLargeUrl: String
    imageBannerUrl: String
    videoExternalUrl: String
    description: String
  }

  type OrganizationUrl {
    url: String!
    type: String
  }

  type OrganizationSocial {
    url: String!
    type: String
  }

  type AssetDeployment {
    id: String!
    networkId: Int!
    address: String!
    standard: String
    assetId: String!
    rootId: String!
    token: EnhancedToken
  }

  type Asset {
    id: String!
    name: String
    description: String
    ticker: String
    type: String
    status: String
    icon: String
    rootId: String!
    assetDeployments: [AssetDeployment!]!
  }

  type Organization {
    name: String!
    foundingDate: String
    descriptionShort: String
    descriptionLong: String
    tagLine: String
    type: String
    sector: String
    urls: [OrganizationUrl!]!
    socials: [OrganizationSocial!]!
    logo: String
    icon: String
    header: String
    rootId: String!
    assets: [Asset!]!
  }

  type ExplorerTokenData {
    id: String!
    blueCheckmark: Boolean
    description: String
    divisor: String
    tokenPriceUSD: String
    tokenType: String
  }

  type Exchange {
    id: String!
    address: String!
    color: String
    name: String
    exchangeVersion: String
    iconUrl: String
    networkId: Int!
    tradeUrl: String
  }

  enum WalletCategory {
    NORMIE
    TOKEN_CREATOR
    EXCHANGE
    DEFI_EXCHANGE
    PAIR
    PAIR_TOKEN_HOLDER
    POOL_AUTHORITY
    STAKING_VAULT
    NOTORIOUS
    BURN
    LOCKER
  }

  type WalletFunding {
    fundedByAddress: String!
    fundedByLabel: String
    fundedAt: Int!
    tokenAddress: String!
    networkId: Int!
    amount: String!
    transactionHash: String!
  }

  type WalletPolymarketProfile {
    proxyWallet: String!
    xUsername: String
    displayName: String
    pseudonym: String
    profileImageUrl: String
    verifiedBadge: Boolean
    displayUsernamePublic: Boolean
    fetchedAt: Int!
  }

  type Wallet {
    address: String!
    category: WalletCategory
    firstSeenTimestamp: Int
    firstFunding: WalletFunding
    identityLabels: [String!]
    avatarUrl: String
    displayName: String
    twitterId: String
    twitterUsername: String
    telegramId: String
    telegramUsername: String
    website: String
    discordId: String
    discordUsername: String
    githubId: String
    githubUsername: String
    farcasterId: String
    farcasterUsername: String
    description: String
    ethosScore: Int
    ethosLevel: String
    ethosVerified: Boolean
    tradeSourceIds: [String!]
    identitySource: String
    identityUpdatedAt: Int
    polymarket: WalletPolymarketProfile
    tokensCreatedCount: Int
    tokensMigratedCount: Int
  }

  type LaunchpadData {
    launchpadName: String
    graduationPercent: Float
    poolAddress: String
    completedAt: Int
    completed: Boolean
    completedSlot: Int
    migratedSlot: Int
    migratedAt: Int
    migrated: Boolean
    migratedPoolAddress: String
    launchpadProtocol: String
    launchpadIconUrl: String
    isCashbackEnabled: Boolean
    category: String
  }

  type TokenExtrema {
    id: String!
    address: String!
    networkId: Int!
    athPrice: String!
    athPriceTimestamp: Int!
    atlPrice: String!
    atlPriceTimestamp: Int!
    athFdv: String!
    athFdvTimestamp: Int!
    atlFdv: String!
    atlFdvTimestamp: Int!
    athCircMc: String!
    athCircMcTimestamp: Int!
    atlCircMc: String!
    atlCircMcTimestamp: Int!
  }

  type CoinCommunity {
    id: String!
    createdAt: Int!
    postCount: Int!
    memberCount: Int!
    likeCount: Int!
    lastPostAt: Int
  }

  type Token2022ScaledUiAmountConfig {
    authority: String
    multiplier: Float!
    newMultiplierEffectiveTimestamp: String
    newMultiplier: Float
  }

  type Token2022TransferFee {
    epoch: String!
    transferFeeBasisPoints: Int!
    maximumFee: String!
  }

  type Token2022TransferFeeConfig {
    transferFeeConfigAuthority: String
    olderTransferFee: Token2022TransferFee!
    newerTransferFee: Token2022TransferFee!
  }

  type Token2022Extensions {
    scaledUiAmountConfig: Token2022ScaledUiAmountConfig
    transferFeeConfig: Token2022TransferFeeConfig
  }

  type B20Extensions {
    multiplier: String
    multiplierObservedAt: String
    pausedTransfer: Boolean
    pausedMint: Boolean
    pausedBurn: Boolean
    supplyCap: String
  }

  type TokenExtensions {
    token2022: Token2022Extensions
    b20: B20Extensions
  }

  type Erc7572CustomInfo {
    type: String!
    featuredImage: String
    collaborators: [String!]
  }

  enum CategoryType {
    CANONICAL
    NARRATIVE
  }

  enum CategoryStatus {
    DRAFT
    ACTIVE
    ARCHIVED
  }

  type Category {
    id: String!
    name: String!
    shortName: String
    slug: String!
    description: String
    type: CategoryType!
    status: CategoryStatus!
    parentId: String
    memberCount: Int
  }

  enum RiskVerdict {
    SCAM
    HIGH_RISK
    CAUTION
    NEUTRAL
    VERIFIED
    VERIFIED_CONTESTED
  }

  enum RiskAnalysisCoverage {
    NOT_ANALYZED
    INCONCLUSIVE
    ANALYZED
    STALE
  }

  enum RiskReasonCode {
    PROOF_HONEYPOT_SIM
    PROOF_NON_TRANSFERABLE
    PROOF_TRANSFER_FEE_100
    PROOF_PAUSED
    PROOF_DEFAULT_FROZEN
    PROOF_RUG_OCCURRED
    PROOF_POOL_TRAP_SIM
    AUTH_MINT
    AUTH_FREEZE
    AUTH_PERMANENT_DELEGATE
    AUTH_TRANSFER_HOOK
    AUTH_PAUSABLE
    AUTH_OWNER_NOT_RENOUNCED
    AUTH_CAN_TRANSFER_OWNERSHIP
    TAX_BUY_HIGH
    TAX_SELL_HIGH
    TAX_HONEYPOT_UNCONFIRMED
    TAX_PAUSED
    TAX_POOL_TRAP
    TAX_POOL_TRAP_HOOK_SHARED
    LIQ_MINIMAL
    LIQ_UNKNOWN
    LIQ_RUG_CLIFF
    LIQ_UNLOCKED
    LIQ_DRAINING
    HOLD_TOP10_CONCENTRATED
    HOLD_DEV_HEAVY
    HOLD_SNIPER_HEAVY
    HOLD_BUNDLER_HEAVY
    HOLD_INSIDER_HEAVY
    HOLD_INSIDER_DUMPED
    FLOW_ONE_WAY
    FLOW_WALLET_FARM
    FLOW_WASH_DOMINATED
    FLOW_BUNDLED_LAUNCH
    FLOW_MECHANICAL_TRADING
    FLOW_RING_DOMINATED
    REP_SERIAL_RUGGER
    REP_RISKY_CREATOR
    REP_SCAMMER_FUNDED
    REP_IMITATOR_SYMBOL
    REP_IMITATOR_NAME
    LABEL_MANUAL_SCAM
    LABEL_VERIFIED
  }

  type TokenRisk {
    verdict: RiskVerdict
    score: Float
    flaggedAt: Int
    analyzedAt: Int
    coverage: RiskAnalysisCoverage
    reasons: [RiskReasonCode!]
  }

  type EnhancedToken {
    id: String!
    address: String!
    cmcId: Int
    decimals: Int!
    isScam: Boolean
    name: String
    networkId: Int!
    symbol: String
    socialLinks: SocialLinks
    info: TokenInfo
    gridAssetId: String
    bluechipRating: String
    organization: Organization
    asset: Asset
    exchanges: [Exchange!]
    creatorAddress: String
    creator: Wallet
    creatorBalanceNBT: String
    createBlockNumber: Int
    createTransactionHash: String
    createdAt: Int
    mintable: String
    freezable: String
    isFreezableValid: Boolean
    isMintableValid: Boolean
    launchpad: LaunchpadData
    top10HoldersPercent: Float
    profanity: Boolean
    extrema: TokenExtrema
    coinCommunity: CoinCommunity
    extensions: TokenExtensions
    tokenStandardCustomData: Erc7572CustomInfo
    categories: [Category!]
    risk: TokenRisk
  }

  type PooledTokenValues {
    token0: String
    token1: String
    invalidReserves: Boolean!
  }

  type CurrencyUnits {
    currency0: String!
    currency1: String!
    decimals0: Int!
    decimals1: Int!
  }

  type UniswapV4Data {
    uniswapV4HookAddress: String
    isToken0NetworkToken: Boolean
    isDynamicFee: Boolean
    currencyUnits: CurrencyUnits
    type: String!
  }

  type ArenaTradeData {
    tokenId: String
    type: String!
  }

  type PumpData {
    creator: String
    type: String!
  }

  union ProtocolData = UniswapV4Data | ArenaTradeData | PumpData

  type PairProtocolCustomData {
    uniswapV4HookAddress: String
  }

  type Pair {
    address: String!
    exchangeHash: String!
    fee: Int
    id: String!
    networkId: Int!
    protocol: String
    tickSpacing: Int
    token0: String!
    token1: String!
    createdAt: Int
    token0Data: EnhancedToken
    token1Data: EnhancedToken
    pooled: PooledTokenValues
    virtualPooled: PooledTokenValues
    currencyUnits: CurrencyUnits
    protocolData: ProtocolData
  }

  enum PotentialScamReason {
    MinimumLiquidity
    LiquidityUnknown
    LiquidityRugPull
    SuspiciousWalletActivity
    AbnormalBuyerRatio
    DevConcentration
    SniperConcentration
    BundledLaunch
    ForeignVenueLaunch
    SellerHub
  }

  type TokenFilterResult {
    token: EnhancedToken
    createdAt: Int
    lastTransaction: Int
    buyCount5m: Int
    buyCount1: Int
    buyCount12: Int
    buyCount24: Int
    buyCount4: Int
    change5m: String
    change1: String
    change12: String
    change24: String
    change4: String
    volumeChange5m: String
    volumeChange1: String
    volumeChange4: String
    volumeChange12: String
    volumeChange24: String
    exchanges: [Exchange]
    high5m: String
    high1: String
    high12: String
    high24: String
    high4: String
    liquidity: String
    totalLiquidityUsd: String
    quoteToken: String
    low5m: String
    low1: String
    low12: String
    low24: String
    low4: String
    marketCap: String
    circulatingMarketCap: String
    pair: Pair
    liquidPair: Pair
    liquidPairLiquidity: String
    liquidPairPriceUSD: String
    priceUSD: String
    trendingScore: Float
    sellCount5m: Int
    sellCount1: Int
    sellCount12: Int
    sellCount24: Int
    sellCount4: Int
    txnCount5m: Int
    txnCount1: Int
    txnCount12: Int
    txnCount24: Int
    txnCount4: Int
    uniqueBuys5m: Int
    uniqueBuys1: Int
    uniqueBuys12: Int
    uniqueBuys24: Int
    uniqueBuys4: Int
    uniqueSells5m: Int
    uniqueSells1: Int
    uniqueSells12: Int
    uniqueSells24: Int
    uniqueSells4: Int
    uniqueTransactions5m: Int
    uniqueTransactions1: Int
    uniqueTransactions12: Int
    uniqueTransactions24: Int
    uniqueTransactions4: Int
    volume1: String
    volume5m: String
    volume12: String
    volume24: String
    volume4: String
    buyVolume1: String
    buyVolume12: String
    buyVolume24: String
    buyVolume4: String
    buyVolume5m: String
    sellVolume1: String
    sellVolume12: String
    sellVolume24: String
    sellVolume4: String
    sellVolume5m: String
    poolFees5m: String
    poolFees1: String
    poolFees4: String
    poolFees12: String
    poolFees24: String
    baseFees5m: String
    baseFees1: String
    baseFees4: String
    baseFees12: String
    baseFees24: String
    priorityFees5m: String
    priorityFees1: String
    priorityFees4: String
    priorityFees12: String
    priorityFees24: String
    builderTips5m: String
    builderTips1: String
    builderTips4: String
    builderTips12: String
    builderTips24: String
    l1DataFees5m: String
    l1DataFees1: String
    l1DataFees4: String
    l1DataFees12: String
    l1DataFees24: String
    totalFees5m: String
    totalFees1: String
    totalFees4: String
    totalFees12: String
    totalFees24: String
    feeToVolumeRatio5m: String
    feeToVolumeRatio1: String
    feeToVolumeRatio4: String
    feeToVolumeRatio12: String
    feeToVolumeRatio24: String
    isScam: Boolean
    holders: Int
    walletAgeAvg: String
    walletAgeStd: String
    swapPct1dOldWallet: String
    swapPct7dOldWallet: String
    sniperCount: Int
    sniperHeldPercentage: Float
    bundlerCount: Int
    bundlerHeldPercentage: Float
    insiderCount: Int
    insiderHeldPercentage: Float
    suspiciousCount: Int
    suspiciousHeldPercentage: Float
    devHeldPercentage: Float
    top10HoldersPercent: Float
    potentialScamReasons: [PotentialScamReason]
    athPrice: String
    athPriceTimestamp: Int
    atlPrice: String
    atlPriceTimestamp: Int
    athFdv: String
    athFdvTimestamp: Int
    atlFdv: String
    atlFdvTimestamp: Int
    athCircMc: String
    athCircMcTimestamp: Int
    atlCircMc: String
    atlCircMcTimestamp: Int
  }
  ```

  ### Used By

  **Returned by**

  * [categoryTokens](/api-reference/queries/categorytokens.md): Returns the tokens assigned to a category (including its subcategories), with optional `filterTokens`-style filters and rankings applied.
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.