Skip to main content

Token API

The Token API provides comprehensive programmatic access to token data on the Linea network. This API is designed for developers, builders and analysts who need detailed information about ERC-20 tokens and their activities on Linea.

Alpha Version Disclaimer

Linea's Token API is an alpha version and is subject to breaking changes. We recommend using it for testing and development purposes only. We are looking for your feedback on this new service, please reach out to us on Discord in the #developer-chat channel.

Key use cases

  • Building automated trading bots
  • Creating token monitoring dashboards
  • Performing onchain data analysis
  • DeFi application integration
  • Wallet and transaction tracking

Data sources

Data collection

Data is collected from multiple sources:

  1. Onchain Data
  • Smart contract state (name, symbol, decimals)
  1. External Sources

Data updates

Linea Token API data updates at various intervals, depending on the data type.

  • Token detection and metadata: every two hours
  • Historical prices: every hour
  • Current prices: every five minutes

API endpoints

Tokens

Get /api/tokens

Retrieve a list of all available tokens on Linea.

Response
[
{
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18,
"logo": "https://s2.coinmarketcap.com/static/img/coins/64x64/2396.png",
"contractAddress": "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f",
"currentPrice": "3321.74000000000000",
"priceUpdatedAt": "2025-01-09T09:36:02.194Z",
"info": {
"prices": [
{
"price": "3321.74000000000000",
"date": "2025-01-09T09:00:00.000Z"
}
],
"sells": 3279,
"buys": 3722,
"graduatedAt": null
}
}
]

Get /api/tokens/{contractAddress}

Retrieve detailed information for a specific token.

Parameters

ParameterTypeRequiredDescription
contractAddressstringYesToken address
Response
{
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18,
"logo": "https://s2.coinmarketcap.com/static/img/coins/64x64/2396.png",
"contractAddress": "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f",
"currentPrice": "3321.74000000000000",
"priceUpdatedAt": "2025-01-09T09:36:02.194Z",
"info": {
"prices": [
{
"price": "3321.74000000000000",
"date": "2025-01-09T09:00:00.000Z"
}
],
"sells": 3279,
"buys": 3722,
"graduatedAt": null
}
}

Prices

Get /api/tokens/new-gems

Retrieve recently bonded tokens from the Pond.fun launchpad.

Response
[
{
"name": "CatWifCap",
"symbol": "CWC",
"decimals": 18,
"logo": "https://d12kvghf2eznx1.cloudfront.net/tokens/images/d0a931cd-7982-47e4-86c7-74be11ab0b09",
"contractAddress": "0x092b9e25a7d143c83d44c27194f5cee7c1150f22",
"currentPrice": "0.00013412000000",
"priceUpdatedAt": "2025-01-09T09:45:04.799Z",
"info": {
"prices": [
{
"price": "0.00013412000000",
"date": "2025-01-09T09:00:00.000Z"
}
],
"sells": 0,
"buys": 0,
"graduatedAt": "2024-12-01T18:19:42.095Z"
}
}
]

Get /api/tokens/most-swapped

Retrieve the most swapped tokens over the last 24 hours (from the corresponding Dune query).

Response
[
{
"name": "Foxy",
"symbol": "FOXY",
"decimals": 18,
"logo": "https://i.ibb.co/MSKkFbf/logo.png",
"contractAddress": "0x5fbdf89403270a1846f5ae7d113a989f850d1566",
"currentPrice": "0.01080016000000",
"priceUpdatedAt": "2025-01-09T09:50:05.106Z",
"info": {
"prices": [
{
"price": "0.01078276000000",
"date": "2025-01-09T09:00:00.000Z"
}
],
"sells": 219,
"buys": 212,
"graduatedAt": null
}
}
]

Usage examples

Simple trading bot

async function monitorPriceChange(contractAddress: string, threshold: number) {
const BASE_URL = 'https://not.live.yet';
const initialPrice = await fetch(`${BASE_URL}/api/tokens/${contractAddress}`).then(r => r.json());

setInterval(async () => {
const currentPrice = await fetch(`${BASE_URL}/api/tokens/${contractAddress}`).then(r => r.json());
const priceChange = (currentPrice.price.usd - initialPrice.price.usd) / initialPrice.price.usd;

if (Math.abs(priceChange) > threshold) {
// Execute trading strategy
console.log(`Price changed by ${priceChange}% - Trading signal`);
}
}, 60000); // Check every minute
}

Best practices

  1. Rate limiting
  • This is an alpha version, with a low rate limit
  • Cache static data
  1. Error handling
  • Always check HTTP status of responses
  • Implement retry with exponential backoff
  • Validate token addresses before requests
  1. Performance
  • (Not available yet) Use pagination for large lists
  • Implement local caching when appropriate

Security considerations

  • Validate all input parameters
  • Sanitize response data

Support and feedback

For technical support or feature requests, reach out to us on Discord in the #developer-chat channel.