总览
市场 API 是任何交换集成的起点。在创建交换订单之前,你需要的信息都由它们提供:- 列出资产 —— 发现做市方支持的全部资产(资产 ID、ticker、精度、各层的交易限额)。
- 列出交易对 —— 查看哪些交易对处于启用状态,以及它们支持哪些路由。
- 请求报价 —— 为指定数量获取锁定价格;返回的
rfq_id用于创建订单。
https://api.signet.kaleidoswap.com/api/v1(Signet)
列出资产
接口端点
GET /api/v1/market/assets
说明
列出做市方支持的资产,支持可选的过滤条件和分页。该接口端点可安全轮询并缓存。查询参数
所有过滤条件按 AND 组合,且均为可选。响应结构
assets:受支持资产的数组。ticker:资产的简称或符号(例如USDT)。asset_id:资产的唯一标识符。name:资产全称(例如Tether USD)。precision:资产的小数精度。protocol_ids:协议名称到该资产在对应协议上的标识符的映射。media:关于该资产的附加媒体或元数据(可选)。issued_supply:该资产的总发行量。timestamp:资产元数据的时间戳。endpoints:各层交易限额的数组 —— 每一项包含layer、min_amount、max_amount(以最小单位计)和is_active。is_active:布尔值,表示该资产当前是否启用。added_at:该资产被添加的时间戳。supported_layers:该资产可结算的层列表(例如["BTC_LN", "BTC_L1"])。
network:表明该响应对应主网、signet 还是 regtest。total:匹配资产的总数(不只是当前页)。limit/offset:请求中分页参数的回显。timestamp:生成该响应时的服务端时间戳。
响应示例
列出交易对
接口端点
GET /api/v1/market/pairs
说明
获取交换操作支持的交易对列表,支持过滤条件和分页。该接口端点可安全轮询并缓存。查询参数
所有参数均为可选。用于指定单个交易对的标识方式彼此互斥。响应结构
pairs:受支持交易对的数组。id:该交易对的唯一标识符(UUID)。base/quote:完整的资产对象(ticker、asset_id、name、precision、protocol_ids、media、issued_supply、endpoints)。各层的最小/最大交易限额位于每个资产的endpoints数组中。price:该交易对的指示性价格(字符串,可能为null)。routes:受支持的执行路由,每条包含from_layer和to_layer。is_active:布尔值,表示该交易对当前是否启用。ticker:交易对 ticker(例如BTC/USDT)。base_asset/base_asset_id:基础资产的 ticker 和唯一标识符。quote_asset/quote_asset_id:报价资产的 ticker 和唯一标识符。
total:匹配交易对的总数(不只是当前页)。limit/offset:请求中分页参数的回显。timestamp:生成该响应时的服务端时间戳。
响应示例
获取交易对路由
接口端点
POST /api/v1/market/pairs/routes
说明
返回指定交易对支持的执行路由。请求体中必须且只能提供一种标识方式:pair_id、from_asset_id + quote_asset_id、pair_ticker,或 base_ticker + quote_ticker。
请求示例
响应示例
404 错误。
发现路由
接口端点
POST /api/v1/market/routes
说明
发现资产之间的直连路由和多跳路由。该响应仅供参考,不会预留流动性。请求体
响应示例
获取路由可达性矩阵
接口端点
GET /api/v1/market/routes/matrix
说明
返回一个矩阵,展示哪些资产之间可以互相到达,以及每种组合的最小跳数。可安全轮询并缓存。响应示例
为交易对请求报价
接口端点
POST /api/v1/market/quote
说明
为两个资产腿之间的路由请求一份由 RFQ 支撑的报价。响应中包含该报价的详细信息,包括价格、费用和过期时间。请求结构
请求体包含两个嵌套的腿对象 —— 没有pair_id:
from_asset:源腿的规格。asset_id:资产标识符(例如BTC或某个 RGB 合约 ID)。layer:结算层(例如BTC_LN、RGB_LN、BTC_L1、RGB_L1)。amount(可选):以该资产最小单位表示的数量。
to_asset:目标腿的规格 —— 字段与from_asset相同。
from_asset.amount 和 to_asset.amount 必须且只能提供其中一个:正向报价设置 from_asset.amount,反向报价设置 to_asset.amount。
请求示例
响应结构
rfq_id:该报价请求的唯一标识符。from_asset/to_asset:完整的腿规格,各自包含asset_id、name、ticker、layer、amount(最小单位)和precision。price:1 个完整单位的from_asset的价格,以to_asset的最小单位表示。fee:费用明细对象:base_fee:固定费用部分。variable_fee:随数量变化的费用部分。fee_rate:可变费用的费率。final_fee:总费用(base_fee + variable_fee)。fee_asset:费用计价所用的资产。fee_asset_precision:费用资产的小数精度。
timestamp:生成该报价时的服务端时间戳。expires_at:该报价过期的时间戳。
响应示例
补充说明
- 所请求的路由(
from_asset.layer→to_asset.layer)必须是/api/v1/market/pairs中该交易对所支持的routes之一;不受支持的路由返回400错误。 - 数量应保持在每个资产
endpoints数组中给出的各层min_amount/max_amount限额之内。 expires_at字段表明该报价从何时起不再可用于发起交换。- 费用已计入所计算出的腿数量中。
- 在过期之前,
rfq_id可用于后续的交换发起请求或 LSPS1 订单请求。
关于交换操作的更多细节,请继续阅读交换 API。