{"openapi":"3.1.0","info":{"title":"dextrade_registry","description":"","license":{"name":""},"version":"0.1.0"},"paths":{"/api/gas/estimate":{"get":{"tags":["gas"],"operationId":"estimate_gas_handler","parameters":[{"name":"network","in":"query","required":true,"schema":{"type":"string"}},{"name":"userAddress","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"tokenAddress","in":"query","required":false,"schema":{"type":["string","null"]}}],"responses":{"200":{"description":"Estimate gas successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateGasResponse"}}}},"500":{"description":"Internal server error"}}}},"/api/supported-dexes/dex":{"get":{"tags":["supported-dexes"],"operationId":"get_dex_platforms","responses":{"200":{"description":"List of supported DEX platforms with their metadata"}}}},"/api/supported-dexes/launchpad":{"get":{"tags":["supported-dexes"],"operationId":"get_launchpad_platforms","responses":{"200":{"description":"List of supported launchpad platforms with their metadata"}}}},"/api/tokens/new":{"get":{"tags":["tokens"],"summary":"Get recently added tokens","description":"Retrieve a list of recently added tokens based on creation time.","operationId":"get_new_tokens","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"networks","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}}},{"name":"platforms","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EDex"}}},{"name":"audits","in":"query","required":false,"schema":{"type":["array","null"],"items":{"type":"string"}}},{"name":"openTradingFrom","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"liquidityMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"liquidityMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"txnsMin","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"txnsMax","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List of recently added tokens retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}}}}},"500":{"description":"Internal server error"}}}},"/api/tokens/search":{"get":{"tags":["tokens"],"summary":"Search tokens","description":"Search for tokens by name, symbol, or address. Results are sorted by liquidity USD in descending order.","operationId":"search_tokens","parameters":[{"name":"search","in":"query","required":true,"schema":{"type":"string"}},{"name":"networks","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}}}],"responses":{"200":{"description":"List of tokens matching the search query","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}}}}},"500":{"description":"Internal server error"}}}},"/api/tokens/{address_or_slug}":{"get":{"tags":["tokens"],"summary":"Get token by address or slug","description":"Retrieve a single token by its address or slug identifier.","operationId":"get_token","parameters":[{"name":"address_or_slug","in":"path","description":"Token address or slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Token retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponseDto"}}}},"404":{"description":"Token not found"}}}},"/api/trenches/graduated":{"get":{"tags":["trenches"],"summary":"Get graduated meme zone tokens","description":"Retrieve a list of tokens in the Bonded status.","operationId":"get_graduated","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"networks","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}}},{"name":"platforms","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EDex"}}},{"name":"audits","in":"query","required":false,"schema":{"type":["array","null"],"items":{"type":"string"}}},{"name":"openTradingFrom","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"liquidityMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"liquidityMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"txnsMin","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"txnsMax","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List of tokens retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}}}}},"500":{"description":"Internal server error"}}}},"/api/trenches/graduating":{"get":{"tags":["trenches"],"summary":"Get graduating meme zone tokens","description":"Retrieve a list of tokens in the Bonding status.","operationId":"get_graduating","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"networks","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}}},{"name":"platforms","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EDex"}}},{"name":"audits","in":"query","required":false,"schema":{"type":["array","null"],"items":{"type":"string"}}},{"name":"openTradingFrom","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"liquidityMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"liquidityMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"txnsMin","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"txnsMax","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List of tokens retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}}}}},"500":{"description":"Internal server error"}}}},"/api/trenches/new-created":{"get":{"tags":["trenches"],"summary":"Get newly created meme zone tokens","description":"Retrieve a list of tokens in the Prebond status.","operationId":"get_new_created","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int32","minimum":0}},{"name":"networks","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}}},{"name":"platforms","in":"query","required":false,"schema":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EDex"}}},{"name":"audits","in":"query","required":false,"schema":{"type":["array","null"],"items":{"type":"string"}}},{"name":"openTradingFrom","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64"}},{"name":"liquidityMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"liquidityMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"volumeMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMin","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"marketCapMax","in":"query","required":false,"schema":{"type":["number","null"],"format":"double"}},{"name":"txnsMin","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}},{"name":"txnsMax","in":"query","required":false,"schema":{"type":["integer","null"],"format":"int64","minimum":0}}],"responses":{"200":{"description":"List of tokens retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}}}}},"500":{"description":"Internal server error"}}}},"/health":{"get":{"tags":["health"],"operationId":"health_check","responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}}},"components":{"schemas":{"DexMetadata":{"type":"object","required":["dex","is_active","is_meme_dex","name","supported_networks","factory_address"],"properties":{"bonding_dex_name":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/EDex"}]},"dex":{"$ref":"#/components/schemas/EDex"},"factory_address":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string","enum":["sui","hyperevm","somnia","plasma","monad","base","bsc","solana"]}},"is_active":{"type":"boolean"},"is_meme_dex":{"type":"boolean"},"logo_url":{"type":["string","null"]},"name":{"type":"string"},"supported_networks":{"type":"array","items":{"$ref":"#/components/schemas/ENetwork"}},"version":{"type":["string","null"]},"website":{"type":["string","null"]}}},"EDex":{"type":"string","enum":["cetus","turbosfinance","bluemove","flowx","flowxv3","movepump","hopfun","turbosfun","sevenkfun","bluefin","suirewards","suiai","moonbags","steamm","blastfun","printmeme","hyperswapv2","hyperswapv3","somnexv2","somnexv3","dyorfun","dyorv2","dyorv3","oku","nadfun","uniswapv2","uniswapv3","uniswapv4","capricorn","pancakeswapv2","pancakeswapv3","fourmeme","raydiumamm","raydiumclmm","raydiumcpmm","pumpfun","pumpamm"]},"ENetwork":{"type":"string","enum":["sui","hyperevm","somnia","plasma","monad","base","bsc","solana"]},"EstimateGasResponse":{"type":"object","required":["gasFee","gasFeeUsd"],"properties":{"gasFee":{"type":"string"},"gasFeeUsd":{"type":"string"}}},"GetTokenQueryDto":{"type":"object","properties":{"audits":{"type":["array","null"],"items":{"type":"string"}},"liquidityMax":{"type":["number","null"],"format":"double"},"liquidityMin":{"type":["number","null"],"format":"double"},"marketCapMax":{"type":["number","null"],"format":"double"},"marketCapMin":{"type":["number","null"],"format":"double"},"networks":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ENetwork"}},"openTradingFrom":{"type":["integer","null"],"format":"int64"},"platforms":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EDex"}},"txnsMax":{"type":["integer","null"],"format":"int64","minimum":0},"txnsMin":{"type":["integer","null"],"format":"int64","minimum":0},"volumeMax":{"type":["number","null"],"format":"double"},"volumeMin":{"type":["number","null"],"format":"double"}}},"HealthResponse":{"type":"object","required":["status","message"],"properties":{"message":{"type":"string"},"status":{"type":"string"}}},"PaginationQuery":{"type":"object","properties":{"limit":{"type":["integer","null"],"format":"int32","minimum":0},"page":{"type":["integer","null"],"format":"int32","minimum":0}}},"SupportedDexesDto":{"type":"object","required":["dexes"],"properties":{"dexes":{"type":"array","items":{"$ref":"#/components/schemas/DexMetadata"}}}},"TimeStatsDataDto":{"type":"object","required":["fiveMins","oneHour","sixHours","oneDay"],"properties":{"fiveMins":{"type":"string"},"oneDay":{"type":"string"},"oneHour":{"type":"string"},"sixHours":{"type":"string"}}},"TimeStatsDto":{"type":"object","required":["priceChange","priceUsdChange","buyVolumeQuote","sellVolumeQuote","totalVolumeQuote","buyVolumeUsd","sellVolumeUsd","totalVolumeUsd","buyTxn","sellTxn","totalTxn"],"properties":{"buyTxn":{"$ref":"#/components/schemas/TimeStatsDataDto"},"buyVolumeQuote":{"$ref":"#/components/schemas/TimeStatsDataDto"},"buyVolumeUsd":{"$ref":"#/components/schemas/TimeStatsDataDto"},"priceChange":{"$ref":"#/components/schemas/TimeStatsDataDto"},"priceUsdChange":{"$ref":"#/components/schemas/TimeStatsDataDto"},"sellTxn":{"$ref":"#/components/schemas/TimeStatsDataDto"},"sellVolumeQuote":{"$ref":"#/components/schemas/TimeStatsDataDto"},"sellVolumeUsd":{"$ref":"#/components/schemas/TimeStatsDataDto"},"totalTxn":{"$ref":"#/components/schemas/TimeStatsDataDto"},"totalVolumeQuote":{"$ref":"#/components/schemas/TimeStatsDataDto"},"totalVolumeUsd":{"$ref":"#/components/schemas/TimeStatsDataDto"}}},"TokenAuditDto":{"type":"object","properties":{"freezeAuthority":{"type":["boolean","null"]},"mintAuthority":{"type":["boolean","null"]},"upgradeAuthority":{"type":["boolean","null"]}}},"TokenBondingCurveDto":{"type":"object","properties":{"bondingDex":{"type":["string","null"]},"completedAt":{"type":["integer","null"],"format":"int64"},"progress":{"type":["number","null"],"format":"double"},"status":{"type":["string","null"]}}},"TokenDeploymentDto":{"type":"object","properties":{"deployerAddress":{"type":["string","null"]},"devBalance":{"type":["string","null"]},"devBalancePercent":{"type":["number","null"],"format":"double"},"devBalanceUpdatedAt":{"type":["integer","null"],"format":"int64"},"timestampMs":{"type":["integer","null"],"format":"int64"},"txHash":{"type":["string","null"]}}},"TokenHoldersDto":{"type":"object","properties":{"count":{"type":["integer","null"],"format":"int64","minimum":0},"top10HolderPercent":{"type":["number","null"],"format":"double"}}},"TokenLiquidityDto":{"type":"object","properties":{"scanAt":{"type":["integer","null"],"format":"int64"},"total":{"type":["string","null"]},"totalUsd":{"type":["string","null"]}}},"TokenMetadataDto":{"type":"object","required":["name","symbol","decimals","totalSupply"],"properties":{"amountBurned":{"type":["string","null"]},"amountLocked":{"type":["string","null"]},"circulatingSupply":{"type":["string","null"]},"decimals":{"type":"integer","format":"int32","minimum":0},"description":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"name":{"type":"string"},"symbol":{"type":"string"},"tax":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenTaxDto"}]},"totalSupply":{"type":"string"}}},"TokenPerformanceDto":{"type":"object","required":["price","priceUsd","volumeBase","volumeQuote","volumeUsd","marketCapUsd","marketCapNative","totalTxns","buyTxns","sellTxns","lastTimestampMs"],"properties":{"buyTxns":{"type":"integer","format":"int32","minimum":0},"lastTimestampMs":{"type":"integer","format":"int64"},"marketCapNative":{"type":"string"},"marketCapUsd":{"type":"string"},"price":{"type":"string"},"priceUsd":{"type":"string"},"sellTxns":{"type":"integer","format":"int32","minimum":0},"stats":{"$ref":"#/components/schemas/TimeStatsDto"},"totalTxns":{"type":"integer","format":"int32","minimum":0},"volumeBase":{"type":"string"},"volumeQuote":{"type":"string"},"volumeUsd":{"type":"string"}}},"TokenResponseDto":{"type":"object","required":["network","address","slug","metadata","isDexscreenerVerified"],"properties":{"address":{"type":"string"},"audit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenAuditDto"}]},"bannerUrl":{"type":"string"},"bondingCurve":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenBondingCurveDto"}]},"boostedUntilMs":{"type":["integer","null"],"format":"int64"},"createdAt":{"type":["string","null"]},"deployment":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenDeploymentDto"}]},"holders":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenHoldersDto"}]},"isDexscreenerVerified":{"type":"boolean"},"launchedBy":{"type":["string","null"]},"liquidity":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenLiquidityDto"}]},"logoUrl":{"type":"string"},"metadata":{"$ref":"#/components/schemas/TokenMetadataDto"},"network":{"type":"string"},"openTradingAt":{"type":["integer","null"],"format":"int64"},"performance":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenPerformanceDto"}]},"rank":{"type":["integer","null"],"format":"int64","minimum":0},"slug":{"type":"string"},"socials":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/TokenSocialsDto"}]},"updatedAt":{"type":["string","null"]}}},"TokenSocialsDto":{"type":"object","properties":{"links":{"type":["object","null"],"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"scanAt":{"type":["integer","null"],"format":"int64"}}},"TokenTaxDto":{"type":"object","properties":{"buyTaxPercent":{"type":["number","null"],"format":"double"},"sellTaxPercent":{"type":["number","null"],"format":"double"}}}}},"tags":[{"name":"health","description":"Health check endpoints"},{"name":"tokens","description":"Token management endpoints"},{"name":"trenches","description":"Meme zone endpoints"},{"name":"gas","description":"Gas estimation endpoints"}]}