Skip to main content
This document introduces a comprehensive Token analysis framework using ChainStream, covering fundamental data, on-chain metrics, holder analysis, and risk assessment.

Framework Overview

Basic Info

Name/Symbol, Decimals, Contract Address, Creation Time

Market Data

Price, Market Cap, Liquidity, Volume

Holder Analysis

Holder Count, Top 10/100 Ratio, Creator Holdings

Trading Stats

Buy/Sell Count, Volume, Price Change

1. Basic Information

API Endpoint

GET /v1/token/{chain}/{tokenAddress}

Core Fields

FieldTypeDescription
chainstringBlockchain network identifier, e.g., sol
namestringToken name
symbolstringToken symbol
decimalsintegerToken decimal places
addressstringToken mint address
imageUrlstringToken image URL
tokenCreatedAtintegerToken creation timestamp (milliseconds)
descriptionstringToken description
tokenCreatorsarrayToken creator address list

Response Example

{
  "chain": "sol",
  "name": "USD Coin",
  "symbol": "USDC",
  "decimals": 9,
  "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "imageUrl": "https://raw.githubusercontent.com/.../logo.png",
  "tokenCreatedAt": 1710417600000,
  "description": "USDC is a stablecoin pegged to the US dollar",
  "tokenCreators": [
    {
      "address": "...",
      "share": 100
    }
  ]
}

2. Market Data

Market data is included in the marketData field of the Token details endpoint.

Price & Market Cap

FieldTypeDescription
priceInUsdstringToken price (USD)
priceInSolstringToken price (SOL)
marketCapInUsdstringCirculating market cap (USD)
marketCapInSolstringCirculating market cap (SOL)
totalSupplystringTotal supply

Liquidity Metrics

FieldTypeDescriptionHealth Standard
maxPoolTvlInUsdstringMax pool TVL (USD)Higher depth = lower slippage
totalTvlInUsdstringTotal TVL across all pools (USD)> 5% of market cap
maxPoolTvlInSolstringMax pool TVL (SOL)-
totalTvlInSolstringTotal TVL across all pools (SOL)-

Holder Overview

FieldTypeDescriptionHealth Standard
holdersstringTotal token holdersMore = more distributed
top10HoldingsRatiostringTop 10 holders ratio< 0.5 (50%)
top10TotalHoldingsstringTop 10 total holdings-
top100HoldingsRatiostringTop 100 holders ratio< 0.7 (70%)
top100TotalHoldingsstringTop 100 total holdings-

Response Example

{
  "marketData": {
    "priceInUsd": "0.00123456",
    "priceInSol": "0.0000089",
    "marketCapInUsd": "1234567.89",
    "totalSupply": "1000000000",
    "holders": "5432",
    "top10HoldingsRatio": "0.35",
    "top100HoldingsRatio": "0.58",
    "maxPoolTvlInUsd": "50000.00",
    "totalTvlInUsd": "85000.00"
  }
}

3. Trading Statistics

Trading statistics are included in the stats field of the Token details endpoint, or can be fetched via a dedicated endpoint.

API Endpoint

GET /v1/token/{chain}/{tokenAddress}/stats

Statistics Fields (by Time Period)

Supported time periods: 1m, 5m, 15m, 30m, 1h, 4h, 24h
Field PatternDescriptionExample Fields
price{period}Price within periodprice1m, price5m, price1h
buys{period}Buy count within periodbuys1m, buys5m, buys1h
sells{period}Sell count within periodsells1m, sells5m, sells1h
buyVolumesInUsd{period}Buy volume (USD)buyVolumesInUsd1m
sellVolumesInUsd{period}Sell volume (USD)sellVolumesInUsd1m
volumesInUsd{period}Total volume (USD)volumesInUsd1m
priceChangeRatioInUsd{period}Price change ratiopriceChangeRatioInUsd1h

Response Example

{
  "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "price1m": "1.234",
  "buys1m": "150",
  "sells1m": "120",
  "buyVolumesInUsd1m": "50000.45",
  "sellVolumesInUsd1m": "45000.32",
  "volumesInUsd1m": "95000.77",
  "buys1h": "2500",
  "sells1h": "2100",
  "volumesInUsd1h": "1500000.00",
  "priceChangeRatioInUsd1h": "0.025"
}

4. Holder Analysis

API Endpoint

GET /v1/token/{chain}/{tokenAddress}/holders

Query Parameters

ParameterTypeRequiredDescription
cursorstringNoPagination cursor
limitnumberNoResults per page (1-100, default 20)
directionstringNoPagination direction (next or prev)

Holder Fields

FieldTypeDescription
walletAddressstringWallet address
amountstringHolding amount
amountInUsdstringHolding value (USD)
percentagestringHolding percentage

Response Example

{
  "hasNext": true,
  "hasPrev": false,
  "startCursor": "abc123",
  "endCursor": "xyz789",
  "data": [
    {
      "walletAddress": "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH",
      "amount": "1000000000000000000",
      "amountInUsd": "12345.67",
      "percentage": "10.5"
    }
  ]
}

Holder Distribution Assessment

Characteristics:
  • Top 10 ratio < 50%
  • Top 100 ratio < 70%
  • High holder count
  • Even distribution, decentralized
Risk Level: 🟢 Low Risk

Holder Type Identification

TypeIdentificationSignificance
Team/ProjectContract deployer, addresses in tokenCreatorsUnlock risk
WhalesHoldings > 1%Market influence
Smart MoneyHigh win-rate traders (requires wallet analysis)Information advantage
CEXExchange hot walletsLiquidity source

5. Risk Assessment

Risk Assessment Dimensions

DimensionWeightMetrics
Concentration Risk30%top10HoldingsRatio, top100HoldingsRatio
Liquidity Risk25%totalTvlInUsd, TVL/Market Cap ratio
New Token Risk20%tokenCreatedAt (creation time)
Trading Activity15%holders, volume, buy/sell count
Creator Holdings10%Creator address holding ratio

Risk Indicators

IndicatorLevelTrigger Conditions
🔴 High RiskCriticaltop10HoldingsRatio > 0.8, TVL < 1% of market cap, created < 24h
🟡 Medium RiskWarningtop10HoldingsRatio > 0.5, created < 7 days
🟢 Low RiskSafeAll metrics healthy

Analysis Workflow

1

Get Basic Information

Call GET /v1/token/{chain}/{tokenAddress} to get complete token info
  • Verify contract address
  • Check creation time tokenCreatedAt
2

Analyze Market Data

Review marketData field
  • Current price priceInUsd
  • Market cap marketCapInUsd
  • Liquidity totalTvlInUsd
3

Evaluate Holder Distribution

Review holder data in marketData
  • Holder count holders
  • Top 10 ratio top10HoldingsRatio
  • Top 100 ratio top100HoldingsRatio
4

Check Trading Activity

Review stats field
  • Volume volumesInUsd1h, volumesInUsd24h
  • Buy/sell ratio buys1h vs sells1h
5

Comprehensive Risk Assessment

Calculate risk level based on above data
  • High concentration + low liquidity = 🔴 High Risk
  • Healthy distribution + sufficient liquidity = 🟢 Low Risk

Practical Example

Example: Analyze Newly Listed Token

import { ChainStreamClient } from '@anthropic/chainstream';

const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');

async function analyzeToken(chain: string, tokenAddress: string) {
  // 1. Get complete token info
  const token = await client.token.getToken(chain, tokenAddress);
  
  // 2. Check creation time
  const ageInDays = (Date.now() - token.tokenCreatedAt) / (1000 * 60 * 60 * 24);
  if (ageInDays < 7) {
    console.warn('⚠️ New token risk: Created less than 7 days ago');
  }
  
  // 3. Analyze holder distribution
  const top10Ratio = parseFloat(token.marketData.top10HoldingsRatio);
  if (top10Ratio > 0.5) {
    console.warn('⚠️ Concentration risk: Top 10 holds > 50%');
  }
  
  // 4. Check liquidity
  const tvl = parseFloat(token.marketData.totalTvlInUsd);
  const marketCap = parseFloat(token.marketData.marketCapInUsd);
  if (tvl < marketCap * 0.05) {
    console.warn('⚠️ Liquidity risk: TVL < 5% of market cap');
  }
  
  // 5. Comprehensive assessment
  const riskLevel = calculateRiskLevel(token);
  console.log(`Risk Level: ${riskLevel}`);
  
  return {
    token,
    ageInDays,
    top10Ratio,
    tvlRatio: tvl / marketCap,
    riskLevel
  };
}

function calculateRiskLevel(token: any): string {
  const top10Ratio = parseFloat(token.marketData.top10HoldingsRatio);
  const tvl = parseFloat(token.marketData.totalTvlInUsd);
  const marketCap = parseFloat(token.marketData.marketCapInUsd);
  
  if (top10Ratio > 0.8 || tvl < marketCap * 0.01) {
    return '🔴 High Risk';
  } else if (top10Ratio > 0.5) {
    return '🟡 Medium Risk';
  }
  return '🟢 Low Risk';
}

API Endpoint Summary

Analysis NeedAPI Endpoint
Token Details (with market data, stats)GET /v1/token/{chain}/{tokenAddress}
Token MetadataGET /v1/token/{chain}/{tokenAddress}/metadata
Token StatsGET /v1/token/{chain}/{tokenAddress}/stats
Holder ListGET /v1/token/{chain}/{tokenAddress}/holders
Top HoldersGET /v1/token/{chain}/{tokenAddress}/topholders
Token PoolsGET /v1/token/{chain}/{tokenAddress}/pools
Token Market DataGET /v1/token/{chain}/{tokenAddress}/marketdata