Documentation

TokenList

A searchable list component for displaying and selecting tokens with optional balance information.

TokenList

The TokenList component provides a searchable list of tokens with support for balance display and token selection.

Usage

import { TokenList } from '@avalabs/builderkit';
 
// Basic usage
<TokenList 
  chain_id={43114}
  list={[
    {
      chain_id: 43114,
      address: "0x1234567890123456789012345678901234567890",
      name: "Avalanche",
      symbol: "AVAX"
    },
    // ... more tokens
  ]}
  onClick={(address) => console.log('Selected token:', address)}
/>
 
// With balances and selected token
<TokenList 
  chain_id={43114}
  list={tokens}
  showBalances={true}
  selected={{ address: selectedTokenAddress }}
  onClick={handleTokenSelect}
/>

Props

PropTypeDefaultDescription
chain_idnumber-Chain ID for the token list
listTokenItem[]-Array of tokens to display
onClick(address: string) => void-Callback when a token is selected
selected{ address: string }-Currently selected token (optional)
showBalancesbooleanfalseWhether to show token balances
classNamestring-Additional CSS classes

Features

  • Search by token name, symbol, or contract address
  • Displays token balances (optional)
  • Highlights selected token
  • Supports token whitelisting
  • Responsive scrollable list
  • Search input with clear functionality

Examples

Basic Token List

<TokenList 
  chain_id={43114}
  list={tokens}
  onClick={handleTokenSelect}
/>

With Balances

<TokenList 
  chain_id={43114}
  list={tokens}
  showBalances={true}
  onClick={handleTokenSelect}
/>

With Selected Token

<TokenList 
  chain_id={43114}
  list={tokens}
  selected={{ address: selectedToken.address }}
  onClick={handleTokenSelect}
  className="max-h-[400px]"
/>

Token Item Structure

Each token in the list should follow this structure:

type TokenItem = {
  chain_id: number;
  address: string;
  name: string;
  symbol: string;
  balance?: BigNumber; // Optional, used when showBalances is true
  whitelisted?: boolean; // Optional, for token verification
}

States

  1. Loading: Shows loading state when fetching balances
  2. Empty Search: Displays all tokens in the list
  3. Search Results: Shows filtered tokens based on search input
  4. Selected: Highlights the currently selected token
  5. Non-whitelisted: Shows warning for non-whitelisted tokens

Search Functionality

The component supports searching by:

  • Token name
  • Token symbol
  • Exact contract address

When searching by contract address:

  • Must be a valid Ethereum address
  • Shows token details if found in the list
  • Can show import option for non-whitelisted tokens
Edit on GitHub

Last updated on

On this page