Loading...
Loading...
Compare original and translation side by side
https://api.hydric.org/v1/openapi.json./examples/https://api.hydric.org/v1/openapi.json./examples/| Resource | URL |
|---|---|
| API Base URL | |
| OpenAPI Spec | |
| API Reference | |
| Docs MCP Server | |
Authorization| 资源 | URL |
|---|---|
| API基础URL | |
| OpenAPI规范 | |
| API参考文档 | |
| Docs MCP服务器 | |
AuthorizationmUSDMUSD0x0000000000000000000000000000000000000000mUSDMUSD0x0000000000000000000000000000000000000000{ "statusCode": 200, "timestamp": "...", "path": "/v1/...", "traceId": "...", "data": { ... } }{ "statusCode": 400, "timestamp": "...", "path": "/v1/...", "traceId": "...", "error": { "code": "VALIDATION_ERROR", "title": "...", "message": "...", "details": "...", "metadata": { ... } } }{ "statusCode": 200, "timestamp": "...", "path": "/v1/...", "traceId": "...", "data": { ... } }{ "statusCode": 400, "timestamp": "...", "path": "/v1/...", "traceId": "...", "error": { "code": "VALIDATION_ERROR", "title": "...", "message": "...", "details": "...", "metadata": { ... } } }metadatahttps://api.hydric.org/v1/openapi.jsonPooltypemetadatahttps://api.hydric.org/v1/openapi.jsonPooltypeconfig.cursornextCursornullnextCursorconfig.cursororderByconfig.cursornextCursornullnextCursorconfig.cursororderByPOST /v1/tokens/search{ "search": "USDC" }POST /v1/pools/searchtokensAconfig: { orderBy: { field: 'yield', direction: 'desc', timeframe: '24h' } }filters: { minimumTotalValueLockedUsd: 50000 }POST /v1/tokens/search{ "search": "USDC" }POST /v1/pools/searchtokensAconfig: { orderBy: { field: 'yield', direction: 'desc', timeframe: '24h' } }filters: { minimumTotalValueLockedUsd: 50000 }POST /v1/tokens/{chainId}/search{ "search": "USDC" }POST /v1/pools/searchconfig: { orderBy: { field: 'yield', direction: 'desc', timeframe: '24h' } }POST /v1/tokens/{chainId}/search{ "search": "USDC" }POST /v1/pools/searchconfig: { orderBy: { field: 'yield', direction: 'desc', timeframe: '24h' } }POST /v1/tokensconfig: { orderBy: { field: 'tvl', direction: 'desc' } }filters: { chainIds: [1, 8453] }POST /v1/tokensconfig: { orderBy: { field: 'tvl', direction: 'desc' } }filters: { chainIds: [1, 8453] }GET /v1/tokens/basketsGET /v1/tokens/baskets/{basketId}usd-stablecoinsaddressesusd-stablecoinseth-pegged-tokensbtc-pegged-tokenseur-stablecoinsxau-stablecoinsmonad-pegged-tokenshype-pegged-tokensGET /v1/tokens/basketsGET /v1/tokens/baskets/{basketId}usd-stablecoinsaddressesusd-stablecoinseth-pegged-tokensbtc-pegged-tokenseur-stablecoinsxau-stablecoinsmonad-pegged-tokenshype-pegged-tokensGET /v1/tokens/prices/{chainId}/{tokenAddress}/usdGET /v1/tokens/prices/{chainId}/{tokenAddress}/usdGET /v1/pools/{chainId}/{poolAddress}poolAddressGET /v1/pools/{chainId}/{poolAddress}poolAddress/v1/pools/search/v1/pools/searchprotocolspoolTypes{
"filters": {
"protocols": ["uniswap-v3", "uniswap-v4"],
"poolTypes": ["V3", "V4"]
}
}[!CAUTION] > If your integration uses thefield, you MUST use allowlists.metadataWhile hydric normalizes top-level pool data, thefield contains protocol/architecture-specific structures (hooks, plugins, pool math addresses). If your logic depends onmetadata, for example, to enable pool deposits or swaps, you must explicitly setmetadataandprotocols.poolTypesWhy? When hydric adds a new protocol or pool type, it may introduce novelstructures. Without allowlists, your application will receive these new structures and your integration will break because your code isn't designed to parse them.metadata
protocolspoolTypes{
"filters": {
"protocols": ["uniswap-v3", "uniswap-v4"],
"poolTypes": ["V3", "V4"]
}
}[!CAUTION] > 如果您的集成使用了字段,必须使用白名单过滤。metadata虽然hydric会标准化流动性池的顶层数据,但字段包含协议/架构专属的结构(钩子、插件、流动性池数学地址)。如果您的逻辑依赖metadata(例如用于支持流动性池存款或兑换),则必须显式设置metadata和protocols。poolTypes原因: 当hydric添加新的协议或流动性池类型时,可能会引入新的结构。如果不使用白名单,您的应用会收到这些新结构,而您的代码无法解析,导致集成失败。metadata
blockedProtocolsblockedPoolTypes{
"filters": {
"blockedProtocols": ["sushiswap-v3"],
"blockedPoolTypes": ["ALGEBRA"]
}
}metadatablockedProtocolsblockedPoolTypes{
"filters": {
"blockedProtocols": ["sushiswap-v3"],
"blockedPoolTypes": ["ALGEBRA"]
}
}metadatafilters.chainIdstokensAtokensBfilters.chainIdstokensAtokensBaddresschainIdtokensAtokensBaddresschainIdtokensAtokensBBlockchainAddress[]BlockchainAddress[] "tokensA": [
{ "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" }
] "tokensA": [
{ "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" }
]protocolsblockedProtocolspoolTypesblockedPoolTypesprotocolsblockedProtocolspoolTypesblockedPoolTypesV3V4ALGEBRASLIPSTREAMV3V4ALGEBRASLIPSTREAMGET /v1/protocolsuniswap-v3algebra-integralGET /v1/protocolsuniswap-v3algebra-integralmetadatatype| Type | Key Metadata Fields |
|---|---|
| |
| V3 + |
| V3 + |
| Same as V3 |
metadata.hook{ address: "0x..." }nullmetadata.plugin{ address: "0x...", config: 195 }nullmetadatatype| 类型 | 关键元数据字段 |
|---|---|
| |
| V3字段 + |
| V3字段 + |
| 与V3相同 |
metadata.hook{ address: "0x..." }nullmetadata.plugin{ address: "0x...", config: 195 }null| Code | HTTP | Meaning |
|---|---|---|
| 401 | No Authorization header provided |
| 401 | Token format is invalid |
| 401 | API key doesn't exist |
| 403 | Key has expired |
| 403 | Key is disabled |
| 代码 | HTTP状态码 | 含义 |
|---|---|---|
| 401 | 未提供Authorization头部 |
| 401 | Token格式无效 |
| 401 | API密钥不存在 |
| 403 | 密钥已过期 |
| 403 | 密钥已被禁用 |
| Code | Meaning |
|---|---|
| Request body validation failed |
| Chain ID not supported |
| Pool address format invalid |
| Address/chainId pair malformed |
| Cursor expired or malformed |
| Protocol ID not recognized |
| Basket ID not recognized |
| 代码 | 含义 |
|---|---|
| 请求体验证失败 |
| 链ID不被支持 |
| 流动性池地址格式无效 |
| 地址/chainId对格式错误 |
| 游标已过期或格式错误 |
| 协议ID不被识别 |
| 篮子ID不被识别 |
| Code | Meaning |
|---|---|
| Pool doesn't exist on that chain |
| Token not indexed on that chain |
| Basket has no assets on that chain |
| Endpoint doesn't exist |
| 代码 | 含义 |
|---|---|
| 该链上不存在该流动性池 |
| 该链上未索引该代币 |
| 该链上该篮子无资产 |
| 端点不存在 |
./examples/search-pools.tssearch_pools.pycurl_examples.sh./examples/search-pools.tssearch_pools.pycurl_examples.shGET /v1/protocolsprotocol.idGET /v1/protocolsprotocol.iderrorcodemetadatadetailsmessagemetadataVALIDATION_ERRORopenapi.jsonmetadataSKILL.mdopenapi.jsonerrorcodemetadatadetailsmessagemetadataVALIDATION_ERRORopenapi.jsonmetadataSKILL.mdopenapi.jsonopenapi.jsoncomponents/schemas?metadatatypetypeopenapi.jsoncomponents/schemas?metadatatypetypeaddressesaddressesaddresses[]addresses[]tokensaddresses[]addresses[]tokenschainIdchainId