APIs ouvertes pour le Market Maker
Spécification
Préfixe
- Pour garantir la sécurité des transactions, utilisez HTTPS pour la transmission.
- JSON est le format d'échange de données.
- L'encodage des caractères UTF-8 est appliqué universellement.
- L'algorithme de signature de l'interface utilise HMAC-SHA256.
- Un horodatage en millisecondes UNIX est utilisé, représentant le nombre de millisecondes depuis le 1er janvier 1970, 0:00:00.
Paramètres
Demande
| nom | type | remarque |
|---|---|---|
| H-Request-Id | string | [En-tête]ID de demande, unique |
| H-Api-Key | string | [En-tête]Clé API |
| H-Timestamp | long | [En-tête]Horodatage valide, par exemple, 1672387200000 |
| H-Nonce | string | [En-tête]Chaîne aléatoire |
| Authorization | string | [En-tête]Signature, par exemple : [mm_id]-hmac-sha256 signature |
Réponse
| nom | type | remarque |
|---|---|---|
| code | integer | [Corps]Code d'erreur |
| message | string | [Corps]Raison de l'erreur |
| value | T | [Corps]Résultat |
Génération de la signature
Notre plateforme RFQ nécessite des signatures de partenaires pour approuver les demandes, suivies d'une procédure de vérification. Un échec de vérification entraînera un rejet de la plateforme avec une réponse 401 Non autorisé.
Construction de la chaîne de signature :
La chaîne de signature se compose de cinq lignes, chacune représentant un paramètre. Chaque ligne se termine par un point-virgule, y compris la dernière ligne. L'horodatage valide et le nonce de la demande sont pris respectivement des paramètres H-Timestamp et H-Nonce dans l'en-tête.
Timestamp;NonceStr;HTTP_METHOD();URI();RequestBody;
Remplissage de la signature
Utilisez la SecretKey pour chiffrer StringToSign en utilisant HMAC-SHA256.
StringToSign = Timestamp + ";" + NonceStr + ";" + UPPERCASE(HTTP_METHOD()) + ";" + URI() + ";" + RequestBody + ";";
Signature = BASE64_STRING( HMAC-SHA256( BASE64_DECODE(SecretKey), StringToSign ) );
Définition des en-têtes HTTP
La requête transmet la signature via l'en-tête HTTP Authorization. L'Authorization header se compose de deux parties : type d'authentification et informations de signature.
Authorization: AuthenticationType SignatureInformation
- Type d'authentification :
[mm_id]-hmac-sha256 - Informations de signature :
Signature
Authorization: [mm_id]-hmac-sha256 Signature
Remarque :
- La méthode de requête doit être en MAJUSCULES.
- Le
RequestBodyutilisé pour la signature doit correspondre au contenu du corps de la requête. - Pour les requêtes GET et DELETE, le
URIdoit inclure les paramètres de la requête (par exemple, /api/v1/result?orderId=123).- S'il n'y a pas de corps de requête (courant pour les requêtes GET), le corps de la requête doit être une chaîne vide ("").
- Le timestamp valide (H-Timestamp) est déterminé par le demandeur ; les requêtes dépassant le timestamp valide seront rejetées par le serveur RFQ.
RFQ
Fournir un devis RFQ DNT
GET rfq/dnt/quote
Paramètres
| nom | requis | type | description |
|---|---|---|---|
| vault | vrai | string | Adresse du coffre |
| chainId | vrai | int | ID de la chaîne |
| expiry | vrai | long | Temps d'expiration en secondes timestamp, par exemple, 1672387200 |
| lowerBarrier | vrai | number | Barrière inférieure |
| upperBarrier | vrai | number | Barrière supérieure |
| depositAmount | vrai | number | Dépôt |
| premiumAmount | vrai | number | Prime |
| protectedFundingAmount | faux | number | Intérêt protégé (null lorsque RISQUÉ) |
| deadline | vrai | long | Date limite de l'offre, par exemple, 1672387200 |
| takerWallet | faux | string | Adresse du portefeuille du preneur |
| anchorPricesDecimal | vrai | long | |
| makerCollateralDecimal | vrai | long | |
| collateralAtRiskDecimal | vrai | long | |
| totalCollateralDecimal | vrai | long | |
| underlyingPair | vrai | string | Paire sous-jacente, par exemple BTC-USDT |
| trackingSource | vrai | string | Les sources de données sont utilisées pour suivre la valeur sous-jacente, par exemple DERIBIT |
| depositCoin | vrai | string | Monnaie / Pièce de la prime payée pour souscrire DNT |
| tradingFeeRate | vrai | number | |
| settlementFeeRate | vrai | number | |
| riskType | vrai | string | Type : PROTÉGÉ, RISQUÉ |
Réponse
| nom | type | description |
|---|---|---|
| timestamp | long | Horodatage de l'offre |
| vault | string | |
| chainId | int | |
| expiry | long | Horodatage d'expiration, par exemple, 1672387200 |
| anchorPrices | list[string] | 20000000000,30000000000 |
| makerCollateral | string | |
| totalCollateral | string | |
| collateralAtRisk | chaîne | E18 |
| makerBalanceThreshold | chaîne | |
| deadline | long | Horodatage de la date limite de citation |
| makerWallet | chaîne | |
| signature | chaîne | . |
Note :
Exemples
URL de la demande
rfq/dnt/quote
Paramètres
{
"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"
}
Fournir une citation RFQ de tendance haussière/baissière
GET rfq/smart-trend/quote
Paramètres
| nom | requis | type | description |
|---|---|---|---|
| vault | vrai | string | Adresse du coffre |
| chainId | vrai | int | ID de la chaîne |
| expiry | vrai | long | Temps d'expiration en secondes timestamp, par exemple, 1672387200 |
| direction | vrai | string | BAISSIER / HAUSSIER |
| lowerStrike | vrai | number | Barrière inférieure |
| upperStrike | vrai | number | Barrière supérieure |
| depositAmount | vrai | number | Dépôt |
| premiumAmount | vrai | number | Prime |
| protectedFundingAmount | faux | number | Intérêt protégé (null lorsque RISQUÉ) |
| deadline | vrai | long | Date limite de l'offre, par exemple, 1672387200 |
| takerWallet | faux | string | Adresse du portefeuille du preneur |
| anchorPricesDecimal | vrai | long | |
| makerCollateralDecimal | vrai | long | |
| collateralAtRiskDecimal | vrai | long | |
| totalCollateralDecimal | vrai | long | |
| underlyingPair | vrai | string | Paire sous-jacente, par exemple BTC-USDT |
| trackingSource | vrai | string | Les sources de données sont utilisées pour suivre la valeur sous-jacente, par exemple DERIBIT |
| tradingFeeRate | vrai | number | |
| settlementFeeRate | vrai | number | |
| depositCoin | vrai | string | Monnaie / Pièce de la prime payée pour souscrire à Smart Trend |
| riskType | vrai | string | Type : PROTÉGÉ, RISQUÉ |
Réponse
| nom | type | description |
|---|---|---|
| timestamp | long | Horodatage de l'offre |
| vault | string | |
| chainId | int | |
| expiry | long | Horodatage d'expiration, par exemple, 1672387200 |
| anchorPrices | liste[string] | 20000000000,30000000000 |
| makerCollateral | string | |
| totalCollateral | string | |
| collateralAtRisk | string | E18 |
| deadline | long | Horodatage de la date limite |
| makerWallet | string | |
| signature | string | . |
Note:
Fournir un devis RFQ double
GET rfq/dual/quote
Paramètres
| nom | requis | type | description |
|---|---|---|---|
| vault | vrai | string | Adresse du coffre |
| chainId | vrai | int | ID de la chaîne |
| expiry | vrai | long | Temps d'expiration en secondes, par exemple, 1672387200 |
| strike | vrai | number | Prix d'exercice |
| type | vrai | string | CALL ou PUT |
| depositAmount | vrai | number | Dépôt |
| deadline | vrai | long | Date limite du devis, par exemple, 1672387200 |
| refDateTime | vrai | long | Temps de la demande actuelle |
| takerWallet | faux | string | Adresse du portefeuille du preneur |
| anchorPriceDecimal | vrai | long | |
| makerCollateralDecimal | vrai | long | |
| totalCollateralDecimal | vrai | long | |
| underlyingPair | vrai | string | Paire sous-jacente, par exemple BTC-USDT |
| trackingSource | vrai | string | Les sources de données utilisées pour suivre la valeur sous-jacente, par exemple DERIBIT |
| depositCoin | true | string | Devise / Monnaie du premium payé pour souscrire au Dual |
| depositCoinTokenAddress | true | string | |
| depositCoinTokenDecimal | true | long | |
| tradingFeeRate | true | number | . |
Response
| name | type | description |
|---|---|---|
| timestamp | long | Horodatage de la citation |
| vault | string | |
| chainId | int | |
| expiry | long | Horodatage d'expiration, par ex., 1672387200 |
| anchorPrice | string | 20000000000 |
| makerCollateral | string | |
| totalCollateral | string | |
| deadline | long | Horodatage de la date limite de la citation |
| makerWallet | string | |
| signature | string | . |
Annexe
| Code | Message |
|---|---|
| 1000 | erreur système. |
| 2001 | erreur de signature. |
| 2002 | erreur de paramètre. |
| 3001 | Les informations demandées n'existent pas. |
| 3002 | Le montant du dépôt est en dehors de depositRange. |
| 3003 | La limite maximale des souscriptions est atteinte. |
| 3004 | La souscription a échoué en raison d'une trop grande différence dans premiumAmount. |
| 3005 | La citation a échoué. |
| 3006 | Service temporairement indisponible. |
| 3007 | Limite de taux d'API dépassée. Essayez de ralentir. |
| 3100 | Échec de la création de la commande. |
Fonctions requises: