Type object
File match *.tokenlist.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/uniswap-token-list/latest.json
Source https://uniswap.org/tokenlist.schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Schema for lists of tokens compatible with the Uniswap Interface

Properties

name string required

The name of the token list

Examples: "My Token List"
minLength=1maxLength=30pattern=^[\w ]+$
timestamp string required

The timestamp of this list version; i.e. when this immutable version of the list was created

format=date-time
version object required

The version of the list, used in change detection

Examples: {"major":1,"minor":0,"patch":0}
3 nested properties
major integer required

The major version of the list. Must be incremented when tokens are removed from the list or token addresses are changed.

Examples: 1, 2
min=0
minor integer required

The minor version of the list. Must be incremented when tokens are added to the list.

Examples: 0, 1
min=0
patch integer required

The patch version of the list. Must be incremented for any changes to the list.

Examples: 0, 1
min=0
tokens TokenInfo[] required

The list of tokens included in the list

minItems=1maxItems=10000
tokenMap Record<string, object>

A mapping of key 'chainId_tokenAddress' to its corresponding token object

Examples: {"4_0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"name":"Uniswap","address":"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984","symbol":"UNI","decimals":18,"chainId":4,"logoURI":"ipfs://QmXttGpZrECX5qCyXbBQiqgQNytVGeZW5Anewvh2jc4psg"}}
keywords string[]

Keywords associated with the contents of the list; may be used in list discoverability

maxItems=20uniqueItems=true
tags Record<string, object>

A mapping of tag identifiers to their name and description

Examples: {"stablecoin":{"name":"Stablecoin","description":"A token with value pegged to another asset"}}
logoURI string

A URI for the logo of the token list; prefer SVG or PNG of size 256x256

Examples: "ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM"
format=uri

Definitions

Version object

The version of the list, used in change detection

Examples:
  • { "major": 1, "minor": 0, "patch": 0 }
major integer required

The major version of the list. Must be incremented when tokens are removed from the list or token addresses are changed.

Examples: 1, 2
min=0
minor integer required

The minor version of the list. Must be incremented when tokens are added to the list.

Examples: 0, 1
min=0
patch integer required

The patch version of the list. Must be incremented for any changes to the list.

Examples: 0, 1
min=0
TagIdentifier string

The unique identifier of a tag

Examples:
  • "compound"
  • "stablecoin"
ExtensionIdentifier string

The name of a token extension property

Examples:
  • "color"
  • "is_fee_on_transfer"
  • "aliases"
ExtensionMap Record<string, ExtensionPrimitiveValue | object>

An object containing any arbitrary or vendor-specific token metadata

Examples:
  • { "color": "#000000", "is_verified_by_me": true }
  • { "x-bridged-addresses-by-chain": { "1": { "bridgeAddress": "0x4200000000000000000000000000000000000010", "tokenAddress": "0x4200000000000000000000000000000000000010" } } }
ExtensionPrimitiveValue string | boolean | number | null
ExtensionValue ExtensionPrimitiveValue | object
ExtensionValueInner0 ExtensionPrimitiveValue | object
ExtensionValueInner1 ExtensionPrimitiveValue
TagDefinition object

Definition of a tag that can be associated with a token via its identifier

Examples:
  • { "name": "Stablecoin", "description": "A token with value pegged to another asset" }
name string required

The name of the tag

minLength=1maxLength=20pattern=^[ \w]+$
description string required

A user-friendly description of the tag

minLength=1maxLength=200pattern=^[ \w\.,:]+$
TokenInfo object

Metadata for a single token in a token list

chainId integer required

The chain ID of the Ethereum network where this token is deployed

Examples: 1, 42
min=1
address string required

The checksummed address of the token on the specified chain ID

Examples: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "So11111111111111111111111111111111111111112"
pattern=^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$
decimals integer required

The number of decimals for the token balance

Examples: 18
min=0max=255
name string required

The name of the token

Examples: "USD Coin"
minLength=0maxLength=60
Any of: const: "" const: "", variant
symbol string required

The symbol for the token

Examples: "USDC"
minLength=0maxLength=20
Any of: const: "" const: "", variant
logoURI string

A URI to the token logo asset; if not set, interface will attempt to find a logo based on the token address; suggest SVG or PNG of size 64x64

Examples: "ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM"
format=uri

An array of tag identifiers associated with the token; tags are defined at the list level

Examples: "stablecoin", "compound"
maxItems=10
extensions Record<string, ExtensionPrimitiveValue | object>

An object containing any arbitrary or vendor-specific token metadata

Examples: {"color":"#000000","is_verified_by_me":true}, {"x-bridged-addresses-by-chain":{"1":{"bridgeAddress":"0x4200000000000000000000000000000000000010","tokenAddress":"0x4200000000000000000000000000000000000010"}}}