Открытые API для маркетмейкера
Спецификация
Префикс
- Для обеспечения безопасности транзакций используйте HTTPS для передачи данных.
- JSON является форматом обмена данными.
- Кодировка символов UTF-8 применяется повсеместно.
- Алгоритм подписи интерфейса использует HMAC-SHA256.
- Используется временная метка UNIX в миллисекундах, представляющая количество миллисекунд с 1 января 1970 года, 0:00:00.
Параметры
Запрос
| name | type | remark |
|---|---|---|
| H-Request-Id | string | [Header]ID запроса, уникальный |
| H-Api-Key | string | [Header]API ключ |
| H-Timestamp | long | [Header]Действительная временная метка, например, 1672387200000 |
| H-Nonce | string | [Header]Случайная строка |
| Authorization | string | [Header]Подпись, например: [mm_id]-hmac-sha256 подпись |
Ответ
| name | type | ramark |
|---|---|---|
| code | integer | [Body]Код ошибки |
| message | string | [Body]Причина ошибки |
| value | T | [Body]Результат |
Генерация подписи
Наша платформа RFQ требует подписи партнеров для одобрения запросов, за которыми следует процедура проверки. Ошибка проверки приведет к отказу платформы с ответом 401 Unauthorized.
Формирование строки подписи:
Строка подписи состоит из пяти строк, каждая из которых представляет параметр. Каждая строка заканчивается точкой с запятой, включая последнюю строку. Действительная временная метка и nonce запроса берутся из параметров H-Timestamp и H-Nonce в заголовке соответственно.
Timestamp;NonceStr;HTTP_METHOD();URI();RequestBody;
Заполнение подписи
Используйте SecretKey для шифрования StringToSign с помощью HMAC-SHA256.
StringToSign = Timestamp + ";" + NonceStr + ";" + UPPERCASE(HTTP_METHOD()) + ";" + URI() + ";" + RequestBody + ";";
Signature = BASE64_STRING( HMAC-SHA256( BASE64_DECODE(SecretKey), StringToSign ) );
Установка HTTP заголовков
Запрос передает подпись через заголовок HTTP Authorization. Заголовок Authorization состоит из двух частей: тип аутентификации и информация о подписи.
Authorization: AuthenticationType SignatureInformation
- Тип аутентификации:
[mm_id]-hmac-sha256 - Информация о подписи:
Signature
Authorization: [mm_id]-hmac-sha256 Signature
Примечание:
- Метод запроса должен быть написан заглавными буквами.
RequestBody, используемое для подписи, должно соответствовать содержимому тела запроса.- Для запросов GET и DELETE
URIдолжен включать параметры запроса (например, /api/v1/result?orderId=123).- Если тело запроса отсутствует (что обычно для запросов GET), тело запроса должно быть пустой строкой ("").
- Действительная метка времени (H-Timestamp) определяется запрашивающей стороной; запросы, превышающие действительную метку времени, будут отклонены сервером RFQ.
RFQ
Предоставить котировку DNT RFQ
GET rfq/dnt/quote
Параметры
| имя | обязательно | тип | описание |
|---|---|---|---|
| vault | да | строка | Адрес хранилища |
| chainId | да | целое | Идентификатор цепочки |
| expiry | да | длинное | Время истечения в секундах, например, 1672387200 |
| lowerBarrier | да | число | Нижняя граница |
| upperBarrier | да | число | Верхняя граница |
| depositAmount | да | число | Депозит |
| premiumAmount | да | число | Премия |
| protectedFundingAmount | нет | число | Защищенный интерес (null, если RISKY) |
| deadline | да | длинное | Срок действия котировки, например, 1672387200 |
| takerWallet | нет | строка | Адрес кошелька принимающей стороны |
| anchorPricesDecimal | да | длинное | |
| makerCollateralDecimal | да | длинное | |
| collateralAtRiskDecimal | да | длинное | |
| totalCollateralDecimal | да | длинное | |
| underlyingPair | да | строка | Основная пара, например, BTC-USDT |
| trackingSource | да | строка | Источники данных, используемые для отслеживания основной стоимости, например, DERIBIT |
| depositCoin | да | строка | Валюта / монета премии, уплаченной для подписки DNT |
| tradingFeeRate | да | число | |
| settlementFeeRate | да | число | |
| riskType | да | строка | Тип: PROTECTED, RISKY |
Ответ
| имя | тип | описание |
|---|---|---|
| timestamp | длинное | Время котировки |
| vault | строка | |
| chainId | целое | |
| expiry | длинное | Время истечения, например, 1672387200 |
| anchorPrices | список[строка] | 20000000000,30000000000 |
| makerCollateral | строка | |
| totalCollateral | строка | |
| collateralAtRisk | string | E18 |
| makerBalanceThreshold | string | |
| deadline | long | Временная метка срока действия заявки |
| makerWallet | string | |
| signature | string | . |
Note:
Примеры
URL запроса
rfq/dnt/quote
Параметры
{
"rfqId":1233992,
"apy":0.25,
"tenor":7.9,
"fundingAmount":0.01,
"depositAmount":1,
"premiumCoin":"BTC",
"premiumAmount":0.05,
"bookingQuantity":1,
"totalAmount":0.05,
"payoff":1,
"deadline":1672279892000,
"signature":"dsdkksdsksdk"
}
Предоставить заявку на котировку бычьего/медвежьего тренда
GET rfq/smart-trend/quote
Параметры
| name | required | type | description |
|---|---|---|---|
| vault | true | string | Адрес хранилища |
| chainId | true | int | Идентификатор цепочки |
| expiry | true | long | Время истечения в секундах, например, 1672387200 |
| direction | true | string | БУЛЛИШ / БИРРИШ |
| lowerStrike | true | number | Нижняя граница |
| upperStrike | true | number | Верхняя граница |
| depositAmount | true | number | Депозит |
| premiumAmount | true | number | Премия |
| protectedFundingAmount | false | number | Защищенный интерес (null при RISKY) |
| deadline | true | long | Срок действия котировки, например, 1672387200 |
| takerWallet | false | string | Адрес кошелька принимающей стороны |
| anchorPricesDecimal | true | long | |
| makerCollateralDecimal | true | long | |
| collateralAtRiskDecimal | true | long | |
| totalCollateralDecimal | true | long | |
| underlyingPair | true | string | Основная пара, например, BTC-USDT |
| trackingSource | true | string | Источники данных, используемые для отслеживания основной стоимости, например, DERIBIT |
| tradingFeeRate | true | number | |
| settlementFeeRate | true | number | |
| depositCoin | true | string | Валюта / Монета премии, уплаченной за подписку на Smart Trend |
| riskType | true | string | Тип: ЗАЩИЩЕННЫЙ, РИСКОВЫЙ |
Ответ
| name | type | description |
|---|---|---|
| timestamp | long | Время котировки |
| vault | string | |
| chainId | int | |
| expiry | long | Время истечения, например, 1672387200 |
| anchorPrices | list[string] | 20000000000,30000000000 |
| makerCollateral | string | |
| totalCollateral | string | |
| collateralAtRisk | string | E18 |
| deadline | long | Время окончания запроса |
| makerWallet | string | |
| signature | string | . |
Примечание:
Предоставить двойную котировку RFQ
GET rfq/dual/quote
Параметры
| name | required | type | description |
|---|---|---|---|
| vault | true | string | Адрес хранилища |
| chainId | true | int | Идентификатор цепочки |
| expiry | true | long | Время истечения в секундах, например, 1672387200 |
| strike | true | number | Цена исполнения |
| type | true | string | CALL или PUT |
| depositAmount | true | number | Депозит |
| deadline | true | long | Срок действия котировки, например, 1672387200 |
| refDateTime | true | long | текущее время запроса |
| takerWallet | false | string | Адрес кошелька получателя |
| anchorPriceDecimal | true | long | |
| makerCollateralDecimal | true | long | |
| totalCollateralDecimal | true | long | |
| underlyingPair | true | string | Основная пара, например, BTC-USDT |
| trackingSource | true | string | Источники данных, используемые для отслеживания основной стоимости, например, DERIBIT |
| depositCoin | true | string | Валюта / Монета премии, уплаченной за подписку на Dual |
| depositCoinTokenAddress | true | string | |
| depositCoinTokenDecimal | true | long | |
| tradingFeeRate | true | number | . |
Response
| name | type | description |
|---|---|---|
| timestamp | long | Время метки котировки |
| vault | string | |
| chainId | int | |
| expiry | long | Время истечения, например, 1672387200 |
| anchorPrice | string | 20000000000 |
| makerCollateral | string | |
| totalCollateral | string | |
| deadline | long | Время истечения котировки |
| makerWallet | string | |
| signature | string | . |
Appendix
| Code | Message |
|---|---|
| 1000 | системная ошибка. |
| 2001 | ошибка подписи. |
| 2002 | ошибка параметра. |
| 3001 | Запрашиваемая информация не существует. |
| 3002 | Сумма депозита вне depositRange. |
| 3003 | Достигнут максимальный лимит подписок. |
| 3004 | Подписка не удалась из-за слишком большой разницы в premiumAmount. |
| 3005 | Котировка не удалась. |
| 3006 | Временно не предоставляем услугу. |
| 3007 | Превышен лимит частоты API. Попробуйте замедлиться. |
| 3100 | Создание заказа не удалось. |
Required Functions: