The official default token list used by the Uniswap decentralized exchange interface
npx @tessl/cli install tessl/npm-uniswap--default-token-list@13.45.0The Uniswap Default Token List is an npm package that provides the official default token list used by the Uniswap decentralized exchange interface. It contains comprehensive token metadata including addresses, symbols, names, decimals, and logo URIs for tokens across multiple blockchain networks including Ethereum mainnet, Arbitrum, Polygon, Optimism, Base, Avalanche, and other EVM-compatible chains.
npm install @uniswap/default-token-listAccess the pre-built token list JSON (main package export):
const tokenList = require("@uniswap/default-token-list");ES modules:
import tokenList from "@uniswap/default-token-list";Note: The published package only includes the pre-built JSON file. The buildList function is not available in the published package - it exists only in the source code for generating the token list during the build process.
const tokenList = require("@uniswap/default-token-list");
console.log("Token list name:", tokenList.name);
console.log("Version:", tokenList.version);
console.log("Total tokens:", tokenList.tokens.length);
// Find tokens on Ethereum mainnet
const mainnetTokens = tokenList.tokens.filter(token => token.chainId === 1);
console.log("Mainnet tokens:", mainnetTokens.length);
// Find a specific token by symbol
const wethToken = tokenList.tokens.find(
token => token.symbol === "WETH" && token.chainId === 1
);
console.log("WETH address:", wethToken?.address);The package follows a build-time generation pattern:
src/tokens/*.jsonsrc/buildList.js) that combines token files@uniswap/token-list-bridge-utils for bridge informationbuild/uniswap-default.tokenlist.json)The published npm package contains only the pre-built token list JSON - the source code and build system are not included in the published package.
Direct access to the complete Uniswap default token list with all network tokens and metadata.
/**
* Pre-built token list JSON data (main package export)
* Available as: require("@uniswap/default-token-list")
*/
const tokenList: TokenList;The source code includes a build function for generating the token list, but this is not available in the published package.
/**
* Builds the complete Uniswap default token list (source code only)
* Located at: src/buildList.js
* @returns TokenList object (synchronous)
*/
function buildList(): TokenList;Note: This function is only available in the source repository and is used during the build process. It is not included in the published npm package.
interface TokenList {
/** Name of the token list */
name: string;
/** ISO timestamp when the list was generated */
timestamp: string;
/** Semantic version object */
version: {
major: number;
minor: number;
patch: number;
};
/** Token classification tags (currently empty) */
tags: Record<string, any>;
/** IPFS URL for the list logo */
logoURI: string;
/** Keywords describing the list */
keywords: string[];
/** Array of all tokens in the list */
tokens: Token[];
}
interface Token {
/** Full token name (e.g., "Wrapped Ether") */
name: string;
/** Checksummed contract address */
address: string;
/** Token symbol (e.g., "WETH") */
symbol: string;
/** Number of decimal places (0-18) */
decimals: number;
/** Blockchain network ID */
chainId: number;
/** URL to token logo image */
logoURI: string;
/** Additional metadata including bridge information */
extensions?: {
bridgeInfo?: Record<string, {
tokenAddress: string;
}>;
};
}The token list includes tokens from the following blockchain networks:
The token list follows the Uniswap token list specification:
Each token contains:
Many tokens include bridge information in the extensions.bridgeInfo field, mapping chain IDs to the corresponding token addresses on those chains:
{
"extensions": {
"bridgeInfo": {
"10": { "tokenAddress": "0x4200000000000000000000000000000000000006" },
"137": { "tokenAddress": "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619" }
}
}
}const tokenList = require("@uniswap/default-token-list");
// Get all Polygon tokens
const polygonTokens = tokenList.tokens.filter(token => token.chainId === 137);
// Get all tokens with bridge info to Arbitrum
const bridgeableToArbitrum = tokenList.tokens.filter(
token => token.extensions?.bridgeInfo?.["42161"]
);const tokenList = require("@uniswap/default-token-list");
// Find USDC on multiple chains
const usdcTokens = tokenList.tokens.filter(token => token.symbol === "USDC");
// Find specific token by symbol and chain
const usdcOnPolygon = tokenList.tokens.find(
token => token.symbol === "USDC" && token.chainId === 137
);const tokenList = require("@uniswap/default-token-list");
// Check if an address is in the default list
function isDefaultToken(address, chainId) {
return tokenList.tokens.some(
token => token.address.toLowerCase() === address.toLowerCase() &&
token.chainId === chainId
);
}
// Get token metadata by address
function getTokenByAddress(address, chainId) {
return tokenList.tokens.find(
token => token.address.toLowerCase() === address.toLowerCase() &&
token.chainId === chainId
);
}The source repository includes a build system that:
src/tokens/*.json@uniswap/token-list-bridge-utilsbuild/uniswap-default.tokenlist.jsonNote: This build process is only available in the source repository. The published npm package contains only the pre-built JSON output.
The published package has no runtime dependencies - it exports only static JSON data.
Source repository dependencies:
chainify() function for cross-chain token mapping during buildThe token list is validated against multiple criteria: