Skip to main content
When working with blockchain data, you’ll encounter numerous tokens with varying levels of liquidity and utility. Sim APIs provide comprehensive token metadata and liquidity data to help you implement custom filtering logic that fits your specific requirements.

Our Approach to Token Data

We don’t offer direct spam filtering because definitions of spam are varying and subjective. Instead, we provide the best objective measure that we’re aware of—liquidity data—to allow developers to filter downstream based on their specific requirements. By grounding filtering decisions in measurable, onchain liquidity, rather than subjective labels, our method offers several advantages:
  • Objective: We provide liquidity metrics rather than subjective spam classifications
  • Realtime: Liquidity is checked at query time, not based on outdated lists
  • Flexible: All filtering data is provided, allowing you to implement custom logic that fits your use case
  • Transparent: You have full visibility into the data used for filtering decisions
  • Adaptable: Your filtering criteria can evolve with your application’s needs
We do not detect or flag honeypots, scam tokens, or other malicious contracts. Our APIs will return price and liquidity data for any token that has trading activity. The presence of price data does not indicate that a token is safe to trade or that transactions will be successful.

Supported APIs

EVM Balances API

Get wallet token balances with comprehensive filtering metadata

EVM Activity API

Track wallet activity with detailed token information
Filtering tokens does not change chain selection and therefore does not change Compute Units. To reduce CU on chain-dependent endpoints, limit chain_ids (EVM) or chains (SVM) to only the networks you need. See Supported Chains and Compute Units.
For each token in our responses, we include comprehensive metadata that gives you the information needed to make informed filtering decisions:
  1. Token basics: symbol, name, and decimals properties
  2. Price data: Current USD pricing information using price_usd
  3. Liquidity information: Real-time liquidity pool data with pool_size
  4. Pool size: The total value locked in the token’s highest liquidity pool using low_liquidity

How Sim Calculates Liquidity Data

Sim’s approach to assessing liquidity is sophisticated and real-time:
  • For each token, we dynamically track the highest liquidity route to USDC
  • We calculate the USD value of the liquidity along that route for each token upon each query
  • This provides you with current, accurate liquidity information rather than static or outdated data
When pool_size is very small and low_liquidity is true, you should disregard price_usd and value_usd fields. While the price is technically correct based on the best liquidity pool we can find, it becomes effectively meaningless when there’s insufficient liquidity. You can’t actually exchange the token for anything else of value at that price.

Using Token Data for Custom Filtering

Let’s explore practical implementations for different filtering scenarios. The following examples demonstrate how to use this data to create robust filtering logic that meets your app’s needs.

Exclude tokens with less than 100 USD liquidity

Use the optional exclude_spam_tokens query parameter on the EVM Balances API to automatically filter out tokens with less than 100 USD of liquidity. Include exclude_spam_tokens=true to have those tokens excluded from the response entirely. By default, balances for tokens without available pricing data are included. Set exclude_unpriced=true if you want those unpriced token balances filtered out.
This is distinct from the low_liquidity field in responses, which is true when liquidity is below 10,000.

Liquidity Threshold Filtering

Filter tokens based on minimum liquidity requirements using the pool_size field. This is one of the most effective ways to filter out low-quality tokens.
This approach ensures you only show tokens that have sufficient trading volume and market depth, reducing the likelihood of displaying illiquid or potentially problematic tokens.

Allowlisting Specific Tokens

Include certain tokens regardless of their liquidity metrics by maintaining a list of approved token addresses and chain IDs. A secure method for allowlisting is to use a combination of the token’s unique contract address and its chain_id. This guarantees you are identifying the exact token on the correct network.

Denylisting Specific Tokens

Exclude certain tokens even if they meet your liquidity criteria by maintaining a blocklist of problematic symbols, or any other criteria you choose.
Denylisting helps you maintain control over which tokens appear in your application, even if they have sufficient liquidity.

Custom Criteria Combinations

Create sophisticated filtering logic by combining multiple criteria such as liquidity, completeness, and custom business rules.
This approach allows you to create nuanced filtering that considers multiple factors simultaneously.

Token Completeness Filtering

Filter based on whether tokens have complete metadata, ensuring users only see tokens with proper names and symbols.
Completeness filtering ensures your users have meaningful information about the tokens they’re viewing.