# ViteX API
更新日志
2020-04-30
- API 接口版本升级到 v2,原有 v1 版本接口将保留到 2020-05-15,请现有 API 用户尽快升级;
- 返回字段 msg 值由
Success
改为ok
; - 查询订单接口变更为公开接口,不再需要授权,根据用户地址即可查询,详情见
/api/v2/order
和/api/v2/orders
; - 查询用户余额接口变更为公开接口,不再需要授权。由
/api/v1/account
改为/api/v2/balance
; /markets
、/ticker/24hr
、/ticker/bookTicker
接口发生变动。
# 概述
ViteX API 允许用户在不暴露私钥的情况下,完成在 ViteX 去中心化交易所的相关操作。 ViteX API 分为交易和行情两类。交易 API(也称私有 API)需要身份验证和授权,为用户提供下单、撤单等功能。行情 API(也称公开 API)提供市场的行情数据,信息查询等。行情 API 无需授权即可访问。
# 环境地址
- 【MainNet】:
https://api.vitex.net/
- 【TestNet】
https://api.vitex.net/test
# 接口规范
API 接口的响应均为 JSON 格式,时间戳为 UNIX 时间。
HTTP 状态码:
- HTTP
200
表示接口正常返回 - HTTP
4XX
表示错误的请求。 - HTTP
5XX
表示 API 服务端异常。
接口返回的格式为:
字段 | 取值 |
---|---|
code | 返回码,调用成功返回 0 ;调用失败返回具体错误代码 |
msg | 错误信息 |
data | 接口返回的实际数据 |
例如:
{
"code": 1,
"msg": "Invalid symbol",
"data": {}
}
code 状态码:
0
调用成功1
一般错误:可在 msg 字段中查看具体错误信息1001
访问限制:错误码表示超出 API 访问频次配额限制1002
参数错误:timestamp 异常、订单价格格式错误、订单交易数量异常、订单交易金额过小、订单指定交易市场不存在、不存在的委托授权、symbol 不存在1003
网络环境:VITE 全网拥堵、交易发送频繁,请您稍后再次尝试、代理地址配额不足1004
其他错误:撤销订单不属于当前地址、该订单状态不可以撤销、查询订单信息异常1005
服务端异常:服务端 server 异常1006
订单过小:下单金额未达到交易所最小要求1007
余额不足:交易所账户余额不足,无法下单
# 枚举定义
# 订单状态
代码 | 含义 | 描述 |
---|---|---|
0 | Unknown | 未知状态 |
1 | Pending Request | 已提交下单请求,在链上生成 Request 交易 |
2 | Received | 订单已被系统接受,撮合状态未知 |
3 | Open | 未成交 |
4 | Filled | 完全成交 |
5 | Partially Filled | 部分成交 |
6 | Pending Cancel | 撤单请求已发送,但是否撤单成功未知 |
7 | Cancelled | 已取消 |
8 | Partially Cancelled | 部分成交后取消 |
9 | Failed | 订单失败 |
10 | Expired | 订单过期 |
# 订单类型
代码 | 含义 | 描述 |
---|---|---|
0 | Limit Order | 限价单 |
1 | Market Order | 市价单 (暂不支持) |
# 订单交易方向
代码 | 含义 | 描述 |
---|---|---|
0 | Buy Order | 买入 |
1 | Sell Order | 卖出 |
# Time In Force
代码 | 含义 | 描述 |
---|---|---|
0 | GTC - Good Till Cancel | 订单保持到成交或被取消 |
1 | IOC - Immediate or Cancel | 无法立即成交的部分就撤销 (暂不支持) |
2 | FOK - Fill or Kill | 要么全部成交,要么撤销 (暂不支持) |
# 私有 API 授权
在使用 ViteX 私有 API 前,用户必须在交易所 " 委托代理 (opens new window) " 页面授权,委托 ViteX API 服务代替用户发起交易。授权对象是 API 服务生成的代理地址(Delegation Address),用户无需提供私钥。
- 当您需要第三方做市商来操作您的账户完成交易时,可以不将自己的私钥提供给做市商,而只提供 API Key 和 API Secret。对方只能在您授权的交易对下进行下单和撤单操作,无法转移您的资产;
- 您可以针对每个交易对单独授权,交易所合约会阻止 API 操作未经授权的交易对;
- 您可以随时取消对 API 的授权。授权取消后,即使仍持有有效的 API Key 和 API Secret,ViteX 交易所合约也不再接受来自 API 的订单请求。
我们建议您仅授权必要的交易对。另外请注意,在任何情况下,您都不需要将自己的私钥和助记词提供给任何人。
代理地址及配额
通过 API 完成的下单、撤单等操作,是由 API 生成的代理地址的私钥进行签名的,产生的链上交易位于代理地址的账户链,而不在用户自己的账户地址下。
每个用户会分配有一个单独的代理地址。您需要为该地址抵押 VITE 代币来提供配额。
# 访问控制
API 访问计数以 60 秒为一个固定周期,周期内套餐额度用完,则剩余时间内调用接口会失败。此外,剩余额度不会累积,上一个周期未使用的额度不会顺延到下一个周期。
# API 鉴权
私有 API 需要通过签名来进行权限认证。
鉴权需要 API Key 和 API Secret,您可自行在交易所 "API" (opens new window) 页面申请。请注意,API Key 和 API Secret 是大小写敏感的。
调用私有 API 时,除了接口本身要求的参数外,还需要传递 key
、 timestamp
和 signature
三个参数。
- key:即
API Key
字段。 - timestamp:为 UNIX 时间戳,单位为毫秒,如:1565360340430。为防止重放攻击,服务端会校验时间戳的合法性,若请求时间戳对服务端时间小于 5000 ms 或大于 1000 ms,均认为该请求无效。
- signature:该字段通过 HMAC SHA256 签名算法生成。取
API Secret
作为 HMAC SHA256 密钥,把其他所有参数作为操作对象,得到的输出即为签名。签名大小写不敏感。
timestamp
校验逻辑如下:
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= 5000) {
// process request
} else {
// reject request
}
# 接口签名
- 按照参数名称的字典顺序对请求的所有参数 (接口定义的参数和 API Key) 排序;
- 参数名称和值用 ASCII 等号 (=) 连接;再把连接得到的字符串按参数名字的字典顺序依次使用 "&" 符号连接,得到规范化的请求字符串;
- 签名使用 HMAC SHA256 算法。将 API Key 所对应的 API Secret 作为 HMAC SHA256 签名算法的密钥,规范化的请求字符串作为操作对象,得到的输出即为签名。签名大小写不敏感。
- 将签名作为请求参数的一部分附加在请求字符串之后。
- 当接口同时使用请求字符串和请求 body 时,签名操作对象要求把请求字符串放在请求 body 之前
# 接口签名示例
下面是调用下单接口 /api/v2/order
的示例,假设 API Key 和 API Secret 为:
API Key | API Secret |
---|---|
913423DE46E97751CCC734F018F09217 | F6BED9F34912C0B658B58C73B6531721 |
若想在 ETH-000/BTC-000 的交易对下一个买单,以 0.09 的价格,买入 10 ETH,参数如下:
参数 | 取值 |
---|---|
symbol | ETH-000_BTC-000 |
side | 0 |
amount | 10 |
price | 0.09 |
timestamp | 1567067137937 |
在这个例子中,
- 请求字符串: amount=10&key=913423DE46E97751CCC734F018F09217&price=0.09&side=0&symbol=ETH-000_BTC-000×tamp=1567755178560
- 签名 (参数已排序):
$ echo -n "amount=10&key=913423DE46E97751CCC734F018F09217&price=0.09&side=0&symbol=ETH-000_BTC-000×tamp=1567755178560" | openssl dgst -sha256 -hmac "F6BED9F34912C0B658B58C73B6531721"
(stdin)= 47033f6086b2afc54a0a1f837dccb4ea6fe56a0312bab311e0bbc3941efaf8d6
- 调用 API:
$ curl -X POST -d "amount=10&key=913423DE46E97751CCC734F018F09217&price=0.09&side=0&symbol=ETH-000_BTC-000×tamp=1567755178560&signature=47033f6086b2afc54a0a1f837dccb4ea6fe56a0312bab311e0bbc3941efaf8d6" https://api.vitex.net/test/api/v2/order/test
# 私有 REST API
# 下单测试
测试订单请求,但不会提交到交易所合约。该接口一般用来验证签名是否正确
POST /api/v2/order/test
配额消耗: 0 UT
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,例如: ETH-000_BTC-000 |
amount | STRING | YES | 下单数量,以交易币种为单位 |
price | STRING | YES | 下单价格 |
side | INT | YES | 订单方向,买入为 0 ,卖出为 1 |
timestamp | LONG | YES | 客户端时间戳(毫秒) |
key | STRING | YES | API Key |
signature | STRING | YES | 签名 |
响应:
{
"code": 0,
"msg": "ok",
"data": null
}
# 下单
POST /api/v2/order
配额消耗: 1 UT
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,例如: ETH-000_BTC-000 |
amount | STRING | YES | 下单数量,以交易币种为单位 |
price | STRING | YES | 下单价格 |
side | INT | YES | 订单方向,买入为 0 ,卖出为 1 |
timestamp | LONG | YES | 客户端时间戳(毫秒) |
key | STRING | YES | API Key |
signature | STRING | YES | 签名 |
响应:
{
"code": 0,
"msg": "ok",
"data": {
"symbol": "VX_ETH-000",
"orderId": "c35dd9868ea761b22fc76ba35cf8357db212736ecb56399523126c515113f19d",
"status": 1
}
}
# 撤销订单
DELETE /api/v2/order
配额消耗: 1 UT
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,例如: ETH-000_BTC-000 |
orderId | STRING | YES | 订单 ID |
timestamp | LONG | YES | 客户端时间戳(毫秒) |
key | STRING | YES | API Key |
signature | STRING | YES | 签名 |
响应:
{
"code": 0,
"msg": "ok",
"data": {
"symbol": "VX_ETH-000",
"orderId": "c35dd9868ea761b22fc76ba35cf8357db212736ecb56399523126c515113f19d",
"cancelRequest": "2d015156738071709b11e8d6fa5a700c2fd30b28d53aa6160fd2ac2e573c7595",
"status": 6
}
}
# 撤销全部订单
DELETE /api/v2/orders
配额消耗: N UT (N = 订单数量)
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,例如: ETH-000_BTC-000 |
timestamp | LONG | YES | 客户端时间戳(毫秒) |
key | STRING | YES | API Key |
signature | STRING | YES | 签名 |
响应:
{
"code": 0,
"msg": "ok",
"data": [
{
"symbol": "VX_ETH-000",
"orderId": "de185edae25a60dff421c1be23ac298b121cb8bebeff2ecb25807ce7d72cf622",
"cancelRequest": "355b6fab007d86e7ff09b0793fbb205e82d3880b64d948ed46f88237115349ab",
"status": 6
},
{
"symbol": "VX_ETH-000",
"orderId": "7e079d4664791207e082c0fbeee7b254f2a31e87e1cff9ba18c5faaeee3d400a",
"cancelRequest": "55b80fe42c41fa91f675c04a8423afa85857cd30c0f8878d52773f7096bfac3b",
"status": 6
}
]
}
# 公有 REST API
# 获取各个市场最小下单金额
GET /api/v2/limit
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[320,334],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"minAmount\": {\n \"BTC-000\": \"0.0001\",\n \"USDT-000\": \"1\",\n \"ETH-000\": \"0.01\"\n },\n \"depthStepsLimit\": {}\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[334,337],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test: 'Test' url: /api/v2/limit method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "minAmount": { "BTC-000": "0.0001", "USDT-000": "1", "ETH-000": "0.01" }, "depthStepsLimit": {} } }
{}
# 获取所有代币列表
GET /api/v2/tokens
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
category | STRING | NO | 币种种类,取值 [ quote , all ],默认值 all |
tokenSymbolLike | STRING | NO | 币种简称,如 VITE |
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 500 ,最大 500 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[357,375],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"tokenId\": \"tti_322862b3f8edae3b02b110b1\",\n \"name\": \"BTC Token\",\n \"symbol\": \"BTC-000\",\n \"originalSymbol\": \"BTC\",\n \"totalSupply\": \"2100000000000000\",\n \"owner\": \"vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a\",\n \"tokenDecimals\": 8,\n \"urlIcon\": null\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[376,379],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/tokens?tokenSymbolLike=ETH method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "tokenId": "tti_322862b3f8edae3b02b110b1", "name": "BTC Token", "symbol": "BTC-000", "originalSymbol": "BTC", "totalSupply": "2100000000000000", "owner": "vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a", "tokenDecimals": 8, "urlIcon": null } ] }
{}
# 获取代币详情
GET /api/v2/token/detail
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
tokenSymbol | STRING | NO | 币种简称,如 VITE |
tokenId | STRING | NO | 币种 id,如 tti_5649544520544f4b454e6e40 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[397,420],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"tokenId\": \"tti_322862b3f8edae3b02b110b1\",\n \"name\": \"BTC Token\",\n \"symbol\": \"BTC-000\",\n \"originalSymbol\": \"BTC\",\n \"totalSupply\": \"2100000000000000\",\n \"publisher\": \"vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a\",\n \"tokenDecimals\": 8,\n \"tokenAccuracy\": \"0.00000001\",\n \"publisherDate\": null,\n \"reissue\": 2,\n \"urlIcon\": null,\n \"gateway\": null,\n \"website\": null,\n \"links\": null,\n \"overview\": null\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[421,424],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/token/detail?tokenId=tti_5649544520544f4b454e6e40 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "tokenId": "tti_322862b3f8edae3b02b110b1", "name": "BTC Token", "symbol": "BTC-000", "originalSymbol": "BTC", "totalSupply": "2100000000000000", "publisher": "vite_ab24ef68b84e642c0ddca06beec81c9acb1977bbd7da27a87a", "tokenDecimals": 8, "tokenAccuracy": "0.00000001", "publisherDate": null, "reissue": 2, "urlIcon": null, "gateway": null, "website": null, "links": null, "overview": null } }
{}
# 获取已开通交易对的代币列表
GET /api/v2/token/mapped
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
quoteTokenSymbol | STRING | YES | 基础币种(定价币种)简称,如 VITE |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[442,454],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"tokenId\": \"tti_c2695839043cf966f370ac84\",\n \"symbol\": \"VCP\"\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[455,458],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/token/mapped?quoteTokenSymbol=VITE method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "tokenId": "tti_c2695839043cf966f370ac84", "symbol": "VCP" } ] }
{}
# 获取未开通交易对的代币列表
GET /api/v2/token/unmapped
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
quoteTokenSymbol | STRING | YES | 基础币种(定价币种)简称,如 VITE |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[476,488],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"tokenId\": \"tti_2736f320d7ed1c2871af1d9d\",\n \"symbol\": \"VTT\"\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[489,492],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/token/unmapped?quoteTokenSymbol=VITE method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "tokenId": "tti_2736f320d7ed1c2871af1d9d", "symbol": "VTT" } ] }
{}
# 获取某个交易对详情
GET /api/v2/market
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_BTC-000 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[509,541],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"symbol\": \"GRIN-000_BTC-000\",\n \"tradingCurrency\": \"GRIN-000\",\n \"quoteCurrency\": \"BTC-000\",\n \"tradingCurrencyId\": \"tti_289ee0569c7d3d75eac1b100\",\n \"quoteCurrencyId\": \"tti_b90c9baffffc9dae58d1f33f\",\n \"tradingCurrencyName\": \"Grin\",\n \"quoteCurrencyName\": \"Bitcoin\",\n \"operator\": \"vite_4c2c19f563187163145ab8f53f5bd36864756996e47a767ebe\",\n \"operatorName\": \"Vite Labs\",\n \"operatorLogo\": \"https://token-profile-1257137467.cos.ap-hongkong.myqcloud.com/icon/f62f3868f3cbb74e5ece8d5a4723abef.png\",\n \"pricePrecision\": 8,\n \"amountPrecision\": 2,\n \"minOrderSize\": \"0.0001\",\n \"operatorMakerFee\": 5.0E-4,\n \"operatorTakerFee\": 5.0E-4,\n \"highPrice\": \"0.00007000\",\n \"lowPrice\": \"0.00006510\",\n \"lastPrice\": \"0.00006682\",\n \"volume\": \"1476.37000000\",\n \"baseVolume\": \"0.09863671\",\n \"bidPrice\": \"0.00006500\",\n \"askPrice\": \"0.00006999\",\n \"openBuyOrders\": 27,\n \"openSellOrders\": 42\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[542,545],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/market?symbol=GRIN-000_BTC-000 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "symbol": "GRIN-000_BTC-000", "tradingCurrency": "GRIN-000", "quoteCurrency": "BTC-000", "tradingCurrencyId": "tti_289ee0569c7d3d75eac1b100", "quoteCurrencyId": "tti_b90c9baffffc9dae58d1f33f", "tradingCurrencyName": "Grin", "quoteCurrencyName": "Bitcoin", "operator": "vite_4c2c19f563187163145ab8f53f5bd36864756996e47a767ebe", "operatorName": "Vite Labs", "operatorLogo": "https://token-profile-1257137467.cos.ap-hongkong.myqcloud.com/icon/f62f3868f3cbb74e5ece8d5a4723abef.png", "pricePrecision": 8, "amountPrecision": 2, "minOrderSize": "0.0001", "operatorMakerFee": 5.0E-4, "operatorTakerFee": 5.0E-4, "highPrice": "0.00007000", "lowPrice": "0.00006510", "lastPrice": "0.00006682", "volume": "1476.37000000", "baseVolume": "0.09863671", "bidPrice": "0.00006500", "askPrice": "0.00006999", "openBuyOrders": 27, "openSellOrders": 42 } }
{}
# 获取所有市场交易对
GET /api/v2/markets
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 500 ,最大 500 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[563,580],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"symbol\": \"BTC-000_USDT\",\n \"tradeTokenSymbol\": \"BTC-000\",\n \"quoteTokenSymbol\": \"USDT-000\",\n \"tradeToken\": \"tti_322862b3f8edae3b02b110b1\",\n \"quoteToken\": \"tti_973afc9ffd18c4679de42e93\",\n \"pricePrecision\": 8,\n \"quantityPrecision\": 8\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[581,584],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/markets method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "symbol": "BTC-000_USDT", "tradeTokenSymbol": "BTC-000", "quoteTokenSymbol": "USDT-000", "tradeToken": "tti_322862b3f8edae3b02b110b1", "quoteToken": "tti_973afc9ffd18c4679de42e93", "pricePrecision": 8, "quantityPrecision": 8 } ] }
{}
# 获取订单信息
GET /api/v2/order
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | STRING | YES | 用户账户地址(非代理地址) |
orderId | STRING | YES | 订单 id |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[602,629],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"address\": \"vite_228f578d58842437fb52104b25750aa84a6f8558b6d9e970b1\",\n \"orderId\": \"0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93\",\n \"symbol\": \"VX_ETH-000\",\n \"tradeTokenSymbol\": \"VX\",\n \"quoteTokenSymbol\": \"ETH-000\",\n \"tradeToken\": \"tti_564954455820434f494e69b5\",\n \"quoteToken\": \"tti_06822f8d096ecdf9356b666c\",\n \"side\": 1,\n \"price\": \"0.000228\",\n \"quantity\": \"100.0001\",\n \"amount\": \"0.02280002\",\n \"executedQuantity\": \"100.0000\",\n \"executedAmount\": \"0.022800\",\n \"executedPercent\": \"0.999999\",\n \"executedAvgPrice\": \"0.000228\",\n \"fee\": \"0.000045\",\n \"status\": 5,\n \"type\": 0,\n \"createTime\": 1586941713\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[630,633],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/order?address=vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "address": "vite_228f578d58842437fb52104b25750aa84a6f8558b6d9e970b1", "orderId": "0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93", "symbol": "VX_ETH-000", "tradeTokenSymbol": "VX", "quoteTokenSymbol": "ETH-000", "tradeToken": "tti_564954455820434f494e69b5", "quoteToken": "tti_06822f8d096ecdf9356b666c", "side": 1, "price": "0.000228", "quantity": "100.0001", "amount": "0.02280002", "executedQuantity": "100.0000", "executedAmount": "0.022800", "executedPercent": "0.999999", "executedAvgPrice": "0.000228", "fee": "0.000045", "status": 5, "type": 0, "createTime": 1586941713 } }
{}
# 获取挂单信息
GET /api/v2/orders/open
获取当前未成交与部分成交状态的订单信息
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | STRING | YES | 用户账户地址(非代理地址) |
symbol | STRING | NO | 交易对名称,如 GRIN-000_BTC-000 |
quoteTokenSymbol | STRING | NO | 基础币种(定价币种)简称,如 BTC-000 |
tradeTokenSymbol | STRING | NO | 交易币种简称,如 GRIN-000 |
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 30 ,最大 100 |
total | INTEGER | NO | 是否在结果中包含查询总数, 0 不包含, 1 包含,默认不返回,此时显示 total=-1 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[657,689],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"order\": [\n {\n \"address\": \"vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee\",\n \"orderId\": \"5379b281583bb17c61bcfb1e523b95a6c153150e03ce9db35f37d652bbb1b321\",\n \"symbol\": \"BTC-000_USDT-000\",\n \"tradeTokenSymbol\": \"BTC-000\",\n \"quoteTokenSymbol\": \"USDT-000\",\n \"tradeToken\": \"tti_322862b3f8edae3b02b110b1\",\n \"quoteToken\": \"tti_973afc9ffd18c4679de42e93\",\n \"side\": 0,\n \"price\": \"1.2000\",\n \"quantity\": \"1.0000\",\n \"amount\": \"1.20000000\",\n \"executedQuantity\": \"0.0000\",\n \"executedAmount\": \"0.0000\",\n \"executedPercent\": \"0.0000\",\n \"executedAvgPrice\": \"0.0000\",\n \"confirmations\": null,\n \"fee\": \"0.0000\",\n \"status\": 3,\n \"type\": 0,\n \"createTime\": 1587906622\n }\n ]\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[689,692],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test: 'Test' url: /api/v2/orders/open?address=vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "order": [ { "address": "vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee", "orderId": "5379b281583bb17c61bcfb1e523b95a6c153150e03ce9db35f37d652bbb1b321", "symbol": "BTC-000_USDT-000", "tradeTokenSymbol": "BTC-000", "quoteTokenSymbol": "USDT-000", "tradeToken": "tti_322862b3f8edae3b02b110b1", "quoteToken": "tti_973afc9ffd18c4679de42e93", "side": 0, "price": "1.2000", "quantity": "1.0000", "amount": "1.20000000", "executedQuantity": "0.0000", "executedAmount": "0.0000", "executedPercent": "0.0000", "executedAvgPrice": "0.0000", "confirmations": null, "fee": "0.0000", "status": 3, "type": 0, "createTime": 1587906622 } ] } }
{}
# 获取订单列表
GET /api/v2/orders
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | STRING | YES | 用户账户地址(非代理地址) |
symbol | STRING | NO | 交易对名称,如 GRIN-000_VITE |
quoteTokenSymbol | STRING | NO | 基础币种(定价币种)简称,如 VITE |
tradeTokenSymbol | STRING | NO | 交易币种简称,如 GRIN-000 |
startTime | LONG | NO | 查询起始时间(秒) |
endTime | LONG | NO | 查询截止时间(秒) |
side | INTEGER | NO | 订单方向,买入为 0 ,卖出为 1 |
status | INTEGER | NO | 订单状态,取值 0-10 ,其中 3 和 5 返回所有未完全成交订单, 7 和 8 返回所有已撤销订单 |
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 30 ,最大 100 |
total | INTEGER | NO | 是否在结果中包含查询总数, 0 不包含, 1 包含,默认不返回,此时显示 total=-1 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[719,751],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"order\": [\n {\n \"address\": \"vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee\",\n \"orderId\": \"0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93\",\n \"symbol\": \"VX_ETH-000\",\n \"tradeTokenSymbol\": \"VX\",\n \"quoteTokenSymbol\": \"ETH-000\",\n \"tradeToken\": \"tti_564954455820434f494e69b5\",\n \"quoteToken\": \"tti_06822f8d096ecdf9356b666c\",\n \"side\": 1,\n \"price\": \"0.000228\",\n \"quantity\": \"100.0001\",\n \"amount\": \"0.02280002\",\n \"executedQuantity\": \"100.0000\",\n \"executedAmount\": \"0.022800\",\n \"executedPercent\": \"0.999999\",\n \"executedAvgPrice\": \"0.000228\",\n \"fee\": \"0.000045\",\n \"status\": 5,\n \"type\": 0,\n \"createTime\": 1586941713\n }\n ],\n \"total\": -1\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[752,755],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/orders?address=vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "order": [ { "address": "vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee", "orderId": "0dfbafac33fbccf5c65d44d5d80ca0b73bc82ae0bbbe8a4d0ce536d340738e93", "symbol": "VX_ETH-000", "tradeTokenSymbol": "VX", "quoteTokenSymbol": "ETH-000", "tradeToken": "tti_564954455820434f494e69b5", "quoteToken": "tti_06822f8d096ecdf9356b666c", "side": 1, "price": "0.000228", "quantity": "100.0001", "amount": "0.02280002", "executedQuantity": "100.0000", "executedAmount": "0.022800", "executedPercent": "0.999999", "executedAvgPrice": "0.000228", "fee": "0.000045", "status": 5, "type": 0, "createTime": 1586941713 } ], "total": -1 } }
{}
# 获取 24 小时行情
GET /api/v2/ticker/24hr
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbols | STRING | NO | 交易对名称列表,用 "," 分隔 |
quoteTokenSymbol | STRING | NO | 基础币种(定价币种)简称,如 USDT-000 ,如空缺则返回全部交易对 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[773,801],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"symbol\":\"BTC-000_USDT-000\",\n \"tradeTokenSymbol\":\"BTC-000\",\n \"quoteTokenSymbol\":\"USDT-000\",\n \"tradeToken\":\"tti_b90c9baffffc9dae58d1f33f\",\n \"quoteToken\":\"tti_80f3751485e4e83456059473\",\n \"openPrice\":\"7540.0000\",\n \"prevClosePrice\":\"7717.0710\",\n \"closePrice\":\"7683.8816\",\n \"priceChange\":\"143.8816\",\n \"priceChangePercent\":0.01908244,\n \"highPrice\":\"7775.0000\",\n \"lowPrice\":\"7499.5344\",\n \"quantity\":\"13.8095\",\n \"amount\":\"104909.3499\",\n \"pricePrecision\":4,\n \"quantityPrecision\":4,\n \"openTime\":null,\n \"closeTime\":null\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[802,805],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/ticker/24hr?quoteTokenSymbol=VITE method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "symbol":"BTC-000_USDT-000", "tradeTokenSymbol":"BTC-000", "quoteTokenSymbol":"USDT-000", "tradeToken":"tti_b90c9baffffc9dae58d1f33f", "quoteToken":"tti_80f3751485e4e83456059473", "openPrice":"7540.0000", "prevClosePrice":"7717.0710", "closePrice":"7683.8816", "priceChange":"143.8816", "priceChangePercent":0.01908244, "highPrice":"7775.0000", "lowPrice":"7499.5344", "quantity":"13.8095", "amount":"104909.3499", "pricePrecision":4, "quantityPrecision":4, "openTime":null, "closeTime":null } ] }
{}
# 获取当前最优挂单
GET /api/v2/ticker/bookTicker
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_VITE |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[822,836],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"symbol\": \"BTC-000_USDT-000\",\n \"bidPrice\": \"7600.0000\",\n \"bidQuantity\": \"0.7039\",\n \"askPrice\": \"7725.0000\",\n \"askQuantity\": \"0.0001\",\n \"height\": null\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[837,840],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/ticker/bookTicker?symbol=BTC-000_VITE-000 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "symbol": "BTC-000_USDT-000", "bidPrice": "7600.0000", "bidQuantity": "0.7039", "askPrice": "7725.0000", "askQuantity": "0.0001", "height": null } }
{}
# 获取精简数据成交记录
GET /api/v2/trades
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_VITE |
limit | INTEGER | NO | 数量,默认 500 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[858,878],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"timestamp\": 1588214534000,\n \"price\": \"0.024933\",\n \"amount\": \"0.0180\",\n \"side\": 0\n },\n {\n \"timestamp\": 1588214364000,\n \"price\": \"0.024535\",\n \"amount\": \"0.0127\",\n \"side\": 0\n }\n ]\n }\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[879,882],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/trades?symbol=BTC-000_USDT-000 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "timestamp": 1588214534000, "price": "0.024933", "amount": "0.0180", "side": 0 }, { "timestamp": 1588214364000, "price": "0.024535", "amount": "0.0127", "side": 0 } ] }
{}
# 获取完整数据成交记录
GET /api/v2/trades/all
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_VITE |
orderId | STRING | NO | 订单 id |
startTime | LONG | NO | 查询起始时间(秒) |
endTime | LONG | NO | 查询截止时间(秒) |
side | INTEGER | NO | 订单方向,买入为 0 ,卖出为 1 |
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 30 ,最大 100 |
total | INTEGER | NO | 是否返回查询总数,不返回 0 ,返回 1 ,默认不返回,此时总量显示为 -1 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[907,935],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"height\": null,\n \"trade\": [\n {\n \"tradeId\": \"d3e7529de05e94d247a4e7ef58a56b069b059d52\",\n \"symbol\": \"VX_ETH-000\",\n \"tradeTokenSymbol\": \"VX\",\n \"quoteTokenSymbol\": \"ETH-000\",\n \"tradeToken\": \"tti_564954455820434f494e69b5\",\n \"quoteToken\": \"tti_06822f8d096ecdf9356b666c\",\n \"price\": \"0.000228\",\n \"quantity\": \"0.0001\",\n \"amount\": \"0.00000002\",\n \"time\": 1586944732,\n \"side\": 0,\n \"buyFee\": \"0.00000000\",\n \"sellFee\": \"0.00000000\",\n \"blockHeight\": 260\n }\n ],\n \"total\": -1\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[936,939],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/trades?symbol=BTC-000_USDT-000 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "height": null, "trade": [ { "tradeId": "d3e7529de05e94d247a4e7ef58a56b069b059d52", "symbol": "VX_ETH-000", "tradeTokenSymbol": "VX", "quoteTokenSymbol": "ETH-000", "tradeToken": "tti_564954455820434f494e69b5", "quoteToken": "tti_06822f8d096ecdf9356b666c", "price": "0.000228", "quantity": "0.0001", "amount": "0.00000002", "time": 1586944732, "side": 0, "buyFee": "0.00000000", "sellFee": "0.00000000", "blockHeight": 260 } ], "total": -1 } }
{}
# 获取市场深度
GET /api/v2/depth
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_VITE |
limit | INTEGER | NO | 返回结果数量,最大 100 ,缺省 100 |
precision | INTEGER | NO | 价格小数位 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[958,987],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"timestamp\": 1588170501936,\n \"asks\": [\n [\n \"0.025750\",\n \"0.0323\"\n ],\n [\n \"0.026117\",\n \"0.0031\"\n ] \n ],\n \"bids\": [\n [\n \"0.024820\",\n \"0.0004\"\n ],\n [\n \"0.024161\",\n \"0.0042\"\n ]\n ]\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[988,991],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/depth?symbol=BTC-000_USDT-000 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "timestamp": 1588170501936, "asks": [ [ "0.025750", "0.0323" ], [ "0.026117", "0.0031" ] ], "bids": [ [ "0.024820", "0.0004" ], [ "0.024161", "0.0042" ] ] } }
{}
# 获取 K 线数据
GET /api/v2/klines
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对名称,如 GRIN-000_VITE |
interval | STRING | YES | 周期,取值 [ minute , hour , day , minute30 , hour6 , hour12 , week ] |
limit | INTEGER | NO | 返回结果数量,最大 1500 ,缺省 500 |
startTime | INTEGER | NO | 查询起始时间(秒) |
endTime | INTEGER | NO | 查询截止时间(秒) |
- 响应:
名称 | 类型 | 描述 |
---|---|---|
t | LONG | 时间 |
c | STRING | 收盘价 (closePrice) |
p | STRING | 开盘价 (openPrice) |
h | STRING | 最高价 (highPrice) |
l | STRING | 最低价 (lowPrice) |
v | STRING | 交易币种交易量 (volume) |
{
"code": 0,
"msg": "ok",
"data": {
"t": [
1554207060
],
"c": [
1.0
],
"p": [
1.0
],
"h": [
1.0
],
"l": [
1.0
],
"v": [
12970.8
]
}
}
{}
# 获取充提记录
GET /api/v2/deposit-withdraw
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | STRING | YES | 下单地址 |
tokenId | STRING | YES | 币种 id,如 tti_5649544520544f4b454e6e40 |
offset | INTEGER | NO | 起始查询索引,从 0 开始,默认 0 |
limit | INTEGER | NO | 查询数量,默认 100 ,最大 100 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[1071,1088],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": {\n \"record\": [\n {\n \"time\": 1555057049,\n \"tokenSymbol\": \"VITE\",\n \"amount\": \"1000000.00000000\",\n \"type\": 1\n }\n ],\n \"total\": 16\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1089,1092],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/deposit-withdraw?address=vite_ff38174de69ddc63b2e05402e5c67c356d7d17e819a0ffadee&tokenId=tti_5649544520544f4b454e6e40 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": { "record": [ { "time": 1555057049, "tokenSymbol": "VITE", "amount": "1000000.00000000", "type": 1 } ], "total": 16 } }
{}
# 获取币种汇率
GET /api/v2/exchange-rate
- 参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
tokenSymbols | STRING | NO | 币种简称列表,用 "," 分隔,如 VITE,ETH-000 |
tokenIds | STRING | NO | 币种 id 列表,用 "," 分隔,如 tti_5649544520544f4b454e6e40,tti_5649544520544f4b454e6e40 |
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[1110,1124],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": [\n {\n \"tokenId\": \"tti_5649544520544f4b454e6e40\",\n \"tokenSymbol\": \"VITE\",\n \"usdRate\": 0.03,\n \"cnyRate\": 0.16\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1125,1128],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/exchange-rate?tokenIds=tti_5649544520544f4b454e6e40 method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": [ { "tokenId": "tti_5649544520544f4b454e6e40", "tokenSymbol": "VITE", "usdRate": 0.03, "cnyRate": 0.16 } ] }
{}
# 获取美元人民币汇率
GET /api/v2/usd-cny
参数: 无
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[1142,1149],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": 6.849\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1150,1153],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/usd-cny method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": 6.849 }
{}
# 获取用户交易所账户余额
GET /api/v2/balance
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | STRING | YES | 账户地址 |
响应:
名称 | 类型 | 描述 |
---|---|---|
available | STRING | 交易所可用余额 |
locked | STRING | 交易所锁定(下单中)余额 |
{
"code": 0,
"msg": "ok",
"data": {
"VX": {
"available": "0.00000000",
"locked": "0.00000000"
},
"VCP": {
"available": "373437.00000000",
"locked": "0.00000000"
},
"BTC-000": {
"available": "0.02597393",
"locked": "0.13721639"
},
"USDT-000": {
"available": "162.58284100",
"locked": "170.40459600"
},
"GRIN-000": {
"available": "0.00000000",
"locked": "0.00000000"
},
"VITE": {
"available": "30047.62090072",
"locked": "691284.75633290"
},
"ETH-000": {
"available": "1.79366977",
"locked": "7.93630000"
}
}
}
{}
# 获取交易挖矿池子信息
GET /api/v2/trade_fee_info
Response:
名称 | 类型 | 描述 |
---|---|---|
tradePoolVx | OBJECT | 每个市场的 VX 量 |
tradePoolFee | OBJECT | 每个市场的手续费 |
1: VITE 2: ETH-000 3: BTC-000 4: USDT-000
{
"code": 0,
"msg": "ok",
"data": {
"tradePoolVx": {
"1": "6005.736536774939954301",
"2": "6005.736536774939954301",
"3": "6005.736536774939954301",
"4": "6005.736536774939954301"
},
"tradePoolFee": {
"1": "17769.748909914626699977",
"2": "1.267967346417481080",
"3": "0.03045706",
"4": "299.338260"
}
}
}
{}
# 获取服务器时间
GET /api/v2/time
GET /api/v2/timestamp
参数: 无
响应:
[{"type":"fence","tag":"code","attrs":null,"map":[1277,1284],"nesting":0,"level":3,"children":null,"content":"{\n \"code\": 0,\n \"msg\": \"ok\",\n \"data\": 1559033445000\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1285,1288],"nesting":0,"level":3,"children":null,"content":"{}\n","markup":"```","info":"json test:Test url: /api/v2/time method: GET","meta":null,"block":true,"hidden":false}] { "code": 0, "msg": "ok", "data": 1559033445000 }
{}
# WebSocket API
# op_type 定义
- sub,表示订阅
- un_sub,表示取消订阅
- ping,表示心跳请求,保证 10s 内一次,用于判断客户端 client_id 是否有效
- pong,服务端响应,通常无须关注
- push,表示服务推送数据
注意
ping
心跳消息需要至少 1 分钟周期发送 1 次。当心跳间隔超过 1 分钟后,注册的事件订阅(Event Subscription)会失效清理
# topics 列表
支持单、多主题订阅,多个主题订阅使用 "," 分隔,如: topic1,topic2
主题 | 描述 | Message |
---|---|---|
order.$address | 订单变化 | Order |
market.$symbol.depth | 深度数据 | Depth |
market.$symbol.trade | 交易数据 | Trade |
market.$symbol.tickers | 某个交易对统计数据 | TickerStatistics |
market.quoteToken.$symbol.tickers | 计价币种的交易对统计数据 | TickerStatistics |
market.quoteTokenCategory.VITE.tickers | VITE 市场的交易对统计数据 | TickerStatistics |
market.quoteTokenCategory.ETH.tickers | ETH 市场的交易对统计数据 | TickerStatistics |
market.quoteTokenCategory.USDT.tickers | USDT 市场的交易对统计数据 | TickerStatistics |
market.quoteTokenCategory.BTC.tickers | BTC 市场的交易对统计数据 | TickerStatistics |
market.$symbol.kline.minute | 分钟 kline 数据 | Kline |
market.$symbol.kline.minute30 | 30 分钟 kline 数据 | Kline |
market.$symbol.kline.hour | 1 小时 kline 数据 | Kline |
market.$symbol.kline.day | 日 kline 数据 | Kline |
market.$symbol.kline.week | 周 kline 数据 | Kline |
market.$symbol.kline.hour6 | 6 小时 kline 数据 | Kline |
market.$symbol.kline.hour12 | 12 小时 kline 数据 | Kline |
# JSON 消息订阅
# 环境地址
- 【MainNet】
wss://api.vitex.net/ws
# message 数据结构定义
# Order
- 定义:
```java
// order id
private String oid;
// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// side
private Integer side;
// price
private String p;
// quantity
private String q;
// amount
private String a;
// executed quantity
private String eq;
// executed amount
private String ea;
// executed percentage
private String ep;
// executed average price
private String eap;
// fee
private String f;
// status
private Integer st;
// type
private Integer tp;
// create time
private Long ct;
// address
private String d;
示例:
[{"type":"fence","tag":"code","attrs":null,"map":[1381,1388],"nesting":0,"level":3,"children":null,"content":"{\n \"clientId\":\"test\",\n \"opType\":\"sub\",\n \"topics\":\"order.vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072\"\n}\n","markup":"```","info":"json tab:Subscribe","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1389,1414],"nesting":0,"level":3,"children":null,"content":"{\n \"message\":{\n \"a\":\"13.72516176\",\n \"ct\":1588142062,\n \"d\":\"vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072\",\n \"ea\":\"13.7251\",\n \"eap\":\"0.1688\",\n \"ep\":\"1.0000\",\n \"eq\":\"81.3102\",\n \"f\":\"0.0308\",\n \"oid\":\"b0e0e20739c570d533679315dbb154201c8367b6e23636b6521e9ebdd9f8fc0a\",\n \"p\":\"0.1688\",\n \"q\":\"81.3102\",\n \"qid\":\"tti_80f3751485e4e83456059473\",\n \"qs\":\"USDT-000\",\n \"s\":\"VX_USDT-000\",\n \"side\":0,\n \"st\":2,\n \"tid\":\"tti_564954455820434f494e69b5\",\n \"tp\":0,\n \"ts\":\"VX\"\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false}] { "clientId":"test", "opType":"sub", "topics":"order.vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072" }
{ "message":{ "a":"13.72516176", "ct":1588142062, "d":"vite_cc392cbb42a22eebc9136c6f9ba416d47d19f3be1a1bd2c072", "ea":"13.7251", "eap":"0.1688", "ep":"1.0000", "eq":"81.3102", "f":"0.0308", "oid":"b0e0e20739c570d533679315dbb154201c8367b6e23636b6521e9ebdd9f8fc0a", "p":"0.1688", "q":"81.3102", "qid":"tti_80f3751485e4e83456059473", "qs":"USDT-000", "s":"VX_USDT-000", "side":0, "st":2, "tid":"tti_564954455820434f494e69b5", "tp":0, "ts":"VX" } }
# Trade
- 定义:
// tradeId
private String id;
// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// price
private String p;
// quantity
private String q;
// amount
private String a;
// time
private Long t;
// side
private Integer side;
// buyer orderId
private String bid;
//seller orderId
private String sid;
// buyer fee
private String bf;
// seller fee
private String sf;
// block height
private Long bh;
示例:
[{"type":"fence","tag":"code","attrs":null,"map":[1458,1465],"nesting":0,"level":3,"children":null,"content":"{\n \"clientId\":\"test\",\n \"opType\":\"sub\",\n \"topics\":\"market.VX_VITE.trade\"\n}\n","markup":"```","info":"json tab:Subscribe","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1466,1490],"nesting":0,"level":3,"children":null,"content":"{\n \"message\":[\n {\n \"a\":\"6324.77710294\",\n \"bf\":\"14.23074848\",\n \"bh\":14526719,\n \"bid\":\"00001f00fffffffff340910fa1ff005e6618cb000030\",\n \"id\":\"702d8d5bd6e8d5aa7b40953484acbcfeae6c1fcf\",\n \"p\":\"12.8222\",\n \"q\":\"493.2677\",\n \"qid\":\"tti_5649544520544f4b454e6e40\",\n \"qs\":\"VITE\",\n \"s\":\"VX_VITE\",\n \"sf\":\"14.23074848\",\n \"sid\":\"00001f01000000000cbf6ef05e00005e6618cb00002f\",\n \"side\":0,\n \"t\":1583749346,\n \"tid\":\"tti_564954455820434f494e69b5\",\n \"ts\":\"VX\"\n }\n ]\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false}] { "clientId":"test", "opType":"sub", "topics":"market.VX_VITE.trade" }
{ "message":[ { "a":"6324.77710294", "bf":"14.23074848", "bh":14526719, "bid":"00001f00fffffffff340910fa1ff005e6618cb000030", "id":"702d8d5bd6e8d5aa7b40953484acbcfeae6c1fcf", "p":"12.8222", "q":"493.2677", "qid":"tti_5649544520544f4b454e6e40", "qs":"VITE", "s":"VX_VITE", "sf":"14.23074848", "sid":"00001f01000000000cbf6ef05e00005e6618cb00002f", "side":0, "t":1583749346, "tid":"tti_564954455820434f494e69b5", "ts":"VX" } ] }
# TickerStatistics
- 定义:
// symbol
private String s;
// trade token symbol
private String ts;
// quote token symbol
private String qs;
// trade tokenId
private String tid;
// quote tokenId
private String qid;
// open price
private String op;
// previous close price
private String pcp;
// close price
private String cp;
// price change
private String pc;
// price change percentage
private String pCp;
// high price
private String hp;
// low price
private String lp;
// quantity
private String q;
// amount
private String a;
// price precision
private Integer pp;
// quantity precision
private Integer qp;
示例:
[{"type":"fence","tag":"code","attrs":null,"map":[1534,1541],"nesting":0,"level":3,"children":null,"content":"{\n \"clientId\":\"test\",\n \"opType\":\"sub\",\n \"topics\":\"market.VX_VITE.tickers\"\n}\n","markup":"```","info":"json tab:Subscribe","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1542,1563],"nesting":0,"level":3,"children":null,"content":"{\n \"message\":{\n \"a\":\"14932378.5785\",\n \"cp\":\"13.3013\",\n \"hp\":\"13.5200\",\n \"lp\":\"10.9902\",\n \"op\":\"11.3605\",\n \"pc\":\"1.9408\",\n \"pcp\":\"13.2947\",\n \"pp\":4,\n \"q\":\"1207963.7611\",\n \"qid\":\"tti_5649544520544f4b454e6e40\",\n \"qp\":4,\n \"qs\":\"VITE\",\n \"s\":\"VX_VITE\",\n \"tid\":\"tti_564954455820434f494e69b5\",\n \"ts\":\"VX\"\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false}] { "clientId":"test", "opType":"sub", "topics":"market.VX_VITE.tickers" }
{ "message":{ "a":"14932378.5785", "cp":"13.3013", "hp":"13.5200", "lp":"10.9902", "op":"11.3605", "pc":"1.9408", "pcp":"13.2947", "pp":4, "q":"1207963.7611", "qid":"tti_5649544520544f4b454e6e40", "qp":4, "qs":"VITE", "s":"VX_VITE", "tid":"tti_564954455820434f494e69b5", "ts":"VX" } }
# KLine
- 定义:
private Long t;
private Double c;
private Double o;
private Double v;
private Double h;
private Double l;
示例:
[{"type":"fence","tag":"code","attrs":null,"map":[1581,1588],"nesting":0,"level":3,"children":null,"content":"{\n \"clientId\":\"test\",\n \"opType\":\"sub\",\n \"topics\":\"market.VX_VITE.kline.minute\"\n}\n","markup":"```","info":"json tab:Subscribe","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1589,1601],"nesting":0,"level":3,"children":null,"content":"{\n \"message\":{\n \"c\":12.935,\n \"h\":12.935,\n \"l\":12.935,\n \"o\":12.935,\n \"t\":1583749440,\n \"v\":415.1729\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false}] { "clientId":"test", "opType":"sub", "topics":"market.VX_VITE.kline.minute" }
{ "message":{ "c":12.935, "h":12.935, "l":12.935, "o":12.935, "t":1583749440, "v":415.1729 } }
# Depth
- 定义:
private List<List<String>> asks; // [[price, quantity],[price, quantity]]
private List<List<String>> bids; // [[price, quantity],[price, quantity]]
示例:
[{"type":"fence","tag":"code","attrs":null,"map":[1615,1622],"nesting":0,"level":3,"children":null,"content":"{\n \"clientId\":\"test\",\n \"opType\":\"sub\",\n \"topics\":\"market.VX_VITE.depth\"\n}\n","markup":"```","info":"json tab:Subscribe","meta":null,"block":true,"hidden":false},{"type":"fence","tag":"code","attrs":null,"map":[1623,1663],"nesting":0,"level":3,"children":null,"content":"{\n \"message\":{\n \"asks\":[\n [\n \"12.9320\",\n \"185.3194\"\n ],[\n \"13.3300\",\n \"48.9177\"\n ],[\n \"13.4959\",\n \"1305.9508\"\n ],[\n \"13.5100\",\n \"466.7237\"\n ],[\n \"13.8000\",\n \"134.5858\"\n ]],\n \"bids\":[\n [\n \"12.7002\",\n \"170.2562\"\n ],[\n \"12.6000\",\n \"63.6076\"\n ],[\n \"12.4000\",\n \"15339.2586\"\n ],[\n \"12.3010\",\n \"324.6731\"\n ],[\n \"12.3000\",\n \"222.7945\"\n ]]\n }\n}\n","markup":"```","info":"json tab:Response","meta":null,"block":true,"hidden":false}] { "clientId":"test", "opType":"sub", "topics":"market.VX_VITE.depth" }
{ "message":{ "asks":[ [ "12.9320", "185.3194" ],[ "13.3300", "48.9177" ],[ "13.4959", "1305.9508" ],[ "13.5100", "466.7237" ],[ "13.8000", "134.5858" ]], "bids":[ [ "12.7002", "170.2562" ],[ "12.6000", "63.6076" ],[ "12.4000", "15339.2586" ],[ "12.3010", "324.6731" ],[ "12.3000", "222.7945" ]] } }
← 跨链网关接口协议 ViteX 网关接入 →