Monad (MON) tokens price API - How to fetch DEX data for Monad (MON) blockchain
Learn how to fetch Monad (MON) token prices, liquidity pools, and DEX data with the DexPaprika API, with no key needed to start. Complete JavaScript and Python examples included.

Introduction
Monad is a high-performance, EVM-compatible Layer 1 blockchain that brings unprecedented scalability to decentralized finance. With its mainnet now live, Monad is processing transactions at remarkable speeds - achieving 10,000 transactions per second while maintaining full compatibility with Ethereum's development ecosystem.
For developers, traders, and analytics platforms building on Monad, access to real-time token pricing and liquidity pool data is essential. The DexPaprika API provides a free interface, with no key needed to start, to fetch DEX data for Monad tokens: live prices, liquidity metrics and historical OHLCV candles, plus pool transactions on the Dev and Pro plans.
This guide will walk you through everything you need to know about fetching Monad (MON) token data using the DexPaprika API - from basic price queries to advanced liquidity pool tracking.
Getting started: DexPaprika API fundamentals
What is DexPaprika?
DexPaprika is a decentralized exchange data API developed by CoinPaprika, with a free tier and public access to token and DEX data across multiple blockchain networks. No API key is needed to start: you can make requests immediately. Pool transactions are the exception and need a Dev or Pro plan.
Base URL:https://api.dexpaprika.com
Key features
- Free to start - no key needed for most endpoints
- Public API - Simple GET requests
- Multi-Chain Support - Works across 35 blockchains including Monad
- Live data - prices and volumes, up to 60 seconds behind on the free tier and real-time on the paid plans
- Liquidity Tracking - Pool-level data with buy/sell metrics
- Historical Data - OHLCV candles for technical analysis
Finding available networks
Before querying Monad data, you can discover all supported networks:
Endpoint:GET /networks
This endpoint returns a list of all available blockchains supported by DexPaprika, including Monad (monad network ID).
Endpoint examples: fetching Monad MON data
1. Get MON token price & summary metrics
Retrieve the current price, market data, and volume metrics for the MON token on Monad.
Endpoint:
GET /networks/{network}/tokens/{token_address}
Parameters:
network=monadtoken_address=0x3bd359c1119da7da1d913d1c4d2b7c461115433a
JavaScript example
const fetch = require('node-fetch');
async function getMonadTokenPrice() {
const url = 'https://api.dexpaprika.com/networks/monad/tokens/0x3bd359c1119da7da1d913d1c4d2b7c461115433a';
try {
const response = await fetch(url);
const data = await response.json();
console.log('MON Token Price:', data.summary.price_usd);
console.log('24h Volume (USD):', data.summary['24h'].volume_usd);
console.log('24h Transactions:', data.summary['24h'].txns);
console.log('Total Liquidity (USD):', data.summary.liquidity_usd);
} catch (error) {
console.error('Error:', error);
}
}
getMonadTokenPrice();Python example
import requests
def get_monad_token_price():
url = 'https://api.dexpaprika.com/networks/monad/tokens/0x3bd359c1119da7da1d913d1c4d2b7c461115433a'
try:
response = requests.get(url)
data = response.json()
print(f"MON Token Price: ${data['summary']['price_usd']}")
print(f"24h Volume (USD): ${data['summary']['24h']['volume_usd']}")
print(f"24h Transactions: {data['summary']['24h']['txns']}")
print(f"Total Liquidity (USD): ${data['summary']['liquidity_usd']}")
except Exception as error:
print(f"Error: {error}")
get_monad_token_price()Sample response
{
"id": "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
"name": "Wrapped MON",
"symbol": "WMON",
"chain": "monad",
"summary": {
"price_usd": 0.0263393446944259,
"liquidity_usd": 68664.7488462056,
"pools": 55,
"24h": {
"volume_usd": 12012285.351939747,
"buys": 21689,
"sells": 24168,
"txns": 45857
}
}
}2. Fetch MON liquidity pools & DEX data
Discover all liquidity pools containing MON tokens across different DEXes on Monad (PancakeSwap, Uniswap, etc.).
Endpoint:GET
/networks/{network}/tokens/{token_address}
Parameters:
network=monadtoken_address=0x3bd359c1119da7da1d913d1c4d2b7c461115433alimit=10(number of pools to return)sort=desc(descending order)order_by=volume_usd(sort by volume)
JavaScript example
async function getMonadPools() {
const url = new URL('https://api.dexpaprika.com/networks/monad/pools/search');
url.searchParams.append('token_address', '0x3bd359c1119da7da1d913d1c4d2b7c461115433a');
url.searchParams.append('limit', '10');
url.searchParams.append('sort', 'desc');
url.searchParams.append('order_by', 'volume_usd_24h');
try {
const response = await fetch(url);
const data = await response.json();
data.results.forEach(pool => {
console.log(`DEX: ${pool.dex_name}`);
console.log(`Pool Address: ${pool.id}`);
console.log(`24h Volume (USD): $${pool.volume_usd}`);
console.log(`Transactions: ${pool.transactions}`);
console.log(`Current Price: $${pool.price_usd}`);
console.log('---');
});
} catch (error) {
console.error('Error:', error);
}
}
getMonadPools();Python example
import requests
def get_monad_pools():
url = 'https://api.dexpaprika.com/networks/monad/pools/search'
params = {
'token_address': '0x3bd359c1119da7da1d913d1c4d2b7c461115433a',
'limit': 10,
'sort': 'desc',
'order_by': 'volume_usd_24h'
}
try:
response = requests.get(url, params=params)
data = response.json()
for pool in data['results']:
print(f"DEX: {pool['dex_name']}")
print(f"Pool Address: {pool['id']}")
print(f"24h Volume (USD): ${pool['volume_usd']}")
print(f"Transactions: {pool['transactions']}")
print(f"Current Price: ${pool['price_usd']}")
print('---')
except Exception as error:
print(f"Error: {error}")
get_monad_pools()Currently supported DEXes on Monad
- PancakeSwap V2
- PancakeSwap V3
- Uniswap V2
- Uniswap V3
- Uniswap V4
- DyorSwap
- Additional DEXes as they launch (queryable via API)
3. Track pool-level transactions
Monitor individual transactions within a specific MON liquidity pool to track buy/sell activity and liquidity changes. Since 30 September 2026 this endpoint needs a Dev or Pro plan: call it on api-pro.dexpaprika.com with your key on its own in the Authorization header.
Endpoint:GET /networks/{network}/pools/{pool_address}/transactions
Parameters:
network=monadpool_address=0xb9897986847472cd08b9a0e7bcd31ea4f1322361(example MON/USDC pool)limit=10(transactions per page)page=1
JavaScript example
async function getPoolTransactions(poolAddress) {
const url = new URL(`https://api-pro.dexpaprika.com/networks/monad/pools/${poolAddress}/transactions`);
url.searchParams.append('limit', '10');
url.searchParams.append('page', '1');
try {
const response = await fetch(url, { headers: { Authorization: process.env.DEXPAPRIKA_API_KEY } });
const data = await response.json();
data.transactions.forEach(tx => {
console.log(`Transaction ID: ${tx.id}`);
console.log(`From: ${tx.sender}`);
console.log(`Token 0 Amount: ${tx.amount_0} ${tx.token_0_symbol}`);
console.log(`Token 1 Amount: ${tx.amount_1} ${tx.token_1_symbol}`);
console.log(`Price (Token 0): $${tx.price_0_usd}`);
console.log(`Timestamp: ${tx.created_at}`);
console.log('---');
});
console.log(`Total Transactions: ${data.page_info.total_items}`);
} catch (error) {
console.error('Error:', error);
}
}
getPoolTransactions('0xb9897986847472cd08b9a0e7bcd31ea4f1322361');Python example
import os
import requests
def get_pool_transactions(pool_address):
url = f'https://api-pro.dexpaprika.com/networks/monad/pools/{pool_address}/transactions'
params = {
'limit': 10,
'page': 1
}
try:
response = requests.get(url, params=params, headers={'Authorization': os.environ['DEXPAPRIKA_API_KEY']})
data = response.json()
for tx in data['transactions']:
print(f"Transaction ID: {tx['id']}")
print(f"From: {tx['sender']}")
print(f"Token 0 Amount: {tx['amount_0']} {tx['token_0_symbol']}")
print(f"Token 1 Amount: {tx['amount_1']} {tx['token_1_symbol']}")
print(f"Price (Token 0): ${tx['price_0_usd']}")
print(f"Timestamp: {tx['created_at']}")
print('---')
print(f"Total Transactions: {data['page_info']['total_items']}")
except Exception as error:
print(f"Error: {error}")
get_pool_transactions('0xb9897986847472cd08b9a0e7bcd31ea4f1322361')Key data points
- amount_0 / amount_1 - Token amounts swapped
- price_0_usd / price_1_usd - USD prices at the time of the swap
- sender / recipient - Transaction addresses
- token_0_symbol / token_1_symbol - Asset symbols
4. Get OHLCV data for technical analysis (secondary)
Retrieve historical Open-High-Low-Close-Volume (OHLCV) candlestick data for MON pools - useful for charting and technical analysis.
Endpoint:GET /networks/{network}/pools/{pool_address}/ohlcv
Parameters:
network=monadpool_address= pool addressstart= start date, timestamp or relative time such as-24h(required; without a key it must fall within the last 24 hours)interval=1h,6h,24h, etc. (default:24h)limit= number of candles to return
JavaScript Example
async function getPoolOHLCV(poolAddress, startDate) {
const url = new URL(`https://api.dexpaprika.com/networks/monad/pools/${poolAddress}/ohlcv`);
url.searchParams.append('start', startDate);
url.searchParams.append('interval', '1h');
url.searchParams.append('limit', '24');
try {
const response = await fetch(url);
const data = await response.json();
data.forEach(candle => {
console.log(`Time: ${candle.time_open}`);
console.log(`Open: $${candle.open}`);
console.log(`High: $${candle.high}`);
console.log(`Low: $${candle.low}`);
console.log(`Close: $${candle.close}`);
console.log(`Volume: ${candle.volume}`);
console.log('---');
});
} catch (error) {
console.error('Error:', error);
}
}
// Example: Get last 24 hours of hourly candles
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
getPoolOHLCV('0xb9897986847472cd08b9a0e7bcd31ea4f1322361', yesterday.toISOString().split('T')[0]);Python Example
import requests
from datetime import datetime, timedelta
def get_pool_ohlcv(pool_address, start_date):
url = f'https://api.dexpaprika.com/networks/monad/pools/{pool_address}/ohlcv'
params = {
'start': start_date,
'interval': '1h',
'limit': 24
}
try:
response = requests.get(url, params=params)
data = response.json()
for candle in data:
print(f"Time: {candle['time_open']}")
print(f"Open: ${candle['open']}")
print(f"High: ${candle['high']}")
print(f"Low: ${candle['low']}")
print(f"Close: ${candle['close']}")
print(f"Volume: {candle['volume']}")
print('---')
except Exception as error:
print(f"Error: {error}")
# Example: Get last 24 hours of hourly candles
yesterday = (datetime.now() - timedelta(days=1)).date()
get_pool_ohlcv('0xb9897986847472cd08b9a0e7bcd31ea4f1322361', str(yesterday))What can you build with this data?
The DexPaprika Monad API opens up powerful possibilities for developers and traders:
Live price dashboards
Monitor MON token prices across multiple DEXes, displaying price discrepancies and arbitrage opportunities.
Liquidity analytics tools
Track liquidity pool metrics, identify high-volume pools, and analyze liquidity provider (LP) risks.
Transaction monitoring bots
Create bots that detect large buy/sell orders, whale movements, or unusual trading patterns on Monad.
DEX aggregators
Build smart order routing that finds the best prices across PancakeSwap, Uniswap, and other DEXes on Monad.
Technical analysis platforms
Generate trading signals using OHLCV data for charting applications or automated trading strategies.
On-chain analytics
Track token holder behavior, trading volume trends, and DEX performance metrics across Monad.
Practical use case: building a MON price alert system
Let's build a simple but practical application that monitors MON token price across Monad and sends alerts when the price crosses a threshold.
How it works:
- Track MON/USDC price on major pools
- Alert when price moves 5% in either direction
- Log all price changes to a file
JavaScript implementation:
const fetch = require('node-fetch');
const fs = require('fs');
class MonadPriceMonitor {
constructor(checkInterval = 60000) {
this.checkInterval = checkInterval;
this.lastPrice = null;
this.priceThreshold = 0.05;
this.logFile = 'monad_price_log.txt';
}
async checkPrice() {
try {
const url = 'https://api.dexpaprika.com/networks/monad/tokens/0x3bd359c1119da7da1d913d1c4d2b7c461115433a';
const response = await fetch(url);
const data = await response.json();
const currentPrice = data.summary.price_usd;
const timestamp = new Date().toISOString();
const logEntry = `${timestamp} | Price: $${currentPrice} | 24h Volume: $${data.summary['24h'].volume_usd}\n`;
fs.appendFileSync(this.logFile, logEntry);
if (this.lastPrice === null) {
this.lastPrice = currentPrice;
console.log(`Initial price recorded: $${currentPrice}`);
return;
}
const percentChange = (currentPrice - this.lastPrice) / this.lastPrice;
if (Math.abs(percentChange) > this.priceThreshold) {
const direction = percentChange > 0 ? 'UP' : 'DOWN';
const alertMsg = `${direction} | Price changed ${(percentChange * 100).toFixed(2)}% | $${this.lastPrice} → $${currentPrice}`;
console.log(alertMsg);
fs.appendFileSync(this.logFile, `ALERT: ${alertMsg}\n`);
this.lastPrice = currentPrice;
}
} catch (error) {
console.error('Error checking price:', error);
}
}
start() {
console.log('MON Price Monitor started...');
this.checkPrice();
setInterval(() => this.checkPrice(), this.checkInterval);
}
}
const monitor = new MonadPriceMonitor(60000);
monitor.start();Python implementation:
import requests
import time
from datetime import datetime
class MonadPriceMonitor:
def __init__(self, check_interval=60):
self.check_interval = check_interval
self.last_price = None
self.price_threshold = 0.05
self.log_file = 'monad_price_log.txt'
self.token_url = 'https://api.dexpaprika.com/networks/monad/tokens/0x3bd359c1119da7da1d913d1c4d2b7c461115433a'
def check_price(self):
try:
response = requests.get(self.token_url)
data = response.json()
current_price = data['summary']['price_usd']
timestamp = datetime.now().isoformat()
log_entry = f"{timestamp} | Price: ${current_price} | 24h Volume: ${data['summary']['24h']['volume_usd']}\n"
with open(self.log_file, 'a') as f:
f.write(log_entry)
if self.last_price is None:
self.last_price = current_price
print(f"Initial price recorded: ${current_price}")
return
percent_change = (current_price - self.last_price) / self.last_price
if abs(percent_change) > self.price_threshold:
direction = 'UP' if percent_change > 0 else 'DOWN'
alert_msg = f"{direction} | Price changed {percent_change*100:.2f}% | ${self.last_price} → ${current_price}"
print(alert_msg)
with open(self.log_file, 'a') as f:
f.write(f"ALERT: {alert_msg}\n")
self.last_price = current_price
except Exception as error:
print(f"Error checking price: {error}")
def start(self):
print("MON Price Monitor started...")
self.check_price()
while True:
time.sleep(self.check_interval)
self.check_price()
if __name__ == '__main__':
monitor = MonadPriceMonitor(check_interval=60)
monitor.start()Best practices & tips
1. Rate limiting
The DexPaprika API has a free tier with public endpoints, but practice good API citizenship:
- Stay within the per-minute limit of your tier; current numbers are on the pricing page
- Implement exponential backoff for retries
- Cache responses when possible
2. Error handling
Always wrap API calls in try-catch blocks:
try {
const response = await fetch(url);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
// Process data
} catch (error) {
console.error('API Error:', error);
}3. Data freshness
On the free tier, data can be up to 60 seconds behind; real-time data is on the paid plans, listed on the pricing page. For price-sensitive applications, push updates through a queue, or use the SSE streams instead of polling.
4. Network discovery
Always query /networks endpoint to discover all available blockchains and dynamically detect Monad:
async function findMonadNetwork() {
const response = await fetch('https://api.dexpaprika.com/networks');
const networks = await response.json();
return networks.find(n => n.id === 'monad');
}Conclusion
The DexPaprika API makes it incredibly simple to integrate Monad (MON) token data into your applications. Whether you're building price trackers, liquidity analytics, trading bots, or DEX aggregators, you now have access to comprehensive market data, and the first call needs no key at all. A free API key raises the rate and the monthly allowance when you outgrow that; see the pricing page.
Key Takeaways
- No API key needed to start - just make GET requests
- Price and liquidity data for MON, plus pool transactions on Dev and Pro
- Support for PancakeSwap V2/V3 and Uniswap V2/V3 (plus additional DEXes)
- Historical OHLCV data for technical analysis
- Built for dashboards, trading tools and analytics
FAQ - DexPaprika API & Monad MON
General questions
Do I need an API key to use DexPaprika API?
No key is needed to start. Make GET requests to https://api.dexpaprika.com and you get data straight away. A free API key raises the per-minute rate and the monthly allowance and still needs no card; current limits are on the DexPaprika pricing page.
Is DexPaprika API suitable for production applications?
Yes, the API is designed for production use. However, it's still in beta, so monitor the CoinPaprika status page for any planned maintenance.
What are the rate limits?
Keyless requests and free keys have per-minute and monthly limits, and paid plans raise both. Current numbers are on the pricing page.
Can I use the API for real-time data?
Yes, on the paid plans. On the free tier, data can be up to 60 seconds behind, which suits dashboards and monitoring; trading logic that needs real-time prices belongs on a paid plan. Details are on the pricing page.
Monad-specific questions
What is Monad (MON)?
Monad is a high-performance, EVM-compatible Layer 1 blockchain now live on mainnet. It achieves 10,000 TPS with 400ms block times while maintaining full Ethereum bytecode compatibility, allowing developers to deploy Ethereum applications without modifications.
Where can I find the MON token address on Monad?
The MON token contract address on Monad is 0x3bd359c1119da7da1d913d1c4d2b7c461115433a. Use this address when querying token-specific endpoints.
Which DEXes support MON trading on Monad?
Currently, PancakeSwap V2 & V3 and Uniswap V2 & V3 officially support MON. However, you can query all available pools and DEXes via the API to discover additional trading venues.
How do I find all pools for a specific token?
Use the endpoint GET /networks/monad/pools/search?token_address={token_address}. It returns the liquidity pools containing that token under a results array, with cursor paging, and sorts by volume, liquidity or creation date.
API integration questions
What's the difference between token price and pool price?
Token price (from /tokens endpoint) is an aggregate price across all pools. Pool price (from /pools endpoint) is the specific price within that liquidity pool, which may vary slightly due to different token pairs and AMM mechanics.
How do I track liquidity changes in a pool?
Monitor the liquidity_usd field in pool data, or track transaction amounts over time. The /pools/{pool_address}/transactions endpoint shows all swaps and liquidity changes. It needs a Dev or Pro plan.
Can I get historical price data for backtesting?
Yes! Use the /pools/{pool_address}/ohlcv endpoint to fetch candlestick data at intervals of 1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, or 24h. Without a key you get hourly and longer intervals over the last 24 hours; a free key opens the finer intervals and more history.
How do I implement price alerts?
Poll the token or pool endpoint at regular intervals, compare prices, and trigger alerts when thresholds are crossed. See the practical use case section for a complete example.
Troubleshooting
Why am I getting a 404 error for the Monad network?
Ensure you're using the network ID monad (lowercase) in your endpoint path. Network IDs can be discovered via GET /networks.
OHLCV endpoint returns empty results - why?
OHLCV data availability depends on pool age and historical data collection. Newer pools may have limited historical data. Ensure your timestamp format is valid (Unix timestamp, RFC3339, or YYYY-MM-DD).
Pool volume seems incorrect - which volume metric should I use?
Use volume_usd for USD-denominated volume across all time periods. The 24h field specifically contains the last 24 hours of activity. Check last_price_change_usd_24h for percentage changes.
How do I handle CORS issues when calling the API from a browser?
DexPaprika API supports CORS, but if you encounter issues, call the API from your backend server instead. Browser environments should use server-side proxies for production applications.
Start building today by making your first API call:
curl https://api.dexpaprika.com/networks/monad/tokens/0x3bd359c1119da7da1d913d1c4d2b7c461115433a
For more information and to explore other endpoints, visit the full DexPaprika API documentation.
Additional Resources
- DexPaprika Main Site:https://dexpaprika.com
- API Documentation:https://docs.dexpaprika.com
- CoinPaprika Support: support@coinpaprika.com
- Monad Ecosystem:https://monad.xyz
- Developer Questions: msroka@coinpaprika.com
مقالات ذات صلة
- Case Study: Successful Real Estate Tokenization Projects
- Real Estate NFTs vs Tokenized Real Estate: What's the Difference?
- Legal Framework for Tokenized Real Estate: US, EU & Beyond
- Liquidity in Tokenized Real Estate: Secondary Markets Explained
- Top Tokenized Real Estate Platforms Compared
- Commercial vs Residential Tokenized Real Estate: Where to Invest
أحدث المقالات
- How to Buy Tokenized Stocks: Venues, Chains, Wallets and Fees
- Tokenized Stocks in DeFi: Collateral on Kamino, Liquidity Pools and the Oracle Problem
- Tokenized ETFs On-Chain: S&P 500, Nasdaq and Leveraged Funds as Tokens
- Tokenized Stocks Failed Twice Before: Mirror, Synthetix, Binance and FTX
- Tokenized Pre-IPO Shares: SpaceX, OpenAI and What Those Tokens Really Are
- Who Can Legally Buy Tokenized Stocks? Reg S, MiFID II and the US Question
تعليم Coinpaprika
اكتشف أدلة عملية وتعريفات ودراسات متعمقة لتنمية معرفتك بالعملات المشفرة.
تعتبر العملات المشفرة متقلبة للغاية وتنطوي على مخاطر كبيرة. قد تخسر جزءًا أو كل استثمارك.
جميع المعلومات على Coinpaprika مقدمة لأغراض معلوماتية فقط ولا تشكل نصيحة مالية أو استثمارية. قم دائمًا بإجراء بحثك الخاص (DYOR) واستشر مستشارًا ماليًا مؤهلاً قبل اتخاذ قرارات الاستثمار.
لا تتحمل Coinpaprika أي مسؤولية عن أي خسائر ناتجة عن استخدام هذه المعلومات.