Skip to main content

Overview

Get detailed market data for a specific token including current price, volume, market cap, price changes, and TVL. Use this for token detail pages, price widgets, and portfolio tracking.

SDK Method

getTokenMarketData(
  tokenAddress: string,
  options?: AvnuOptions
): Promise<TokenMarketData>

Parameters

tokenAddress
string
required
Token contract address (hex format with 0x prefix)
options
AvnuOptions
Optional SDK configuration

Returns

Returns Promise<TokenMarketData> - Market data for the specified token.
interface TokenMarketData {
  address: string;
  name: string;
  symbol: string;
  decimals: number;
  logoUri?: string | null;
  coingeckoId?: string | null;
  verified: boolean;
  tags: TokenTag[];  // defaults to []
  linePriceFeedInUsd: DataPoint[];
  starknet: StarknetMarket;
  global: GlobalMarket | null;
}

interface StarknetMarket {
  usd: number;
  usdTvl: number;
  usdPriceChange1h: number;
  usdPriceChangePercentage1h: number | null;
  usdPriceChange24h: number;
  usdPriceChangePercentage24h: number | null;
  usdPriceChange7d: number;
  usdPriceChangePercentage7d: number | null;
  usdVolume24h: number;
  usdTradingVolume24h: number;
}

interface GlobalMarket {
  usd: number;
  usdMarketCap: number;
  usdFdv: number;
  usdMarketCapChange24h: number;
  usdMarketCapChangePercentage24h: number;
}

interface DataPoint {
  date: string;
  value: number;
}

Examples

import { getTokenMarketData } from '@avnu/avnu-sdk';

const ETH = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7';

const ethData = await getTokenMarketData(ETH);

console.log(`${ethData.symbol} (${ethData.name})`);
console.log(`Price: $${ethData.starknet.usd.toFixed(2)}`);
console.log(`Market Cap: $${((ethData.global?.usdMarketCap || 0) / 1e9).toFixed(2)}B`);
console.log(`24h Volume: $${(ethData.starknet.usdVolume24h / 1e6).toFixed(2)}M`);
console.log(`24h Change: ${ethData.starknet.usdPriceChangePercentage24h?.toFixed(2) || 'N/A'}%`);
console.log(`TVL: $${(ethData.starknet.usdTvl / 1e6).toFixed(2)}M`);