Skip to main content

Don't have an API key yet?

Sign-up to Moralis to get your free API key and start building today.

Get Your Free API Key

Finding Trending Tokens

This tutorial shows you how to find trending tokens using the Filtered Tokens API. Trending tokens typically have high trading volume, increasing buyer activity, and positive price momentum.

Here's a simple query to find trending tokens on Ethereum and Solana:

{
"chains": ["eth", "solana"],
"filters": [
{
"metric": "volumeUsd",
"timeFrame": "oneDay",
"gt": 1000000
},
{
"metric": "buyers",
"timeFrame": "oneHour",
"gt": 50
},
{
"metric": "usdPricePercentChange",
"timeFrame": "oneDay",
"gt": 10
}
],
"sortBy": {
"metric": "volumeUsd",
"timeFrame": "oneDay",
"type": "DESC"
},
"limit": 20
}

What This Query Does:

  • Searches on Ethereum and Solana chains
  • Filters for tokens with daily volume > $1M
  • Requires at least 50 buyers in the last hour
  • Only shows tokens up 10%+ in the last day
  • Sorts by highest daily volume first
  • Returns top 20 results

For better quality results, add safety filters:

{
"chains": ["solana", "eth"],
"filters": [
{
"metric": "fullyDilutedValuation",
"gt": 500000
},
{
"metric": "volumeUsd",
"timeFrame": "oneHour",
"gt": 500000
},
{
"metric": "buyers",
"timeFrame": "tenMinutes",
"gt": 10
},
{
"metric": "sellers",
"timeFrame": "tenMinutes",
"gt": 10
},
{
"metric": "securityScore",
"gt": 70
}
],
"sortBy": {
"metric": "usdPricePercentChange",
"timeFrame": "oneDay",
"type": "DESC"
},
"limit": 50
}

Additional Filters Explained:

  • fullyDilutedValuation > 500000: Ensures token has meaningful value
  • securityScore > 70: Filters out potentially risky tokens
  • buyers and sellers in 10 minutes: Ensures active trading

For very short-term trends, use smaller time frames:

{
"chains": ["solana"],
"filters": [
{
"metric": "volumeUsd",
"timeFrame": "tenMinutes",
"gt": 50000
},
{
"metric": "buyers",
"timeFrame": "tenMinutes",
"gt": 20
},
{
"metric": "usdPricePercentChange",
"timeFrame": "thirtyMinutes",
"gt": 5
}
],
"sortBy": {
"metric": "buyers",
"timeFrame": "tenMinutes",
"type": "DESC"
},
"limit": 10
}

Excluding Categories

To focus on specific token types, exclude unwanted categories:

{
"chains": ["eth", "base"],
"categories": {
"exclude": ["stablecoin", "wrapped"]
},
"filters": [
{
"metric": "volumeUsd",
"timeFrame": "oneDay",
"gt": 2000000
},
{
"metric": "netBuyers",
"timeFrame": "oneHour",
"gt": 100
}
],
"sortBy": {
"metric": "volumeUsd",
"timeFrame": "oneDay",
"type": "DESC"
}
}

Always include these filters to avoid low-quality tokens:

{
"filters": [
{ "metric": "marketCap", "gt": 0, "lt": 5000000000000 },
{ "metric": "totalLiquidityUsd", "gt": 500 },
{ "metric": "volumeUsd", "timeFrame": "oneDay", "gt": 1000 }
]
}

Response Example

The API returns an array of tokens with their metrics:

[
{
"tokenAddress": "0x...",
"tokenSymbol": "PEPE",
"tokenName": "Pepe",
"tokenLogo": "https://...",
"chainId": "0x1",
"volumeUsd": {
"oneDay": 25000000
},
"usdPricePercentChange": {
"oneDay": 35.5
},
"buyers": {
"oneHour": 1250
},
"marketCap": 500000000,
"securityScore": 85
}
]

Full cURL Example

Here's a complete cURL command you can test:

curl -X POST \
'https://deep-index.moralis.io/api/v2.2/discovery/tokens' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"chains": ["eth", "solana"],
"filters": [
{
"metric": "volumeUsd",
"timeFrame": "oneDay",
"gt": 1000000
},
{
"metric": "buyers",
"timeFrame": "oneHour",
"gt": 50
},
{
"metric": "usdPricePercentChange",
"timeFrame": "oneDay",
"gt": 10
}
],
"sortBy": {
"metric": "volumeUsd",
"timeFrame": "oneDay",
"type": "DESC"
},
"limit": 20
}'

Replace YOUR_API_KEY with your actual Moralis API key.

  1. Volume is Key: High volume indicates real interest
  2. Check Buyer/Seller Ratio: More buyers than sellers suggests upward pressure
  3. Use Multiple Time Frames: Compare 1-hour vs 1-day trends
  4. Monitor New Listings: Tokens with tokenAge < 7 can trend quickly
  5. Set Realistic Filters: Don't make filters too restrictive