简而言之
Blockradar 的 Liquidity Pool 允许已审核通过的 Liquidity Provider(LP)为资产对定义和管理汇率。汇率为内部 swap 引擎提供支持——当用户发起 swap 时,系统会自动从活跃的 LP 中选择最佳可用汇率,验证流动性,并执行交易。
前置条件
在使用 Liquidity Pool API 之前,请确保您已具备:
成为 Liquidity Provider
Liquidity Pool 仅向已审核通过的 Liquidity Provider 开放。要开始使用,请填写 LP 申请表,Blockradar 团队将审核您的申请并为您完成接入。 为您的 wallet 充值
请确保您的 treasury wallet 拥有足够的资产余额(用于您计划提供流动性的资产),以及用于支付网络手续费的原生代币。
工作原理
作为 Liquidity Provider,您可以为资产对(例如 BNB → USDC)定义汇率。当 Blockradar 平台上的用户发起 swap 时,系统会:
- 查找匹配的汇率——从所有活跃 LP 中针对所请求的资产对查找。
- 对候选项进行排序——按最佳汇率、LP 优先级和创建时间进行排序。
- 验证流动性——检查所选 LP 的 treasury wallet 是否有足够余额完成该 swap。
- 执行 swap——使用所选 LP 的汇率和 treasury 进行交易。
Rate Management
为任何受支持的资产对创建、更新、停用和重新启用汇率。
Amount Bands
为每个汇率定义最小和最大交易金额,以控制风险敞口并细分定价层级。
Version History
每次汇率变更都会创建一个新版本。完整历史记录会被保留,便于审计和分析。
Automatic Selection
系统会根据汇率、优先级和可用流动性,为每笔 swap 自动选择最佳的 LP。
Rate Lifecycle
汇率遵循清晰的生命周期,并具有完整的版本跟踪:
1. 创建汇率
为资产对定义新的汇率。该汇率以 active 状态从版本 1 开始。
curl --request POST \
--url https://api.blockradar.co/v1/rates \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"fromAsset": "BNB",
"toAsset": "USDC",
"rate": "605.50",
"minAmount": "0.01",
"maxAmount": "100"
}'
请求参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|
fromAsset | string | 是 | 要从中转出的资产符号(例如 BNB) |
toAsset | string | 是 | 要转入的资产符号(例如 USDC) |
rate | string | 是 | 汇率。以字符串形式提供,避免浮点精度问题 |
minAmount | string | 是 | 此汇率的最小交易金额(含) |
maxAmount | string | 否 | 最大交易金额(不含)。省略表示无上限 |
创建响应
{
"message": "Rate created successfully",
"statusCode": 201,
"data": {
"id": "d69078ef-2467-40f4-bb00-63394efe32c0",
"fromAsset": "BNB",
"toAsset": "USDC",
"rate": "605.50",
"minAmount": "0.01",
"maxAmount": "100",
"isActive": true,
"status": "active",
"version": 1,
"network": "testnet",
"createdAt": "2026-02-19T07:50:17.042Z"
}
}
2. 更新汇率
修改现有活跃汇率的汇率值或金额限制。这将创建一个新版本——之前的版本会被自动标记为 superseded。
curl --request PATCH \
--url https://api.blockradar.co/v1/rates/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"rate": "610.00",
"minAmount": "0.005"
}'
3. 停用汇率
临时下线一个汇率。该汇率将变为 deactivated 状态,不会再被选中用于 swap。
curl --request PATCH \
--url https://api.blockradar.co/v1/rates/{id}/deactivate \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{
"reason": "Pausing for maintenance"
}'
4. 重新启用汇率
将已停用的汇率重新上线。这将创建一个状态为 active 的新版本。
curl --request PATCH \
--url https://api.blockradar.co/v1/rates/{id}/reactivate \
--header 'x-api-key: <api-key>'
在为新层级报价或对现有层级重新定价之前,请使用 Pricing Tools 检查您自己的覆盖范围,并与同业务板块的其他 Liquidity Provider 进行对比。
查询某资产对的活跃汇率
GET /rates/check-pair 会返回您在当前环境中为某资产对配置的所有活跃汇率,包括每个汇率的金额区间。可用于在开设新层级之前确认您是否已在为该资产对报价。
curl --request GET \
--url 'https://api.blockradar.co/v1/rates/check-pair?fromAsset=USDT&toAsset=cNGN' \
--header 'x-api-key: <api-key>'
{
"message": "Pair check completed",
"statusCode": 200,
"data": {
"fromAsset": "USDT",
"toAsset": "cNGN",
"hasActiveRates": true,
"activeRateCount": 2,
"rates": [
{
"id": "d69078ef-2467-40f4-bb00-63394efe32c0",
"rate": "1545.00",
"minAmount": "10",
"maxAmount": "1000",
"version": 1,
"createdAt": "2026-04-12T09:14:22.501Z"
},
{
"id": "5b6683f0-6e92-4eaf-ae8d-5f2ddd76b376",
"rate": "1547.50",
"minAmount": "1000",
"maxAmount": null,
"version": 3,
"createdAt": "2026-04-12T09:18:41.022Z"
}
]
}
}
与其他 LP 进行对标
GET /rates/market-benchmark 会返回您所在业务板块中其他 Liquidity Provider 针对某资产对的最佳竞争汇率。您自身的汇率会被排除,以便您看到自己实际在与之竞争的报价。每个资产对的结果会被缓存 60 秒。
传入 amount 可将基准限制为金额区间覆盖该交易规模的汇率,或传入 pairs(用逗号分隔的 from:to 条目,最多 20 个),即可在一次调用中获取一组基准。
curl --request GET \
--url 'https://api.blockradar.co/v1/rates/market-benchmark?fromAsset=USDT&toAsset=cNGN' \
--header 'x-api-key: <api-key>'
{
"message": "Market benchmark retrieved",
"statusCode": 200,
"data": {
"fromAsset": "USDT",
"toAsset": "cNGN",
"bestRate": "1547.50"
}
}
{
"message": "Market benchmark retrieved",
"statusCode": 200,
"data": [
{ "fromAsset": "USDT", "toAsset": "cNGN", "bestRate": "1547.50" },
{ "fromAsset": "cNGN", "toAsset": "USDT", "bestRate": "0.000647" }
]
}
当没有其他 LP 为该资产对(或所提供的金额区间)设置活跃汇率时,bestRate 为 null。
查看 Treasury 余额
GET /rates/treasury-balances 会返回出现在您活跃汇率中每种资产的聚合 treasury 余额,并按区块链分类。可用于监控您所报价资产对的流动性覆盖情况。
响应会排除链上余额为零的资产,并对同一资产/wallet 对被多个汇率引用时的条目进行去重。
curl --request GET \
--url https://api.blockradar.co/v1/rates/treasury-balances \
--header 'x-api-key: <api-key>'
{
"message": "Treasury balances retrieved successfully",
"statusCode": 200,
"data": [
{
"asset": "USDT",
"totalBalance": "5000.00",
"totalConvertedBalance": "5000.00",
"chains": [
{
"blockchain": "ethereum",
"balance": "3000.00",
"convertedBalance": "3000.00",
"walletAddress": "0xA1b2C3d4E5f6789012345678901234567890aBcD"
},
{
"blockchain": "polygon",
"balance": "2000.00",
"convertedBalance": "2000.00",
"walletAddress": "0xA1b2C3d4E5f6789012345678901234567890aBcD"
}
]
}
]
}
汇率版本控制
每次汇率被更新或重新启用时,都会创建一个新版本。先前的版本会被标记为 superseded。这提供了完整的审计轨迹。
| 字段 | 说明 |
|---|
version | 顺序版本号,从 1 开始 |
rootRateId | 指向原始汇率——同一链路中的所有版本共享此 ID |
previousRateId | 指向紧接的上一版本 |
版本链示例
v1 (active) → v2 (active, v1 superseded) → v3 (deactivated) → v4 (active, v3 superseded)
查看汇率历史
获取某汇率的完整版本历史:
curl --request GET \
--url https://api.blockradar.co/v1/rates/{id}/history \
--header 'x-api-key: <api-key>'
历史响应
{
"message": "Rate history retrieved successfully",
"statusCode": 200,
"data": [
{
"id": "d69078ef-2467-40f4-bb00-63394efe32c0",
"fromAsset": "BNB",
"toAsset": "USDC",
"network": "testnet",
"rate": "605.50",
"minAmount": "0.01",
"maxAmount": null,
"isActive": false,
"status": "deactivated",
"version": 1,
"previousRateId": null,
"rootRateId": null,
"createdBy": "86964e42-79dc-4267-a2ca-3612c4b095a8",
"deactivatedBy": "86964e42-79dc-4267-a2ca-3612c4b095a8",
"deactivatedAt": "2026-02-25T18:13:48.113Z",
"deactivationReason": "re",
"createdAt": "2026-02-19T07:50:17.042Z",
"updatedAt": "2026-02-25T18:13:48.101Z"
}
],
"meta": {
"totalItems": 1,
"itemCount": 1,
"itemsPerPage": 10,
"totalPages": 1,
"currentPage": 1
}
}
汇率状态
| 状态 | 说明 |
|---|
active | 当前在线,可被选中用于 swap |
superseded | 已被更新或重新启用产生的更新版本所替代 |
deactivated | 已被手动下线——可重新启用 |
superseded 是终态——这些记录属于历史记录,无法再被修改。
Amount Bands
每个汇率覆盖一个由 minAmount 和 maxAmount 定义的交易金额区间:
minAmount——下限(含)。低于此金额的交易不会使用该汇率。
maxAmount——上限(不含)。设置为 null(即省略)表示无上限。
同一资产对的多个汇率
您可以为同一资产对创建具有不同金额区间的多个汇率,以提供分层定价:
| 汇率 | 区间 | 使用场景 |
|---|
| 605.00 | 0.01 – 10 BNB | 小额交易 |
| 606.50 | 10 – 100 BNB | 中等金额交易 |
| 608.00 | 100+ BNB | 大额交易 |
同一资产对的金额区间不得重叠。如果新汇率的区间与同一资产对的另一个活跃汇率发生重叠,系统将拒绝该汇率。
流动性验证
在使用您的汇率执行 swap 之前,系统会验证您的 treasury wallet 是否拥有:
- 足够的目标资产代币余额,以覆盖 swap 输出(
amount x rate)。
- 足够的原生代币余额(ETH、BNB 等),以支付转账的网络手续费。
如果您的 wallet 余额不足,系统会跳过您的汇率,转而使用下一个可用的 LP。当您的流动性较低时,您将通过电子邮件收到提醒。
请保持 treasury wallet 资金充足,以避免错过 swap 机会。当余额低于阈值时,系统会通知您。
最佳实践
Rate Management
- 关注市场行情,定期更新汇率以保持竞争力
- 使用 Amount Bands 为不同交易规模提供分层定价
- 在维护期间或高波动时段停用汇率,而不是直接删除
- 查看 Version History 以跟踪汇率随时间的变化
流动性
- 在 treasury wallet 中为目标资产和原生代币都保留充足余额
- 设置监控,以便接收余额过低的警报
- 主动为 wallet 充值,避免出现服务中断
API 参考
| Endpoint | 说明 |
|---|
| Create Rate | 为资产对创建新的汇率 |
| Get Rate | 通过 ID 获取单个汇率 |
| Update Rate | 更新现有汇率(会创建新版本) |
| Deactivate Rate | 下线一个汇率 |
| Reactivate Rate | 将已停用的汇率重新上线 |
| Get Rate History | 查看某汇率的完整版本历史 |
| Check Pair | 列出您针对特定资产对的活跃汇率 |
| Get Market Benchmark | 某资产对(或一批资产对)的最佳竞争汇率,不含您自己的报价 |
| Get Treasury Balances | 按资产和区块链聚合的 treasury 余额 |
Liquidity Pool 面向机构和专业的流动性提供者设计。申请成为 LP,然后在 testnet 上测试您的汇率配置,再正式上线。