Docs are available to browse. API keys and live queries are not open to the public yet; launching soon.
AdaBubbles API Documentation
Complete reference for accessing real-time Cardano token data, market metrics, and on-chain analytics.
Base URL
https://api.adabubbles.net30+ Endpoints
Comprehensive coverage across tokens, wallets, and markets
Real-time Data
Live updates via DEX webhooks and on-chain monitoring
Easy Authentication
Simple API key authentication via wallet connection
The AdaBubbles API provides programmatic access to comprehensive Cardano token data including prices, market metrics, holder information, trading activity, and wallet analytics. All data is sourced directly from on-chain transactions and updated in real-time.
Authentication
All API requests require authentication using an API key passed in the request header.
X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAPI keys coming soon: Endpoint reference is ready now. When the public API launches, visit the API page and connect your Cardano wallet to generate a key.
Rate Limiting & Credits
Per Second
5 requests/sec
Smooth, burst-friendly limiting
Per Minute
300 requests/min
Comparable to Blockfrost & CardanoScan
How It Works:
- Each API key can make up to 5 requests per second (300 per minute)
- Rate limits are enforced per API key using a sliding window
- Each IP address is limited to 1 API key; multiple keys per IP are not allowed
- If you exceed the limit, wait 1 second and retry
Credit System
- New users receive 100 free credits upon signup
- Each API request costs 1 credit (except
/address/{address}/portfolio/performance, which costs 2 credits) - Top up anytime by sending ADA to your payment address
Rate limit headers are included in 429 responses: Retry-After, X-RateLimit-Limit-Second, X-RateLimit-Remaining-Minute
Response Format
All responses are returned in JSON format. List endpoints return arrays, while single-resource endpoints return objects.
Single Resource
{
"asset_id": "279c909f...",
"ticker": "SNEK",
"current_price_ada": 0.00377
}Array Response
{
"page": 1,
"limit": 10,
"tokens": [...]
}Data Format & Units
Numbers
All numeric values are returned in human-readable format - already divided by decimals. No conversion needed.
1000000 = 1M tokens123.45 = 123.45 ADA0.00377 ADA/token14.25 = +14.25%Timestamps
All timestamps are in UTC timezone and ISO 8601 format.
2025-11-01T12:00:00ZAsset ID Format
Tokens are identified by their policy_id + asset_name_hex (concatenated, no separator)
279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454bError Handling
The API uses standard HTTP status codes and returns detailed error messages in JSON format.
Request successful, data returned
Invalid parameters or malformed request
{"detail": "Invalid Asset ID format"}Missing or invalid API key
{"detail": "Missing API key. Include 'X-API-Key' header"}Insufficient credits remaining
{"detail": "Insufficient credits. Please top up"}Token or resource not found
{"detail": "Token not found: {asset_id}"}Rate limit exceeded
{"detail": "Rate limit exceeded. Limit: 5 requests/second (300 requests/minute). Try again in 1 second."}Server error - please try again or contact support
{"detail": "Internal server error"}Data Quality & Filtering
This API is CNT-only: fungible Cardano native tokens. List endpoints (like /tokens) apply quality filters so only tradeable CNTs appear. Pricing eligibility is maintained by background crons before those list filters run.
NFTs
We do not index, store, or serve NFT / collectible data, and we will not add NFT support in the future. This product is purely CNT-based.
- Low usage vs cost: Indexing and storing full NFT collections is not worth the storage and maintenance burden for the usage we see
- Pricing is unreliable: Sparse, thin markets and floor-price noise create bad valuations that pollute portfolio totals and related metrics
- Scope stays focused: Keeping the dataset CNT-only keeps prices, holders, and portfolio figures cleaner for fungible tokens
List Endpoint Filters
List endpoints automatically exclude tokens that don't meet minimum quality standards:
- Must have a ticker symbol: Tokens without tickers are excluded
- Must have at least 30 holders: Ensures minimum distribution
- Must have valid price data:
current_price_ada > 0
Pricing Eligibility (Cron)
Background jobs keep price and market-cap data honest. Tokens that fail these checks have price/mcap/FDV zeroed, so they drop out of list results via the valid-price filter:
- ≥10 ADA DEX liquidity:
liquidity_ada < 10clears price and market cap - Traded within the last 2 years: No trade, or last trade older than 2 years, also clears price and market cap
- Above Cardano's network mcap: Caps above ~45B ADA (Cardano's own mcap in ADA) get holder/supply repair; still-impossible values with no trade/volume stats are zeroed
Filtered Out
List results also exclude non-CNT and curated problem tokens:
- LP / LQ / DeFi receipt tokens
- Implausible market cap values
- Fake or unrealistic volume
- Non-readable symbols in the name
- Invalid metadata links or decimal fields
Curated problem tokens may still exist in storage but are hidden from bubble maps and API list results.
Specific asset lookups
When querying a specific asset by ID (e.g., /token/{asset_id}/metadata), list filters are not applied. You can retrieve data for any CNT, including those without tickers or with low holder counts. Filters only apply to list and search endpoints. Pricing eligibility can still leave price/mcap null on illiquid or inactive tokens.
Token Endpoints
Token metadata, pricing, holders, trading data, and analytics
Description
Returns metadata for a token: name, ticker, logo, decimals, total and circulating supply, description, website, and social links.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex concatenated, no separator)
Response Fields
asset_id:stringpolicy_id:stringasset_name:stringticker:stringdisplay_name:stringdescription:stringdecimals:numberlogo_url:stringwebsite:stringtwitter:stringdiscord:stringtelegram:stringtotal_supply:numbercirculating_supply:numbercategory:string | nullis_verified:booleanis_snekfun:booleanis_chakra:booleanExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"policy_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f",
"asset_name": "534e454b",
"ticker": "SNEK",
"display_name": "Snek",
"description": "In Snek We Trust",
"decimals": 0,
"logo_url": "https://ipfs.blockfrost.dev/ipfs/QmaPe6g9NPTTkJ87CF2MjN9fS8Mbfwv8Ue6DwZyyUyXUQF",
"website": "https://www.snek.com/",
"twitter": "https://x.com/snek",
"discord": "https://discord.gg/snek",
"telegram": "https://t.me/sabordasnek",
"total_supply": 76715880000,
"circulating_supply": 76715880000,
"category": "meme",
"is_verified": true,
"is_snekfun": false,
"is_chakra": false
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/metadata" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Returns current price in ADA, market cap, FDV, ATH/ATL, and price change percentages (10m through 30d). For DEX liquidity use `/dex-breakdown`; for volume use `/volume`. Daily OHLC candles are at `/price/daily`.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Response Fields
current_price_ada:numbermarket_cap_ada:numberfdv_ada:numberath_price_ada:number | nullath_at:string | nullpct_from_ath:number | nullatl_price_ada:number | nullatl_at:string | nullpct_from_atl:number | nullprice_change_10m:numberprice_change_30m:numberprice_change_1h:numberprice_change_4h:numberprice_change_6h:numberprice_change_24h:numberprice_change_7d:numberprice_change_30d:numberExample Response
{
"current_price_ada": 0.0037756234796006614,
"market_cap_ada": 289650277.7862268,
"fdv_ada": 289650277.7862268,
"ath_price_ada": 0.0042,
"ath_at": "2025-10-01T12:00:00Z",
"pct_from_ath": -10.1,
"atl_price_ada": 0.0008,
"atl_at": "2024-06-01T08:00:00Z",
"pct_from_atl": 371.95,
"price_change_10m": 0.05,
"price_change_30m": 0.12,
"price_change_1h": 0.19,
"price_change_4h": -0.08,
"price_change_6h": -0.18,
"price_change_24h": 14.25,
"price_change_7d": 8.5,
"price_change_30d": -12.3
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/price" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Returns the wallet address that minted this token, the creation timestamp, and platform flags for snek.fun or Chakra AI when applicable.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringcreator_address:stringcreated_at:string (ISO 8601 timestamp)is_snekfun:booleanis_chakra:booleanExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"creator_address": "addr1q9...",
"created_at": "2023-04-26T13:40:13",
"is_snekfun": false,
"is_chakra": false
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/creator" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Returns the total count of unique wallet addresses currently holding this token.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringtotal_holders:numberholders_change_24h:numberholders_change_7d:numberExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"total_holders": 44106,
"holders_change_24h": 42,
"holders_change_7d": 180
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/holder-count" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Sparse daily holder count time series from pre-aggregated snapshots. Rows exist only when the count changed; missing dates mean holders were unchanged.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: days
Recent calendar days to return, max 365 (default: 30)
Response Fields
asset_id:stringdays:numberseries:sparse array of { date, holder_count }; gaps mean unchangedsparse:true when rows are change-only (missing dates = flat count)Example Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"days": 30,
"sparse": true,
"series": [
{ "date": "2025-11-01", "holder_count": 44000 },
{ "date": "2025-11-02", "holder_count": 44106 }
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/holder-history" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Precomputed unique trader counts and money-flow netflow (buy minus sell ADA) across standard timeframes.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringunique_traders_24h:numberunique_traders_7d:numberunique_traders_30d:numberunique_traders_1y:numberunique_traders_all:numbernetflow_24h_ada:numbernetflow_7d_ada:numbernetflow_30d_ada:numbernetflow_1y_ada:numberExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"unique_traders_24h": 842,
"unique_traders_7d": 4200,
"unique_traders_30d": 9800,
"unique_traders_1y": 45000,
"unique_traders_all": 62000,
"netflow_24h_ada": 125000.5,
"netflow_7d_ada": -45000.2,
"netflow_30d_ada": 210000.0,
"netflow_1y_ada": 1500000.0
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/trader-stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Paginated list of the largest token holders with wallet addresses, balances, and percentage of total supply. Marks DEX liquidity pools and the creator address.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Items per page, max 100 (default: 100)
Response Fields
page:numberlimit:numberholders:array of holder objects with address, balance, percentage, is_dex, platform, is_creatorExample Response
{
"page": 1,
"limit": 100,
"holders": [
{
"address": "addr1...",
"balance": 5000000,
"percentage": 6.51,
"is_dex": true,
"platform": "minswap",
"is_creator": false
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/top-holders" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Recent trades for a token: transaction hash, DEX, token and ADA amounts, price, buy/sell flag, buyer and seller addresses, and timestamp.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: limit
Number of trades to return, max 100 (default: 10)
Response Fields
asset_id:stringlimit:numbertrades:array of trade objects with tx_hash, platform, token_amount, ada_amount, price_ada, is_buy, user_address, block_timeExample Response
{
"asset_id": "279c909f...",
"limit": 10,
"trades": [
{
"tx_hash": "abc123...",
"platform": "minswap",
"token_amount": 50000.0,
"ada_amount": 6.17,
"price_ada": 0.0001234,
"is_buy": true,
"user_address": "addr1...",
"user_address": "addr1...",
"block_time": "2025-11-01T12:00:00"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/trades" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Most active buyer and seller addresses for a token within a timeframe (DEX addresses excluded), ranked by transaction volume.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: limit
Number of top traders to return, max 100 (default: 10)
Query Parameter: timeframe
Time period: 1h, 6h, 24h, 7d, 30d (default: 30d)
Response Fields
asset_id:stringticker:stringtimeframe:stringlimit:numbertop_buyers:array of trader objectstop_sellers:array of trader objectsExample Response
{
"asset_id": "279c909f...",
"ticker": "SNEK",
"timeframe": "30d",
"limit": 10,
"top_buyers": [
{
"address": "addr1...",
"trade_count": 25,
"total_volume_ada": 5000.50
}
],
"top_sellers": [
{
"address": "addr1...",
"trade_count": 18,
"total_volume_ada": 3200.75
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/most-active-traders" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Supply distribution across four holder tiers: whales, large, medium, and small. Shows holder count and supply percentage per tier. DEX liquidity addresses and Byron-era script addresses (DdzFF) are excluded.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringtotal_holders:numberdistribution:array of distribution buckets with range, holder_count, percentageExample Response
{
"asset_id": "279c909f...",
"total_holders": 44106,
"distribution": {
"whales": {
"min_percentage": 1.0,
"holder_count": 15,
"supply_percentage": 45.23
},
"large_holders": {
"min_percentage": 0.1,
"max_percentage": 1.0,
"holder_count": 120,
"supply_percentage": 25.67
},
"medium_holders": {
"min_percentage": 0.01,
"max_percentage": 0.1,
"holder_count": 850,
"supply_percentage": 15.45
},
"small_holders": {
"max_percentage": 0.01,
"holder_count": 43121,
"supply_percentage": 13.65
}
}
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/holder-distribution" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Total trade count for a token over a custom lookback, broken down into buys and sells.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: hours
Lookback period in hours, 1–168 (default: 24)
Response Fields
asset_id:stringhours:numberrequested_hours:numbertrade_count:numberbuy_count:numbersell_count:numbersource:stringExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"hours": 24,
"requested_hours": 24,
"trade_count": 1250,
"buy_count": 680,
"sell_count": 570,
"source": "token_row"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/trade-count" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Trading volume for the requested timeframe (no price fields). Use `/trade-count` for counts, `/volume/daily` for daily volume, `/price/daily` for OHLC.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: timeframe
Time period: 1h, 6h, 24h, 7d, 30d (default: 24h)
Response Fields
asset_id:stringtimeframe:stringvolume_ada:numberbuy_volume_ada:numbersell_volume_ada:numbertrade_count:numbervolume_change_24h:numbervolume_change_7d:numbersource:stringExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"timeframe": "24h",
"volume_ada": 1062476.50,
"buy_volume_ada": 580123.25,
"sell_volume_ada": 482353.25,
"trade_count": 4200,
"volume_change_24h": 15.3,
"volume_change_7d": -8.2,
"source": "token_row"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/volume" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily volume and trade counts by calendar day. Volume only; use `/price/daily` for OHLC candles.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: days
Calendar days ending today, 1-365 (default: 30)
Response Fields
asset_id:stringdays:numberstart_date:string (YYYY-MM-DD)end_date:string (YYYY-MM-DD)count:numberseries:array of { date, volume_ada, transaction_count, buy_volume_ada, sell_volume_ada }Example Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"days": 30,
"start_date": "2026-06-28",
"end_date": "2026-07-27",
"count": 1,
"series": [
{
"date": "2026-07-27",
"volume_ada": 1250000.0,
"transaction_count": 4200,
"buy_volume_ada": 640000.0,
"sell_volume_ada": 610000.0
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/volume/daily" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily OHLC price candles by calendar day. Price only; use `/volume/daily` for volume series.
Cache Duration
Path Parameter: assetId
Token Asset ID
Query Parameter: days
Calendar days ending today, 1-365 (default: 30)
Response Fields
asset_id:stringdays:numberstart_date:string (YYYY-MM-DD)end_date:string (YYYY-MM-DD)count:numberseries:array of { date, open_price_ada, high_price_ada, low_price_ada, close_price_ada }Example Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"days": 30,
"start_date": "2026-06-28",
"end_date": "2026-07-27",
"count": 1,
"series": [
{
"date": "2026-07-27",
"open_price_ada": 0.0037,
"high_price_ada": 0.0039,
"low_price_ada": 0.0036,
"close_price_ada": 0.00377
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/price/daily" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Holder concentration metrics including Gini coefficient (0-1), top holder percentages, and concentration risk level. DEX liquidity addresses and Byron-era script addresses (DdzFF) are excluded.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex concatenated)
Response Fields
asset_id:stringtotal_holders:numbertop_10_holders_percentage:numbertop_50_holders_percentage:numbertop_100_holders_percentage:numbergini_coefficient:number (0-1, where 0 = perfect equality, 1 = perfect inequality)concentration_risk:string (low, medium, high, extreme)largest_holder_percentage:numberExample Response
{
"asset_id": "279c909f...",
"total_holders": 15234,
"top_10_holders_percentage": 45.2,
"top_50_holders_percentage": 72.8,
"top_100_holders_percentage": 85.3,
"gini_coefficient": 0.82,
"concentration_risk": "medium",
"largest_holder_percentage": 8.5
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/holder-concentration" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Liquidity and 24-hour trading volume broken down by DEX. Includes token balance in pools, percentage of supply, pool count, and each DEX share of volume.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringliquidity_by_dex:array of DEX liquidity objectsvolume_by_dex_24h:array of DEX volume objectsExample Response
{
"asset_id": "279c909f...",
"liquidity_by_dex": [
{
"platform": "minswap",
"token_balance": 5000000000,
"percentage": 6.51,
"pool_count": 2
},
{
"platform": "wingriders",
"token_balance": 3500000000,
"percentage": 4.56,
"pool_count": 1
}
],
"volume_by_dex_24h": [
{
"platform": "minswap",
"volume_ada": 12458.32,
"trade_count": 820,
"percentage_of_total": 68.5
},
{
"platform": "wingriders",
"volume_ada": 5721.18,
"trade_count": 310,
"percentage_of_total": 31.5
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/dex-breakdown" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Supply distribution metrics: total and circulating supply, supply locked in DEXs, creator holdings, and top holder concentrations, with percentages for each category.
Cache Duration
Path Parameter: assetId
Token Asset ID
Response Fields
asset_id:stringtotal_supply:numbercirculating_supply:numbercirculating_percentage:numbertotal_holders:numbersupply_in_dex_pools:numbersupply_in_dex_percentage:numbersupply_held_by_creator:numbercreator_percentage:numbertop_10_non_dex_supply:numbertop_10_non_dex_percentage:numberExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"total_supply": 76800000000,
"circulating_supply": 76800000000,
"circulating_percentage": 100.0,
"total_holders": 44106,
"supply_in_dex_pools": 8500000000,
"supply_in_dex_percentage": 11.07,
"supply_held_by_creator": 0,
"creator_percentage": 0.0,
"top_10_non_dex_supply": 15234000000,
"top_10_non_dex_percentage": 19.84
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/supply-metrics" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Token price at a specific timestamp from the closest trade. Returns the actual trade timestamp, price, volume, and time distance from the requested moment.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Query Parameter: timestamp
ISO 8601 timestamp (e.g., 2026-03-08T12:00:00Z)
Response Fields
asset_id:stringrequested_timestamp:string (ISO 8601)actual_timestamp:string (ISO 8601)price_ada:numbervolume_ada:numbertime_difference_seconds:numberExample Response
{
"asset_id": "279c909f...",
"requested_timestamp": "2026-03-08T12:00:00Z",
"actual_timestamp": "2026-03-08T12:02:15Z",
"price_ada": 0.00377,
"volume_ada": 123.45,
"time_difference_seconds": 135
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/price-at" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Returns total DEX liquidity in ADA (sum of DEX-pool holder balances × price). For per-DEX liquidity split use `/dex-breakdown`. For volume use `/volume`.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Response Fields
asset_id:stringticker:stringliquidity_ada:number | nullmarket_cap_ada:number | nullliquidity_to_mcap_pct:number | nullnote:stringExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"liquidity_ada": 1250000.5,
"market_cap_ada": 289650277.8,
"liquidity_to_mcap_pct": 0.4315,
"note": "For per-DEX liquidity split use GET /token/{asset_id}/dex-breakdown"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/liquidity" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Top swap (token↔token) counterparties by ADA volume from pre-aggregated daily pair rolls. ADA pair volume is not stored here; use `/volume` for total trading volume.
Cache Duration
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Query Parameter: days
Lookback calendar days, max 90 (default: 30)
Query Parameter: limit
Top pairs to return, max 50 (default: 20)
Response Fields
asset_id:stringticker:stringdays:numberlimit:numberpairs:array of { other_asset_id, ticker, display_name, volume_ada, transaction_count }note:stringExample Response
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"days": 30,
"limit": 20,
"pairs": [
{
"other_asset_id": "f66d78b4a3cb3d37afa0ec36461e51ecbde00f26c8f0a68f94b69880…",
"ticker": "iUSD",
"display_name": "iUSD",
"volume_ada": 42000.5,
"transaction_count": 180
}
],
"note": "Swap (token↔token) volume only. ADA pair volume is not stored here; use /volume for total."
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/token/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b/pair-volume?days=30&limit=10" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Address Endpoints
Address holdings, trading history, and portfolio analytics
Description
Token balance for a wallet. Accepts stake1… or payment addr1…; resolves to stake when possible and aggregates holdings under that stake.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format starting with addr1...)
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex concatenated)
Response Fields
address:stringqueried_address:stringasset_id:stringbalance:numberpercentage:numberis_dex:booleanplatform:string | nulllast_updated:string (ISO 8601 timestamp)Example Response
{
"address": "stake1…",
"queried_address": "addr1…",
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"balance": 1000000,
"percentage": 1.30,
"is_dex": false,
"platform": null,
"last_updated": "2025-11-01T12:00:00Z"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/token-balance/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Paginated list of tokens held by a wallet: metadata, balance, percentage of supply, current price, value in ADA, DEX pool status, and platform flags.
Cache Duration
Path Parameter: address
Cardano wallet address
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Items per page, max 100 (default: 100)
Response Fields
address:stringtotal_tokens:numberpage:numberlimit:numberportfolio:array of token holdings with asset_id, ticker, display_name, balance, percentage, current_price_ada, value_ada, is_dex, platform, is_snekfun, is_chakraExample Response
{
"address": "addr1...",
"total_tokens": 5,
"page": 1,
"limit": 100,
"portfolio": [
{
"asset_id": "279c909f...",
"ticker": "SNEK",
"display_name": "Snek",
"balance": 1000000,
"percentage": 1.30,
"current_price_ada": 0.00377,
"value_ada": 3770.0,
"is_dex": false,
"platform": null,
"is_snekfun": false,
"is_chakra": false
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/portfolio" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Paginated list of tokens minted by a wallet: asset ID, ticker, creation timestamp, and platform flags (snek.fun or Chakra AI).
Cache Duration
Path Parameter: address
Cardano wallet address of token creator
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Items per page, max 10 (default: 10)
Response Fields
address:stringtotal_tokens_created:numberpage:numberlimit:numbertokens:array of token objects with asset_id, ticker, display_name, created_at, is_snekfun, is_chakraExample Response
{
"address": "addr1…",
"total_tokens_created": 3,
"page": 1,
"limit": 10,
"tokens": [
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"display_name": "Snek",
"created_at": "2023-04-26T13:40:13Z",
"is_snekfun": false,
"is_chakra": false
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/created-tokens" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Paginated list of wallet connections for an address: other addresses linked through shared transactions, sorted by connection strength.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Results per page, max 100 (default: 20)
Response Fields
address:stringtotal_connections:numberpage:numberlimit:numberconnections:array of connection objects with connected_address, inbound/outbound tx+value, tx_count, total_value_ada, first/last_interaction, peer_is_known_contractExample Response
{
"address": "stake1…",
"total_connections": 45,
"page": 1,
"limit": 20,
"connections": [
{
"connected_address": "addr1…",
"inbound_tx_count": 8,
"outbound_tx_count": 7,
"inbound_value_ada": 12000.25,
"outbound_value_ada": 13000.25,
"tx_count": 15,
"total_value_ada": 25000.50,
"first_interaction": "2024-06-01T08:00:00Z",
"last_interaction": "2025-12-01T10:30:00Z",
"peer_is_known_contract": false
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/connections" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Most recent trade (buy or sell) for a wallet and token: transaction hash, DEX, trade type, token amount, ADA amount, price, and timestamp.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Response Fields
address:stringasset_id:stringticker:stringlast_trade:object with tx_hash, platform, type, token_amount, ada_amount, price_ada, block_timeExample Response
{
"address": "addr1...",
"asset_id": "279c909f...",
"ticker": "SNEK",
"last_trade": {
"tx_hash": "abc123...",
"platform": "minswap",
"type": "buy",
"token_amount": 50000,
"ada_amount": 6.17,
"price_ada": 0.0001234,
"block_time": "2026-03-08T12:00:00Z"
}
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/last-trade/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Recent trading history for a wallet across all tokens.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Query Parameter: limit
Number of trades to return, max 100 (default: 100)
Response Fields
address:stringlimit:numbertotal_trades:numbertrades:array of trade objects with tx_hash, asset_id, ticker, platform, type, token_amount, ada_amount, price_ada, block_timeExample Response
{
"address": "addr1...",
"limit": 100,
"total_trades": 45,
"trades": [
{
"tx_hash": "abc123...",
"asset_id": "279c909f...",
"ticker": "SNEK",
"platform": "minswap",
"type": "buy",
"token_amount": 50000,
"ada_amount": 188.5,
"price_ada": 0.00377,
"block_time": "2026-03-08T12:00:00Z"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/trades" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Profit and loss for a wallet on a specific token: bought/sold amounts, average buy/sell prices, realized PnL, unrealized PnL, and ROI percentage.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Path Parameter: assetId
Token Asset ID (policy_id + asset_name_hex)
Response Fields
address:stringasset_id:stringticker:stringtotal_bought:numbertotal_sold:numberavg_buy_price_ada:numberavg_sell_price_ada:numberrealized_pnl_ada:numberunrealized_pnl_ada:numbertotal_pnl_ada:numberroi_percentage:numbersource:stringExample Response
{
"address": "stake1…",
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"total_bought": 1000000,
"total_sold": 500000,
"avg_buy_price_ada": 0.00350,
"avg_sell_price_ada": 0.00420,
"realized_pnl_ada": 350.0,
"unrealized_pnl_ada": 135.0,
"total_pnl_ada": 485.0,
"roi_percentage": 13.86,
"source": "token_stake_trader_stats"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/pnl/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Portfolio performance over a timeframe: current vs previous value, percentage change, and best/worst performing tokens. Costs 2 credits per request.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Query Parameter: timeframe
Time period: 1h, 24h, 7d, 30d (default: 24h)
Response Fields
address:stringtimeframe:stringcurrent_value_ada:numberprevious_value_ada:numbervalue_change_ada:numbervalue_change_percentage:numberbest_performer:object with asset_id, ticker, price_change_percentageworst_performer:object with asset_id, ticker, price_change_percentagetoken_breakdown:array of token performance objectsExample Response
{
"address": "addr1...",
"timeframe": "24h",
"current_value_ada": 1250.75,
"previous_value_ada": 1180.50,
"value_change_ada": 70.25,
"value_change_percentage": 5.95,
"best_performer": { "asset_id": "279c909f...", "ticker": "SNEK", "price_change_percentage": 14.25 },
"worst_performer": { "asset_id": "fe7c786a...", "ticker": "USDA", "price_change_percentage": -2.1 },
"token_breakdown": [{ "asset_id": "279c909f...", "ticker": "SNEK", "balance": 1000000, "current_value_ada": 3770.0, "value_change_percentage": 14.25 }]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/portfolio/performance" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Activity summary for a wallet: trading statistics, portfolio diversity, and related activity metrics.
Cache Duration
Path Parameter: address
Cardano wallet address (bech32 format)
Response Fields
address:stringwallet_tier_id:string | nulltotal_tokens_held:number | nulltotal_trades:numbertotal_volume_ada:numberbuy_trades:numbersell_trades:numberavg_trade_size_ada:numbermost_traded_token:object | nulllargest_holding:object | nullfirst_trade_date:string (ISO 8601) | nulllast_trade_date:string (ISO 8601) | nulltrading_frequency:number (trades per day)Example Response
{
"address": "stake1…",
"wallet_tier_id": "whale",
"total_tokens_held": 12,
"total_trades": 156,
"total_volume_ada": 45230.75,
"buy_trades": 89,
"sell_trades": 67,
"avg_trade_size_ada": 290.07,
"most_traded_token": {
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"trade_count": 23
},
"largest_holding": {
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"balance": 1000000,
"value_ada": 3770.0
},
"first_trade_date": "2026-03-07T09:30:00Z",
"last_trade_date": "2026-03-08T14:22:00Z",
"trading_frequency": 2.3
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1q9yu938hdu3c2c79ny9r2uza5gdrvhkzf8nn58um4s5f8f6u8yrpyt4wj7t43j3alrejecn76k7uasdygmkvwakyk2aqcke767/activity/summary" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily buy/sell netflow series for a wallet from the stake netflow rollup. Prefer passing a stake1… address; payment addresses are resolved to stake when possible.
Cache Duration
Path Parameter: address
Cardano stake or payment address
Query Parameter: days
Calendar days, max 365 (default: 30)
Response Fields
address:stringstake_address:string | nulldays:numberseries:array of { date, buy_volume_ada, sell_volume_ada, netflow_ada }totals:objectExample Response
{
"address": "addr1…",
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"days": 30,
"series": [
{ "date": "2026-07-01", "buy_volume_ada": 1200, "sell_volume_ada": 800, "netflow_ada": 400 }
],
"totals": { "buy_volume_ada": 25000, "sell_volume_ada": 18000, "netflow_ada": 7000 }
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1qyour_address_here/netflow?days=30" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily buy/sell netflow for one wallet and one token (stake-keyed rollup).
Cache Duration
Path Parameter: address
Cardano stake or payment address
Path Parameter: assetId
Token Asset ID
Query Parameter: days
Calendar days, max 365 (default: 30)
Response Fields
address:stringstake_address:string | nullasset_id:stringticker:stringdays:numberseries:array of { date, buy_volume_ada, sell_volume_ada, netflow_ada, volume_ada, trade_count }totals:object with buy/sell/netflow/volume/trade_countExample Response
{
"address": "addr1…",
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"days": 30,
"series": [
{
"date": "2026-07-01",
"buy_volume_ada": 200,
"sell_volume_ada": 50,
"netflow_ada": 150,
"volume_ada": 250,
"trade_count": 3
}
],
"totals": {
"buy_volume_ada": 5000,
"sell_volume_ada": 2000,
"netflow_ada": 3000,
"volume_ada": 7000,
"trade_count": 42
}
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1qyour_address_here/token-netflow/279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b?days=30" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Precomputed trading profile for a stake: volumes, DEX mix, portfolio value, liquid ADA, and optional PnL summary. Does not include DeFi positions; use `/defi/summary` for that.
Cache Duration
Path Parameter: address
Cardano stake or payment address
Response Fields
address:stringstake_address:string | nullfound:booleantotal_trades:numberbuy_trades:numbersell_trades:numbertotal_volume_ada:numberbuy_volume_ada:numbersell_volume_ada:numberunique_tokens_traded:numberavg_trade_size_ada:numberfirst_trade_time:string | nulllast_trade_time:string | nulldex_distribution:arrayportfolio_value_ada:numberliquid_ada_ada:numberwallet_tier_id:string | nullpnl_summary:object | nullExample Response
{
"address": "addr1…",
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"found": true,
"total_trades": 1520,
"buy_trades": 890,
"sell_trades": 630,
"total_volume_ada": 890000.5,
"buy_volume_ada": 520000.0,
"sell_volume_ada": 370000.5,
"unique_tokens_traded": 48,
"avg_trade_size_ada": 585.0,
"first_trade_time": "2024-01-15T09:30:00Z",
"last_trade_time": "2026-07-26T18:22:00Z",
"dex_distribution": [
{ "platform": "Minswap", "volume_ada": 420000, "trade_count": 800 }
],
"portfolio_value_ada": 42000,
"liquid_ada_ada": 1500,
"wallet_tier_id": "whale",
"pnl_summary": null
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/addr1qyour_address_here/profile-stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Market Endpoints
Market-wide data, sentiment, and token discovery
Description
Browse and filter tokens with flexible sorting. Paginated results include fields relevant to the sort criteria, always with asset_id, ticker, current_price_ada, and platform flags.
Cache Duration
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Results per page, max 100 (default: 10)
Query Parameter: sort_by
Sort field: market_cap_ada, volume_24h_ada, volume_7d_ada, volume_30d_ada, price_change_1h, price_change_6h, price_change_24h, price_change_7d, trade_count, total_holders, created_at (default: market_cap_ada)
Query Parameter: order
Sort order: asc or desc (default: desc)
Query Parameter: verified_only
Only verified tokens (default: false)
Query Parameter: min_volume
Minimum 24h volume in ADA (default: 0)
Response Fields
page:numberlimit:numbertokens:array of token objects with asset_id, ticker, current_price_ada, is_snekfun, is_chakra, and sort-specific fieldsExample Response
{
"page": 1,
"limit": 10,
"tokens": [
{
"asset_id": "279c909f...",
"ticker": "SNEK",
"current_price_ada": 0.00012,
"market_cap_ada": 9216,
"is_snekfun": false,
"is_chakra": false
}
]
}
Fields returned depend on the sort_by parameter.
Example: sort_by=volume_24h_ada returns volume_24h_ada field.
Example: sort_by=price_change_24h returns price_change_24h field.Example Request
curl -X GET "https://api.adabubbles.net/api/v1/tokens" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Current CNT market sentiment index (0-100) with classification. Component weights: momentum 25%, volume 25%, breadth 20%, buy_pressure 15%, consistency 10%, dominance 5%.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
index:number (0-100)label:string (Extreme Fear, Fear, Slightly Fearful, Neutral, Slightly Greedy, Greed, Extreme Greed)components:object with momentum, volume, buy_pressure, breadth, consistency, dominanceupdated_at:string (ISO 8601 timestamp)Example Response
{
"index": 45,
"label": "Slightly Fearful",
"components": {
"momentum": 48,
"volume": 35,
"buy_pressure": 52,
"breadth": 42,
"consistency": 55,
"dominance": 60
},
"updated_at": "2025-11-01T12:00:00Z"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/fear-greed" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Historical Fear & Greed snapshots for charting (about hourly resolution).
Cache Duration
Query Parameter: days
Number of days of history to return, 1-365 (default: 30)
Response Fields
count:numberdays:numberhistory:array of snapshot objects with index, label, components, market_context, timestampExample Response
{
"count": 720,
"days": 30,
"history": [
{
"index": 45,
"label": "Slightly Fearful",
"components": { "momentum": 48, "volume": 35, "buy_pressure": 52, "breadth": 42, "consistency": 55, "dominance": 60 },
"market_context": { "total_volume_24h": 1234567.89, "active_tokens": 150, "total_trades_24h": 5000 },
"timestamp": "2026-03-08T12:00:00Z"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/fear-greed/history" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Largest trades by ADA volume across all tokens for a timeframe, split into highest buys and highest sells. Includes transaction details, token info, DEX, amounts, prices, trader addresses, and timestamps.
Cache Duration
Query Parameter: timeframe
Time period: 1h, 6h, 24h, 7d, 30d (default: 24h)
Query Parameter: limit
Number of trades to return per category (default: 10)
Response Fields
timeframe:stringlimit:numberhighest_buys:array of trade objects with tx_hash, asset_id, ticker, display_name, platform, token_amount, ada_amount, price_ada, user_address, block_timehighest_sells:array of trade objects with tx_hash, asset_id, ticker, display_name, platform, token_amount, ada_amount, price_ada, user_address, block_timeExample Response
{
"timeframe": "24h",
"limit": 10,
"highest_buys": [
{
"tx_hash": "abc123...",
"asset_id": "279c909f...",
"ticker": "SNEK",
"display_name": "Snek",
"platform": "minswap",
"token_amount": 50000000,
"ada_amount": 188500.0,
"price_ada": 0.00377,
"user_address": "addr1...",
"block_time": "2025-11-01T12:00:00Z"
}
],
"highest_sells": [
{
"tx_hash": "def456...",
"asset_id": "279c909f...",
"ticker": "SNEK",
"display_name": "Snek",
"platform": "minswap",
"token_amount": 45000000,
"ada_amount": 169650.0,
"price_ada": 0.00377,
"user_address": "addr1...",
"block_time": "2025-11-01T11:30:00Z"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/highest-trades" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Price data for multiple tokens in one request (max 10). Accepts a JSON array of asset IDs and returns current prices and price changes across timeframes. Does not include market cap or volume.
Cache Duration
Body Parameter: body
JSON array of asset IDs (max 10). Example: ["assetId1", "assetId2", ...]
Response Fields
[assetId]:object with current_price_ada, price_change_10m, price_change_30m, price_change_1h, price_change_4h, price_change_6h, price_change_24h, price_change_7d, price_change_30dExample Response
{
"279c909f...534e454b": {
"current_price_ada": 0.00377,
"price_change_10m": 0.05,
"price_change_30m": 0.12,
"price_change_1h": 0.19,
"price_change_4h": -0.08,
"price_change_6h": -0.18,
"price_change_24h": 14.25,
"price_change_7d": 8.5,
"price_change_30d": -12.3
}
}
Does not include market_cap_ada or volume_24h_ada.
Maximum 10 asset IDs per request.Example Request
curl -X POST "https://api.adabubbles.net/api/v1/tokens/prices" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '["asset_id_1", "asset_id_2"]'
Description
Live feed of recent trades across DEXes and tokens. Filter by DEX, timeframe, and minimum volume. Includes transaction details, token info, amounts, prices, trader addresses, and timestamps.
Cache Duration
Query Parameter: dex
Filter by DEX: minswap, sundaeswap, wingriders, muesliswap, vyfinance, splashpool, indigo, lenfi, surflending, cswap, chadswap (omit for all)
Query Parameter: timeframe
Time period: 1h, 6h, 24h, 7d, 30d (default: 24h)
Query Parameter: limit
Number of trades to return, max 100 (default: 100)
Query Parameter: min_volume
Minimum ADA volume threshold (optional)
Response Fields
dex_filter:string | nulltimeframe:stringlimit:numbermin_volume:number | nulltotal_trades:numbertrades:array of trade objects with tx_hash, asset_id, ticker, platform, token_amount, ada_amount, price_ada, is_buy, user_address, block_timeExample Response
{
"dex_filter": "minswap",
"timeframe": "24h",
"limit": 10,
"min_volume": null,
"total_trades": 10,
"trades": [
{
"tx_hash": "abc123...",
"asset_id": "279c909f...534e454b",
"ticker": "SNEK",
"platform": "minswap",
"token_amount": 1000000,
"ada_amount": 123.45,
"price_ada": 0.00012345,
"is_buy": true,
"user_address": "addr1...",
"user_address": "addr1...",
"block_time": "2025-11-01T12:00:00Z"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/dex/trades" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Search tokens by ticker, name, or policy ID. Matching tokens are sorted by market cap.
Cache Duration
Query Parameter: q
Search query (ticker, name, or policy_id). 1-100 characters.
Query Parameter: limit
Number of results to return, max 50 (default: 20)
Response Fields
query:stringcount:numbertokens:array of token objects with asset_id, ticker, display_name, current_price_ada, market_cap_ada, volume_24h_ada, total_holders, is_snekfun, is_chakraExample Response
{
"query": "SNEK",
"count": 3,
"tokens": [
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"display_name": "Snek",
"current_price_ada": 0.00377,
"market_cap_ada": 289650277.78,
"volume_24h_ada": 1062476.50,
"total_holders": 44106,
"is_snekfun": false,
"is_chakra": false
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/tokens/search" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Market overview aggregates: total tokens, volume, market cap, trade count, and active DEXes.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
total_tokens:numbertotal_volume_24h_ada:numbertotal_market_cap_ada:numbertotal_holders:numberavg_price_change_24h:numbertrades_24h:numberactive_dexes:numberupdated_at:string (ISO 8601 timestamp)Example Response
{
"total_tokens": 551,
"total_volume_24h_ada": 4650000.00,
"total_market_cap_ada": 332000000.00,
"total_holders": 285000,
"avg_price_change_24h": 2.35,
"trades_24h": 15420,
"active_dexes": 8,
"updated_at": "2025-12-01T12:00:00Z"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/market/stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Whole-market daily totals: volume, trade count, buy/sell volume, unique tokens and traders, and average trade size. One point per calendar day, oldest first.
Cache Duration
Query Parameter: days
Calendar days ending today, 1-365 (default: 30)
Response Fields
days:numberstart_date:string (YYYY-MM-DD)end_date:string (YYYY-MM-DD)count:numberseries:array of daily rows (date, total_volume_ada, transaction_count, buy_volume_ada, sell_volume_ada, unique_tokens_traded, unique_traders, avg_trade_size_ada)Example Response
{
"days": 30,
"start_date": "2026-04-10",
"end_date": "2026-05-09",
"count": 1,
"series": [
{
"date": "2026-05-09",
"total_volume_ada": 4650000.0,
"transaction_count": 15420,
"buy_volume_ada": 2400000.0,
"sell_volume_ada": 2250000.0,
"unique_tokens_traded": 412,
"unique_traders": 8520,
"avg_trade_size_ada": 301.5
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/market/daily-summary" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Trading volume breakdown by DEX: volume, trade count, and market share for each platform over the timeframe.
Cache Duration
Query Parameter: timeframe
Time period: 1h, 6h, 24h, 7d, 30d (default: 24h)
Response Fields
timeframe:stringtotal_volume_ada:numbertotal_trades:numberdex_breakdown:array of DEX objects with platform, volume_ada, trade_count, buy_volume_ada, sell_volume_ada, percentage_of_totalExample Response
{
"timeframe": "24h",
"total_volume_ada": 4650000.00,
"total_trades": 15420,
"dex_breakdown": [
{
"platform": "Minswap",
"volume_ada": 2500000.00,
"trade_count": 8500,
"buy_volume_ada": 1350000.00,
"sell_volume_ada": 1150000.00,
"percentage_of_total": 53.76
},
{
"platform": "SundaeSwap",
"volume_ada": 1200000.00,
"trade_count": 4200,
"buy_volume_ada": 650000.00,
"sell_volume_ada": 550000.00,
"percentage_of_total": 25.81
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/dex/volume" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Stake-level hot wallets leaderboard from precomputed profile stats. mode=volume ranks by lifetime total_volume_ada; mode=pnl ranks by realized_pnl_ada. Ranking follows mode (a sort query is accepted but ignored). Does not include raw address transaction history.
Cache Duration
Query Parameter: mode
volume | pnl (default volume). Controls ranking field.
Query Parameter: limit
Max rows (default 25, max 100)
Query Parameter: offset
Pagination offset
Query Parameter: min_total_volume_ada
Minimum lifetime volume filter (default 500)
Response Fields
mode:stringsort:string (total_volume_ada | realized_pnl_ada; mirrors mode)limit:numberoffset:numbertotal_count:numbergenerated_at:number (unix timestamp)wallets:array of wallet rows (stake_address, volumes, pnl, portfolio_value_ada, …)Example Response
{
"mode": "volume",
"sort": "total_volume_ada",
"limit": 25,
"offset": 0,
"total_count": 500,
"generated_at": 1722074400,
"wallets": [
{
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"display_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"total_trades": 4200,
"total_volume_ada": 5200000,
"volume_24h_ada": 125000,
"volume_7d_ada": 680000,
"volume_30d_ada": 2100000,
"realized_pnl_ada": 42000,
"unique_tokens_traded": 85,
"portfolio_value_ada": 890000,
"primary_handle": null,
"handle_image_url": null
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/market/hot-wallets?mode=volume&limit=25" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Market money-flow aggregates. Default section=summary returns totals only. Use section=series, tier, tokens, or stables for charts and leaderboards (section=all is not available). Optional wallet_tier filter.
Cache Duration
Query Parameter: timeframe
1d | 7d | 30d | 90d | 180d | 1y | all (default 7d)
Query Parameter: section
summary | series | tier | tokens | stables (default summary; all rejected)
Query Parameter: wallet_tier
all | whale | dolphin | fish | shrimp | …
Response Fields
timeframe:stringsection:stringwallet_tier:stringgenerated_at:string | nulltotal_buy_volume_ada:numbertotal_sell_volume_ada:numbertotal_net_flow_ada:numbertier_flow_basis:string (echoes timeframe)Example Response
{
"timeframe": "7d",
"section": "summary",
"wallet_tier": "all",
"generated_at": "2026-07-27T12:00:00Z",
"total_buy_volume_ada": 12500000,
"total_sell_volume_ada": 11800000,
"total_net_flow_ada": 700000,
"tier_flow_basis": "7d"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/market/money-flow?timeframe=7d§ion=summary" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Governance Endpoints
DRep leaderboards, proposal stats, treasury & vote analytics
Description
Governance hub KPIs: active and closing proposals, votes on active proposals, treasury balance vs requested, active DReps, voting power, and constitutional committee quorum.
Cache Duration
Query Parameter: current_epoch
Epoch for closing-soon windows (defaults from chain snapshot)
Response Fields
active_proposals:numbertotal_proposals:numberclosing_within_1_epoch:numberclosing_within_2_epochs:numberclosing_within_3_epochs:numbervotes_on_active:numbervotes_synced_24h:numbertreasury_requests_active:numbertreasury_balance_ada:number | nulltreasury_requested_ada:numbertreasury_remaining_if_all_pass_ada:number | nullactive_dreps:numbervoting_power_ada:numbercc_members:number | nullcc_quorum_num:number | nullcc_quorum_den:number | nullcurrent_epoch:number | nullExample Response
{
"active_proposals": 12,
"total_proposals": 48,
"closing_within_1_epoch": 2,
"closing_within_2_epochs": 4,
"closing_within_3_epochs": 5,
"votes_on_active": 1860,
"votes_synced_24h": 42,
"treasury_requests_active": 3,
"treasury_requested_ada": 2500000,
"treasury_balance_ada": 1250000000,
"treasury_remaining_if_all_pass_ada": 1247500000,
"active_dreps": 980,
"voting_power_ada": 4200000000,
"cc_members": 7,
"cc_quorum_num": 5,
"cc_quorum_den": 7,
"current_epoch": 540
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
List governance proposals sorted by proposed epoch, expiry, treasury requested, turnout, or yes-power. Optional closing_within_epochs filter. Action and motivation text are omitted; use proposal detail for those fields.
Cache Duration
Query Parameter: active_only
Only active proposals (default false)
Query Parameter: sort_by
proposed | expiry | treasury | turnout | yes_power (default: proposed)
Query Parameter: closing_within_epochs
Only active proposals expiring within N epochs
Query Parameter: limit
Max results, 1–200 (default 50)
Query Parameter: current_epoch
Epoch used for closing_within_epochs window (defaults from chain snapshot)
Response Fields
count:numberproposals:array of proposal summary objectsExample Response
{
"count": 2,
"proposals": [
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"governance_type": "treasury_withdrawals",
"title": "Fund Cardano Open Source",
"treasury_requested_ada": 1500000,
"expires_epoch": 542,
"vote_yes_power_ada": 820000000,
"vote_no_power_ada": 120000000,
"vote_abstain_power_ada": 45000000,
"vote_yes_count": 210,
"vote_no_count": 40,
"vote_abstain_count": 15,
"is_active": true
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/proposals?sort_by=treasury&active_only=true&limit=20" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Active proposals expiring within N epochs, sorted by soonest expiry.
Cache Duration
Query Parameter: within_epochs
Epochs until expiry (default 3, max 10)
Query Parameter: limit
Max results (default 50)
Response Fields
current_epoch:number | nullwithin_epochs:numbercount:numberproposals:arrayExample Response
{
"current_epoch": 540,
"within_epochs": 3,
"count": 1,
"proposals": [
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"title": "Info action: parameter change",
"expires_epoch": 541,
"is_active": true,
"treasury_requested_ada": 0
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/proposals/closing-soon?within_epochs=3&limit=20" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Full proposal detail including CIP text fields, action JSON, and vote power aggregates. Path uses tx_hash and cert_index (not `tx#idx`) so proxies cannot strip a `#` fragment. Pass include_votes=true for the full voter list, or use `/voters` for top voters.
Cache Duration
Path Parameter: txHash
64-char proposal transaction hash
Path Parameter: certIndex
Certificate index (usually 0)
Query Parameter: include_votes
Include full vote list (default false)
Response Fields
proposal_id:stringgovernance_type:string | nulltitle:string | nullabstract:string | nulltreasury_requested_ada:numbervote_yes_power_ada:numbervote_no_power_ada:numbervote_abstain_power_ada:numberis_active:booleanExample Response
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"governance_type": "treasury_withdrawals",
"title": "Fund Cardano Open Source",
"abstract": "Request treasury funds for tooling…",
"treasury_requested_ada": 1500000,
"vote_yes_power_ada": 820000000,
"vote_no_power_ada": 120000000,
"vote_abstain_power_ada": 45000000,
"is_active": true
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/proposals/48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893/0" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Ranked voters on one proposal by voting power. Filter by vote (yes|no|abstain) and role (drep|spo|constitutionalCommittee). Path uses tx_hash and cert_index; do not put `#` in the URL.
Cache Duration
Path Parameter: txHash
64-char proposal transaction hash
Path Parameter: certIndex
Certificate index (usually 0)
Query Parameter: vote
yes | no | abstain
Query Parameter: role
drep | spo | constitutionalCommittee
Query Parameter: limit
Max voters (default 25, max 100)
Response Fields
proposal_id:stringtx_hash:stringcert_index:numbervote:string | nullrole:string | nullcount:numbervoters:array of { voter_role, voter_id, vote, voting_power_ada, voting_power_lovelace, block_time, tx_hash }Example Response
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"tx_hash": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893",
"cert_index": 0,
"vote": "yes",
"role": "drep",
"count": 2,
"voters": [
{
"voter_role": "drep",
"voter_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"vote": "yes",
"voting_power_ada": 45000000,
"voting_power_lovelace": 45000000000000,
"block_time": 1719900000,
"tx_hash": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/proposals/48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893/0/voters?vote=yes&role=drep&limit=25" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Recent on-chain governance votes, enriched with proposal title and DRep display fields when available.
Cache Duration
Query Parameter: limit
Max votes (default 40, max 200)
Query Parameter: drep_only
Only DRep votes (default true)
Response Fields
count:numbervotes:array of { proposal_id, tx_hash, voter_role, voter_id, vote, voting_power_ada, voting_power_lovelace, block_time, title, governance_type, is_active, drep? }Example Response
{
"count": 1,
"votes": [
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"tx_hash": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893",
"voter_role": "drep",
"voter_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"vote": "yes",
"voting_power_ada": 1200000,
"voting_power_lovelace": 1200000000000,
"block_time": 1719900000,
"title": "Fund Cardano Open Source",
"governance_type": "treasury_withdrawals",
"is_active": true,
"drep": {
"drep_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"given_name": "Example DRep",
"voting_power_ada": 45000000,
"has_image": true,
"image_version": 1719000000
}
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/governance/votes/recent" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
DRep leaderboard with vote-mix stats. sort_by covers voting_power, delegators, votes, votes_yes, votes_no, votes_abstain, participation, and name. List fields are summary-level; use DRep detail for CIP-119 bios and homepage.
Cache Duration
Query Parameter: sort_by
voting_power | delegators | votes | votes_yes | votes_no | votes_abstain | participation | name
Query Parameter: limit
Max results (default 50, max 200)
Query Parameter: search
Filter by name / drep id / hex
Query Parameter: include_inactive
Include retired/expired (default false)
Response Fields
count:numberdreps:array of drep summary objectsExample Response
{
"count": 1,
"dreps": [
{
"drep_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"given_name": "Example DRep",
"homepage": "https://example.com",
"voting_power_ada": 45000000,
"delegators_count": 1200,
"votes_cast": 38,
"votes_yes": 30,
"votes_no": 5,
"votes_abstain": 3,
"participation_pct": 79.17,
"has_image": true,
"image_version": 1719000000
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/dreps?sort_by=voting_power&limit=25" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Full DRep profile: CIP-119 name and bios, homepage, deposit, voting power, vote mix, and has_image / image_version. Logos are available at /api/static/drep-images/{drep_id}.
Cache Duration
Path Parameter: drepId
drep1… bech32 id
Response Fields
drep_id:stringgiven_name:stringobjectives:string | nullhomepage:string | nullvoting_power_ada:numberdelegators_count:numbervotes_yes:numbervotes_no:numbervotes_abstain:numberparticipation_pct:number | nullhas_image:booleanimage_version:number | nullExample Response
{
"drep_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"given_name": "Example DRep",
"objectives": "Support open-source Cardano tooling…",
"homepage": "https://example.com",
"voting_power_ada": 45000000,
"delegators_count": 1200,
"votes_yes": 30,
"votes_no": 5,
"votes_abstain": 3,
"participation_pct": 79.17,
"has_image": true,
"image_version": 1719000000
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/dreps/drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Recent votes cast by a DRep on governance proposals.
Cache Duration
Path Parameter: drepId
drep1… bech32 id
Query Parameter: limit
Max votes (default 50, max 200)
Response Fields
drep_id:stringcount:numbervotes:arrayExample Response
{
"drep_id": "drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j",
"count": 1,
"votes": [
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"vote": "yes",
"voting_power_ada": 45000000,
"block_time": 1719900000
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/dreps/drep1ygr9tuapcanc3kpeyy4dc3vmrz9cfe5q7v9wj3x9j0ap3tswtre9j/votes" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Stake Pool Endpoints
Pool network stats, ROS/performance, retiring pools, SPO votes
Description
Network-level stake pool KPIs from the cached pool snapshot + epoch parameters. Not a full pool directory dump.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
current_epoch:number | nullactive_pools:numbertotal_live_stake_ada:numberavg_saturation:number | nulltotal_delegators:numberblocks_epoch:number | nullretiring_pools:numbernetwork_active_stake_ada:number | nulln_opt:number | nullExample Response
{
"current_epoch": 540,
"active_pools": 2850,
"total_live_stake_ada": 21000000000,
"avg_saturation": 0.72,
"total_delegators": 1250000,
"blocks_epoch": 21000,
"retiring_pools": 14,
"network_active_stake_ada": 22000000000,
"n_opt": 500
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools/stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Stake pool leaderboard with ROS and lookback change %. sort_by: live_stake, active_stake, delegators, saturation, ros, growth_30e, ticker.
Cache Duration
Query Parameter: sort_by
live_stake | active_stake | delegators | saturation | ros | growth_30e | ticker
Query Parameter: limit
Max results (default 50, max 200)
Query Parameter: search
Filter by ticker / name / pool id
Response Fields
count:numberpools:arrayExample Response
{
"count": 1,
"pools": [
{
"pool_id": "pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm",
"ticker": "AAA",
"name": "Example Pool",
"live_stake_ada": 65000000,
"saturation_pct": 85.2,
"live_delegators": 4200,
"ros_annual_pct": 3.1,
"stake_change_pct_30e": 2.4,
"has_image": true,
"homepage": "https://example-pool.io"
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools?sort_by=ros&limit=25" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Pools scheduled to retire, soonest retiring_epoch first.
Cache Duration
Query Parameter: limit
Max results (default 50)
Response Fields
count:numberpools:arrayExample Response
{
"count": 1,
"pools": [
{
"pool_id": "pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm",
"ticker": "BYE",
"retiring_epoch": 545,
"live_stake_ada": 1200000
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools/retiring" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Pool snapshot including margin, pledge, saturation, ROS, and 6/30/90-epoch stake/delegator/saturation change %. Logos via /api/static/pool-images/{pool_id}.
Cache Duration
Path Parameter: poolId
pool1… bech32 id
Response Fields
pool_id:stringticker:stringname:string | nulllive_stake_ada:numbersaturation_pct:number | nullmargin_cost:number | nullfixed_cost_ada:number | nullros_annual_pct:number | nullstake_change_pct_30e:number | nullhas_image:booleanhomepage:string | nullExample Response
{
"pool_id": "pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm",
"ticker": "AAA",
"name": "Example Pool",
"live_stake_ada": 65000000,
"saturation_pct": 85.2,
"margin_cost": 0.02,
"fixed_cost_ada": 340,
"ros_annual_pct": 3.1,
"stake_change_pct_30e": 2.4,
"has_image": true,
"homepage": "https://example-pool.io"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools/pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Per-epoch performance history: active stake, blocks, rewards, fees, saturation, ROS. Default last 36 epochs; limit=0 returns all stored history.
Cache Duration
Path Parameter: poolId
pool1… bech32 id
Query Parameter: limit
Trailing epochs (default 36; 0 = all)
Response Fields
pool_id:stringsummary:objectepochs:array of epoch pointsExample Response
{
"pool_id": "pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm",
"summary": {
"first_epoch": 210,
"last_epoch": 539,
"epoch_count": 36,
"lifetime_blocks": 4200
},
"epochs": [
{
"epoch": 539,
"active_stake_ada": 64000000,
"blocks": 42,
"rewards_ada": 52000,
"fees_ada": 1800,
"saturation_pct": 84.1,
"ros_annual_pct": 3.05
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools/pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm/performance?limit=36" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
SPO-role governance votes for this stake pool.
Cache Duration
Path Parameter: poolId
pool1… bech32 id
Query Parameter: limit
Max votes (default 50)
Response Fields
pool_id:stringcount:numbervotes:arrayExample Response
{
"pool_id": "pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm",
"count": 1,
"votes": [
{
"proposal_id": "48bab0ca71cc46f2ee421242b14f292b8c8382bda707d03ea662644bed22b893#0",
"vote": "yes",
"voting_power_ada": 65000000,
"block_time": 1719900000
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/pools/pool1gaztx97t53k47fr7282d70tje8323vvzx8pshgts30t9krw62tm/votes" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
DeFi Endpoints
Cardano DeFi TVL, protocols, and wallet positions (stake-keyed)
Description
Open / wind-down DeFi positions for a wallet. Accepts stake1…, addr1q…, or addr1v…. Matching uses stake address, payment address, and payment key hash. Positions are primarily stored by stake.
Cache Duration
Path Parameter: address
Cardano stake or payment address (bech32)
Query Parameter: category
liquidity|order|lending|staking|farming|cdp|perps|leverage|prediction (omit for all)
Response Fields
address:stringstake_address:string | nullcategory:string | nullposition_count:numbertotal_value_ada:numbercounts:object by categorytotals:object by category (ADA)positions:array of slim position cardsas_of:string | nullgenerated_at:string | nullnote:stringExample Response
{
"address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"category": null,
"position_count": 3,
"total_value_ada": 12500.25,
"counts": { "lending": 1, "liquidity": 2 },
"totals": { "lending": 4000.0, "liquidity": 8500.25 },
"positions": [
{
"platform": "Liqwid Finance",
"category": "lending",
"title": "qADA",
"value_ada": 4000.0,
"supply_apy": 3.2,
"status": "open"
}
],
"as_of": "2026-07-27T06:00:00Z",
"generated_at": "2026-07-27T06:01:12Z",
"note": "Owners matched by stake address, payment address, and/or payment key hash. DeFi rows are primarily stake-keyed."
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja/defi-positions" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Category counts/values and per-protocol breakdown for a wallet. Does not include the full position array; use `/defi-positions` for position cards.
Cache Duration
Path Parameter: address
Cardano stake or payment address (bech32)
Response Fields
address:stringstake_address:string | nullposition_count:numbertotal_value_ada:numbercounts:objecttotals:objectby_platform:array of { platform, position_count, value_ada }as_of:string | nullgenerated_at:string | nullnote:stringExample Response
{
"address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"stake_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
"position_count": 3,
"total_value_ada": 12500.25,
"counts": { "lending": 1, "liquidity": 2 },
"totals": { "lending": 4000.0, "liquidity": 8500.25 },
"by_platform": [
{ "platform": "Minswap", "position_count": 2, "value_ada": 8500.25 }
],
"as_of": "2026-07-27T06:00:00Z",
"generated_at": "2026-07-27T06:01:12Z",
"note": "Owners matched by stake address, payment address, and/or payment key hash. DeFi rows are primarily stake-keyed."
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/address/stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja/defi/summary" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Cardano DeFi headline stats from the system metrics snapshot. `total_value_ada` is the broad cross-category position-value rollup, while `total_tvl_ada` is the stricter canonical TVL rollup for protocol capital. Use `/defi/protocols` for per-protocol breakdown.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
total_value_ada:numbertotal_tvl_ada:numbertotal_positions:numbertotal_wallets:numbertotal_debt_ada:numbertotal_collateral_ada:numberprotocol_count:numberby_category:objectby_category_tvl:objecttop_protocol:string | nulltop_protocol_value_ada:number | nulltop_protocol_tvl_ada:number | nullupdated_at:string | nullExample Response
{
"total_value_ada": 42000000,
"total_tvl_ada": 31000000,
"total_positions": 84000,
"total_wallets": 12000,
"total_debt_ada": 8000000,
"total_collateral_ada": 15000000,
"protocol_count": 18,
"by_category": {
"lending": 12000000,
"liquidity": 20000000,
"staking": 5000000,
"cdp": 3000000,
"farming": 2000000
},
"by_category_tvl": {
"lending": 11000000,
"liquidity": 20000000,
"staking": 1000000,
"cdp": 3000000,
"farming": 2000000
},
"top_protocol": "Minswap",
"top_protocol_value_ada": 9000000,
"top_protocol_tvl_ada": 8500000,
"updated_at": "2026-07-27T06:00:00Z"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/defi/stats" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
DeFi tracked value broken down by protocol (platform) and category. `value_ada` is the broad position-value aggregate; `canonical_tvl_ada` is the stricter protocol-capital TVL measure used for TVL-facing surfaces.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
as_of:string | nullgenerated_at:string | nullprotocol_count:numberprotocols:array of { platform, category, position_count, value_ada, canonical_tvl_ada, collateral_ada, debt_ada }Example Response
{
"as_of": "2026-07-27T06:00:00Z",
"generated_at": "2026-07-27T06:01:12Z",
"protocol_count": 40,
"protocols": [
{
"platform": "Minswap",
"category": "liquidity",
"position_count": 12000,
"value_ada": 9000000,
"canonical_tvl_ada": 9000000,
"collateral_ada": 0,
"debt_ada": 0
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/defi/protocols" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Aggregated KPIs per DeFi category (liquidity, lending, staking, farming, cdp, perps, …). Category rows include broad `value_ada` plus `canonical_tvl_ada` where canonical TVL applies.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
as_of:string | nullgenerated_at:string | nullsummary:object with per-category position_count, wallet_count, value_ada, canonical_tvl_ada, …Example Response
{
"as_of": "2026-07-27T06:00:00Z",
"generated_at": "2026-07-27T06:01:12Z",
"summary": {
"total_value_ada": 42000000,
"categories": {
"liquidity": { "position_count": 50000, "wallet_count": 8000, "value_ada": 20000000 }
}
}
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/defi/categories" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily total + per-platform DeFi TVL history (ADA). Older dates remain the historical DeFiLlama-backed series; recent native days use our stricter canonical TVL rollup for protocol capital instead of the broader DeFi value aggregate. Public API caps timeframe at 180d. Complements snapshot endpoints /defi/stats and /defi/protocols.
Cache Duration
Query Parameter: timeframe
7d | 30d | 90d | 180d (default 30d)
Response Fields
timeframe:stringseries:array of { date, total_tvl_ada, by_platform }platforms:array of stringlatest_tvl_ada:numberplatform_count:numbercutover_date:stringExample Response
{
"timeframe": "30d",
"cutover_date": "2026-07-27",
"platforms": ["Liqwid Finance", "Minswap"],
"latest_tvl_ada": 420000000,
"platform_count": 2,
"series": [
{
"date": "2026-07-01",
"total_tvl_ada": 420000000,
"by_platform": { "Liqwid Finance": 180000000, "Minswap": 90000000 }
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/defi/tvl-history?timeframe=30d" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Daily estimated DEX/DeFi fees and revenue history (ADA). Public API caps timeframe at 180d. Series points may also include total_volume_ada and per-platform fee/revenue maps.
Cache Duration
Query Parameter: timeframe
7d | 30d | 90d | 180d (default 30d)
Response Fields
timeframe:stringseries:array of { date, total_fees_ada, total_revenue_ada, total_volume_ada?, by_platform?, by_platform_revenue? }platforms:array of stringlatest_fees_ada:numberlatest_revenue_ada:numberExample Response
{
"timeframe": "30d",
"platforms": ["Minswap", "WingRiders"],
"latest_fees_ada": 12500,
"latest_revenue_ada": 4200,
"series": [
{
"date": "2026-07-01",
"total_fees_ada": 11000,
"total_revenue_ada": 3800,
"total_volume_ada": 4200000,
"by_platform": { "Minswap": 6000 },
"by_platform_revenue": { "Minswap": 2100 }
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/defi/fees-history?timeframe=30d" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Platform Endpoints
Platform-specific token lists (snek.fun & Chakra AI)
Description
Paginated list of tokens launched on snek.fun. Sort by market cap, volume, price change, holder count, or creation date. Includes platform flags and token metrics.
Cache Duration
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Results per page, max 100 (default: 10)
Query Parameter: sort_by
Sort field: market_cap_ada, liquidity_ada, volume_24h_ada, price_change_24h, total_holders, created_at (default: market_cap_ada)
Query Parameter: order
Sort order: asc or desc (default: desc)
Response Fields
page:numberlimit:numbertotal_tokens:numbertokens:array of { asset_id, ticker, display_name, is_snekfun, is_chakra, plus the chosen sort_by field }Example Response
{
"total_tokens": 127,
"page": 1,
"limit": 10,
"tokens": [
{
"asset_id": "279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b",
"ticker": "SNEK",
"display_name": "Snek",
"is_snekfun": true,
"is_chakra": false,
"market_cap_ada": 289536000.0
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/platform/snek-fun-tokens" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Paginated list of tokens launched on Chakra AI. Sort by market cap, volume, price change, holder count, or creation date. Includes platform flags and token metrics.
Cache Duration
Query Parameter: page
Page number (default: 1)
Query Parameter: limit
Results per page, max 100 (default: 10)
Query Parameter: sort_by
Sort field: market_cap_ada, liquidity_ada, volume_24h_ada, price_change_24h, total_holders, created_at (default: market_cap_ada)
Query Parameter: order
Sort order: asc or desc (default: desc)
Response Fields
page:numberlimit:numbertotal_tokens:numbertokens:array of { asset_id, ticker, display_name, is_snekfun, is_chakra, plus the chosen sort_by field }Example Response
{
"total_tokens": 84,
"page": 1,
"limit": 10,
"tokens": [
{
"asset_id": "abc123def456…",
"ticker": "CHAKRA",
"display_name": "Chakra AI Token",
"is_snekfun": false,
"is_chakra": true,
"volume_24h_ada": 8521.43
}
]
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/platform/chakra-tokens" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Description
Market dominance for snek.fun and Chakra AI vs the total CNT market: token count, volume, market cap, holder count, and dominance percentages.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
total_market:object with token_count, volume_24h_ada, market_cap_adasnekfun:object with token_count, volume_24h_ada, market_cap_ada, total_holders, volume_dominance_percent, market_cap_dominance_percent, token_dominance_percentchakra:object with token_count, volume_24h_ada, market_cap_ada, total_holders, volume_dominance_percent, market_cap_dominance_percent, token_dominance_percentupdated_at:string (ISO 8601 timestamp)Example Response
{
"total_market": {
"token_count": 551,
"volume_24h_ada": 4650000.00,
"market_cap_ada": 33200000.00
},
"snekfun": {
"token_count": 127,
"volume_24h_ada": 2500000.00,
"market_cap_ada": 15000000.00,
"total_holders": 28500,
"volume_dominance_percent": 53.76,
"market_cap_dominance_percent": 45.18,
"token_dominance_percent": 23.05
},
"chakra": {
"token_count": 84,
"volume_24h_ada": 1200000.00,
"market_cap_ada": 8500000.00,
"total_holders": 12400,
"volume_dominance_percent": 25.81,
"market_cap_dominance_percent": 25.60,
"token_dominance_percent": 15.25
},
"updated_at": "2025-12-01T12:00:00Z"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/platform/dominance" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
System Endpoints
Health checks and system status
Description
Health check for API and database availability. Returns status, timestamp, and version.
Cache Duration
No Parameters Required
This endpoint does not require path or query parameters.
Response Fields
status:stringdatabase:stringtimestamp:string (ISO 8601 timestamp)version:stringExample Response
{
"status": "healthy",
"database": "healthy",
"timestamp": "2025-11-01T12:00:00Z",
"version": "1.0.0"
}Example Request
curl -X GET "https://api.adabubbles.net/api/v1/health" \ -H "X-API-Key: wpup_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"