evm-token-info-service
v2.1.3
Published
Fetch info about token/pool with security audit
Readme
EVM Token Info Service
A Node.js service for fetching detailed information about tokens and liquidity pools across various EVM chains, including security audits and metadata.
Features
- Token and pool information from DexScreener
- Security audit via GoPlus Labs API
- Pair metadata with social links and websites
- Caching support
- Support for multiple EVM chains (Ethereum, Polygon, Arbitrum, Base)
- Detailed pool metrics (liquidity, volume, price changes)
- Comprehensive security checks
Installation
npm install evm-token-info-serviceUsage
import TokenInfoService from 'evm-token-info-service';
// Initialize the service
const tokenInfoService = new TokenInfoService(axiosInstance = null, cacheService = null);
- Axios instance is optional, if not provided, it will use regular axios. You can pass your own axios instance if you want to use a custom configuration like a proxy or a custom timeout.
- Cache service is optional, if not provided, it will not cache the data
// Get pool information with security audit
const poolInfo = await tokenInfoService.getPoolInfo(
'0xYourTokenAddress', // Token address
true // Enable security audit
);
// Search for a token or token pair with search query
const searchResult = await tokenInfoService.searchToken('query');
// Get pool information without security audit
const basicPoolInfo = await tokenInfoService.getPoolInfo(
'0xYourTokenAddress', // Token address
false // Disable security audit
);
// Get pair metadata separately
const metadata = await tokenInfoService.getPairMetadata(
'0xPairAddress', // Pool/Pair address
1 // Chain ID (1 for Ethereum)
);
// Audit contract separately
const audit = await tokenInfoService.auditContract(
'0xTokenAddress', // Token address
1 // Chain ID (1 for Ethereum)
);Response Structure
Pool Information Response
{
price: "1.234", // Current token price in USD
address: "0x...", // Pool address
pairSymbol: "TOKEN/WETH", // Pair symbol
liquidity: "1000000", // Liquidity in USD
volume24h: "500000", // 24h volume
buys24h: 100, // Number of buy transactions
sells24h: 80, // Number of sell transactions
priceChange24h: 5.5, // 24h price change percentage
fdv: "10000000", // Fully diluted valuation
marketCap: "5000000", // Market capitalization
pairCreatedAt: "2023-01-01", // Pool creation date
baseToken: {
symbol: "TOKEN",
name: "Token Name",
address: "0x..."
},
quoteToken: {
symbol: "WETH",
name: "Wrapped Ether",
address: "0x..."
},
dexId: "uniswap", // DEX identifier
chainId: "1", // Chain ID
metadata: {
websites: [], // Project websites
socials: [] // Social media links
},
audit: { // Only if security audit is enabled
lp_locked: {
balance: 100,
percent: 95
},
buy_tax: "0",
sell_tax: "0",
holder_count: "1000",
total_supply: "1000000",
owner_address: "0x...",
problems: {} // Security issues if any
}
}Search Result Response
[
{
"chainId": "solana",
"dexId": "raydium",
"url": "https://dexscreener.com/solana/8p6mqpuvwxve1rwwxy1vcljuwxuzjgvfrp3pkpir4l2t",
"pairAddress": "AAAAA",
"labels": [
"CPMM"
],
"baseToken": {
"address": "BBBB",
"name": "Token Name",
"symbol": "TOKEN"
},
"quoteToken": {
"address": "So11111111111111111111111111111111111111112",
"name": "Wrapped SOL",
"symbol": "SOL"
},
"priceNative": "0.000001234",
"priceUsd": "0.0005678",
"txns": {
"m5": {
"buys": 0,
"sells": 0
},
"h1": {
"buys": 0,
"sells": 0
},
"h6": {
"buys": 0,
"sells": 0
},
"h24": {
"buys": 2,
"sells": 0
}
},
"volume": {
"h24": 123.45,
"h6": 12.34,
"h1": 1.23,
"m5": 0.12
},
"priceChange": {
"h24": -4.88
},
"liquidity": {
"usd": 123456.78,
"base": 123456789,
"quote": 123456789
},
"fdv": 123456.78,
"marketCap": 123456.78,
"pairCreatedAt": 1234553498000,
"info": {
"imageUrl": "https://dd.dexscreener.com/ds-data/tokens/solana/BBBB.png?key=d589a4",
"header": "https://dd.dexscreener.com/ds-data/tokens/solana/BBBB/header.png?key=d589a4",
"openGraph": "https://cdn.dexscreener.com/token-images/og/solana/BBBB?timestamp=1737461400000",
"websites": [
{
"label": "Website",
"url": "https://token.xyz/"
}
],
"socials": [
{
"type": "twitter",
"url": "https://twitter.com/token"
},
{
"type": "telegram",
"url": "https://t.me/token"
}
]
}
},
// ... more pairs
]Audit Response Structure
{
// Token Information
token_name: "TokenName",
token_symbol: "SYMBOL",
total_supply: "10000000000",
holder_count: "394",
// Ownership & Creator Details
owner_address: "0x...",
owner_balance: "0",
owner_percent: "0.000000",
creator_address: "0x...",
creator_balance: "0",
creator_percent: "0.000000",
// Security Flags (0 = safe, 1 = warning)
is_honeypot: "0",
is_blacklisted: "0",
is_whitelisted: "1",
is_mintable: "0",
is_proxy: "0",
is_open_source: "1",
is_in_dex: "1",
// Trading Restrictions
cannot_buy: "0",
cannot_sell_all: "0",
trading_cooldown: "0",
transfer_pausable: "0",
// Tax Information
buy_tax: "0",
sell_tax: "0",
// Ownership & Control Risks
hidden_owner: "0",
can_take_back_ownership: "0",
owner_change_balance: "0",
external_call: "0",
selfdestruct: "0",
// Anti-Whale Mechanisms
is_anti_whale: "0",
anti_whale_modifiable: "0",
// Slippage Configuration
slippage_modifiable: "0",
personal_slippage_modifiable: "0",
// Liquidity Information
lp_holder_count: "2",
lp_total_supply: "3.26917420",
// Top Holders & LP Information
holders: [
{
address: "0x...",
tag: "UniswapV2", // Optional tag (e.g., DEX name)
is_contract: 1, // 1 = contract, 0 = wallet
balance: "5057627769.19",
percent: "0.50576277",
is_locked: 0 // 1 = locked, 0 = unlocked
}
// ... more holders
],
// DEX Information
dex: [
{
name: "UniswapV2",
liquidity_type: "UniV2",
liquidity: "8009.20279866",
pair: "0x..."
}
// ... other DEX listings
],
// LP Holders Information
lp_holders: [
{
address: "0x...",
tag: "", // Optional tag
balance: "3.26917420",
percent: "0.99999999",
is_locked: 1 // 1 = locked, 0 = unlocked
}
// ... more LP holders
]
}All numeric flags use "0" for false/safe and "1" for true/warning. The audit response provides comprehensive information about:
- Token basics (name, symbol, supply)
- Security status and potential risks
- Trading restrictions and taxes
- Ownership structure and controls
- Anti-whale mechanisms
- Liquidity information
- Top token holders
- DEX listings
- LP holders and lock status
Supported Chains
- Ethereum (chainId: 1)
- Polygon (chainId: 137)
- Arbitrum (chainId: 42161)
- Base (chainId: 8453)
Security Checks
The service performs various security checks including:
- Honeypot detection
- Ownership analysis
- Buy/Sell restrictions
- Tax analysis
- LP lock status
- Contract verification
- Mint functions
- Proxy implementation
- Trading cooldowns
- Blacklist/Whitelist systems
Error Handling
The service includes automatic retries (default: 5 attempts) for failed requests. Errors are propagated with descriptive messages for easier debugging.
Caching
The service supports optional caching for:
- Pair metadata (24 hours TTL)
- Security audits (5 minutes TTL)
Dependencies
- proxied-axios: ^1.1.1
License
ISC
