Skip to main content

Overview

Get comprehensive market data for all verified tokens on Starknet, including prices, volume, market cap, and price changes. Perfect for building token lists, market screeners, and portfolio trackers.

SDK Method

getMarketData(
  options?: AvnuOptions
): Promise<TokenMarketData[]>

Parameters

options
AvnuOptions
Optional SDK configuration

Returns

Returns Promise<TokenMarketData[]> - Array of market data for all tokens.
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;
}

Example

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

const marketData = await getMarketData();

console.log(`Total tokens: ${marketData.length}`);

// Display top 10 by market cap
const topByMarketCap = marketData
  .filter(t => t.global?.usdMarketCap)
  .sort((a, b) => (b.global?.usdMarketCap || 0) - (a.global?.usdMarketCap || 0))
  .slice(0, 10);

topByMarketCap.forEach((token, i) => {
  console.log(`${i + 1}. ${token.symbol}: $${token.starknet.usd.toFixed(2)}`);
  console.log(`   Market Cap: $${((token.global?.usdMarketCap || 0) / 1e6).toFixed(2)}M`);
  console.log(`   24h Change: ${token.starknet.usdPriceChangePercentage24h?.toFixed(2) || 'N/A'}%`);
});