API du marketplace d'énergie Tron

Bienvenue dans la documentation officielle de notre API du marketplace d'énergie Tron. Vous y trouverez des détails sur les endpoints publics qui vous permettent de :

  • Récupérer les paramètres actuels de la plateforme (prix de l'énergie, offre disponible, taille minimale de commande et adresse de dépôt).
  • Vérifier le statut d'une commande d'achat d'énergie spécifique par hash de dépôt.
  • Acheter de l'énergie par programme depuis un solde prépayé, sans envoyer un dépôt pour chaque commande.

Les deux points de terminaison GET ci-dessous sont publics et ne nécessitent aucune authentification. L'achat d'énergie nécessite une clé API : générez-la dans votre espace et transmettez-la dans l'en-tête X-Api-Key. Paramètres de l'acheteur

Transmettez la clé uniquement dans l'en-tête. Les chaînes de requête finissent dans les journaux du serveur.

Aperçu des endpoints

GET https://api.tron.discount/energy/info

Renvoie les paramètres en direct de la plateforme, comme l'état d'activité du système, la quantité d'énergie disponible, le prix de l'énergie, l'adresse de dépôt, etc.

GET https://api.tron.discount/energy/order/{depositHash}

Renvoie le statut d'une commande d'achat spécifique, y compris les hash de transaction et les détails de délégation.

POST https://api.tron.discount/energy/order Clé API

Achète de l'énergie sur votre solde prépayé. Aucune transaction de dépôt n'est nécessaire.

GET https://api.tron.discount/energy/order/api/{id} Clé API

Renvoie l'état d'une commande passée via l'API, à partir de son identifiant numérique.

Endpoints détaillés

GET

/energy/info

Description

Fournit des paramètres comme le prix actuel de l'énergie, la quantité d'énergie disponible, l'adresse de dépôt et d'autres informations (par ex. l'heure du serveur, l'état d'activité du système).

Requête

curl -X GET https://api.tron.discount/energy/info

Réponse

{
  "isSystemActive": true,
  "maximumEnergyAvailable": 1155882352,
  "energyUnitPriceInSun": 50,
  "minEnergyOrderAmount": 32000,
  "depositAddress": "TSD2AWZeyvE4CFvSfYZ1wiPhKoXxWurLUe",
  "serverTime": "2025-04-05T15:24:05.785059Z"
}

Description des champs

Champ Type Description
isSystemActive Boolean Indique si le marketplace est opérationnel.
maximumEnergyAvailable Integer Nombre total d'unités d'énergie actuellement disponibles à l'achat.
energyUnitPriceInSun Integer Le coût (en SUN) par unité d'énergie. (1 TRX = 1 000 000 SUN)
minEnergyOrderAmount Integer Quantité minimale d'énergie (unités) pour une seule commande.
depositAddress String Adresse Tron à laquelle les acheteurs envoient des TRX. Le système délègue automatiquement l'énergie à l'expéditeur dès réception du paiement.
serverTime String Horodatage du serveur au format ISO.
GET

/energy/order/{depositHash}

Description

Récupère le statut d'une commande d'achat associée au hash de transaction de dépôt fourni.

Requête

curl -X GET https://api.tron.discount/energy/order/d663302b6a303053b8de9a018ea14cbaca9d0cf0e38a498cc86d04748e3bec14

Réponse

{
  "depositHash": "d663302b6a303053b8de9a018ea14cbaca9d0cf0e38a498cc86d04748e3bec14",
  "delegationHash": "b9458d06b1f05ff5d1b2448afa6efb548f7792dd6997ab9cb4e2ce6fbbd560a0",
  "refundHash": null,
  "status": "ResourcesDelegated",
  "created": "2024-06-01T14:38:32",
  "executed": "2024-06-01T14:40:10",
  "targetAddress": "TDqSquXBgUCLYvYC4XZgrprLK589dkhSCf",
  "depositAmount": 3.89,
  "energyAmount": 32416
}

Description des champs

Champ Type Description
depositHash String Hash de transaction du dépôt (TRX envoyés à la plateforme).
delegationHash String Hash de transaction de la délégation on-chain (le cas échéant).
refundHash String Hash de transaction d'un éventuel remboursement (le cas échéant, sinon null).
status String Statut de la commande (par ex. « ResourcesDelegated », « Refunded », « Pending », etc.). Voir les descriptions de statut ci-dessous.
created String Horodatage de la première détection de la commande.
executed String Horodatage du moment où le système a délégué ou traité la commande avec succès.
targetAddress String Adresse Tron qui a reçu l'énergie déléguée.
depositAmount Number Montant de TRX reçu de la transaction de dépôt.
energyAmount Integer Quantité d'unités d'énergie déléguées à l'adresse cible.

Valeurs de statut de commande

Valeurs possibles pour le champ status :
Statut Description
Created La commande a été créée mais pas encore traitée.
Pending Paiement reçu et commande en cours de traitement.
ResourcesDelegated L'énergie a été déléguée avec succès à l'adresse cible.
RefundRequested Un remboursement a été demandé mais pas encore traité.
PendingRefund Le remboursement est en cours de traitement.
Refunded Les TRX ont été remboursés à l'expéditeur.
POST

/energy/order

Clé API

Description

Passe une commande et en débite le coût de votre solde prépayé. Contrairement au dépôt, aucun transfert on-chain n'est requis pour chaque commande.

Rechargez le solde en envoyant des TRX à votre adresse de recharge personnelle, affichée dans votre espace. Paramètres de l'acheteur

Requête

curl -X POST https://api.tron.discount/energy/order \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "receiveAddress": "TW7X17...uCntDs2",
    "resourceValue": 32000,
    "rentDurationInHours": 1,
    "clientOrderId": "order-2024-001"
  }'

Champs de la requête

Champ Type Description
receiveAddress String Adresse Tron qui recevra l'énergie déléguée. Obligatoire.
resourceValue Integer Nombre d'unités d'énergie à acheter. Obligatoire, au minimum minEnergyOrderAmount.
rentDurationInHours Integer Durée de location en heures. Facultatif ; la seule valeur acceptée est 1, qui est aussi la valeur par défaut.
clientOrderId String Votre propre numéro de commande, jusqu'à 64 caractères. Facultatif mais vivement recommandé : répéter une requête avec la même valeur renvoie la commande initiale au lieu de vous débiter deux fois.

Réponse

{
  "id": 1024,
  "status": "Created",
  "chargedInSun": 1600000,
  "priceInSun": 50,
  "balance": 96.920000
}

Description des champs

Champ Type Description
id Integer Identifiant de la commande. Utilisez-le pour en demander l'état plus tard.
status String État de la commande, mêmes valeurs que pour le dépôt. Une commande tout juste acceptée est « Created ».
chargedInSun Integer Montant débité pour cette commande, en SUN.
priceInSun Integer Prix par unité d'énergie figé au moment de l'acceptation de la commande.
balance Number Solde prépayé restant en TRX après le débit.

Erreurs

Une commande refusée renvoie un corps JSON avec un code stable, lisible par machine, et un message lisible par un humain. Basez votre logique sur le code : le message ne fait pas partie du contrat et peut changer à tout moment.

{
  "code": "insufficient_balance",
  "message": "Insufficient balance: 1.500000 TRX, required 4 TRX"
}
HTTP code Description
400 insufficient_balance Solde prépayé insuffisant pour cette commande. Rechargez votre adresse et répétez la requête avec le même clientOrderId. Rien n'a été débité.
400 invalid_address receiveAddress n'est pas une adresse Tron valide. La somme de contrôle base58check est vérifiée : une faute de frappe est rejetée plutôt que déléguée dans le vide.
400 invalid_resource_value resourceValue est inférieur à minEnergyOrderAmount ou supérieur au maximum autorisé pour une seule commande.
400 invalid_rent_duration rentDurationInHours n'est pas égal à 1. La plateforme ne loue de l'énergie que pour une heure.
400 invalid_client_order_id clientOrderId dépasse 64 caractères.
400 invalid_request Le corps de la requête est absent ou illisible.
401 — La clé est absente, révoquée ou inconnue.
503 system_inactive Le système n'accepte pas de commandes pour le moment. Réessayez plus tard ; rien n'a été débité.
GET

/account/recharge-address

Clé API

Description

Renvoie votre adresse de recharge personnelle. ready vaut false tant que l'adresse n'a pas encore été émise : pour un tout nouveau compte ou juste après une régénération qui ne s'est pas terminée à temps.

Requête

curl -X GET https://api.tron.discount/account/recharge-address \
  -H "X-Api-Key: tde_your_key_here"

Réponse

{
  "address": "TQmZ1p...c8XA1",
  "ready": true,
  "nextChangeAllowedAt": "2026-09-12T10:00:00Z"
}
POST

/account/recharge-address/regenerate

Clé API

Description

Remplace votre adresse de rechargement par une nouvelle. Autorisé une fois par jour.

L'ancienne adresse continue d'accepter les dépôts pendant 180 jours après le changement. Les transferts arrivant plus tard ne sont PAS crédités automatiquement.

Requête

curl -X POST https://api.tron.discount/account/recharge-address/regenerate \
  -H "X-Api-Key: tde_your_key_here"

Réponse

{
  "newAddress": "TAqM7b...pkTdZx",
  "oldAddress": "TQmZ1p...c8XA1",
  "oldAddressActiveUntil": "2027-03-10T10:00:00Z",
  "nextChangeAllowedAt": "2026-09-12T10:00:00Z"
}

Erreurs

Code HTTP code Signification
429 address_change_too_soon Moins d'un jour depuis le changement précédent. L'en-tête Retry-After indique combien de secondes attendre.
GET

/energy/order/api/{id}

Clé API

Description

Renvoie l'état d'une commande passée via l'API. Les commandes payées sur le solde n'ont pas de hachage de dépôt : elles sont donc identifiées par l'id renvoyé lors de l'acceptation.

Seules vos propres commandes sont visibles : un id appartenant à un autre compte renvoie 404.

Requête

curl -X GET https://api.tron.discount/energy/order/api/1024 \
  -H "X-Api-Key: YOUR_API_KEY"

Réponse

{
  "id": 1024,
  "clientOrderId": "order-2024-001",
  "status": "ResourcesDelegated",
  "receiveAddress": "TW7X17...uCntDs2",
  "resourceValue": 32000,
  "rentDurationInHours": 1,
  "chargedInSun": 1600000,
  "created": "2025-04-05T15:24:05.785059Z",
  "updated": "2025-04-05T15:24:41.120344Z"
}

Les valeurs d'état sont les mêmes que pour le dépôt, listées ci-dessus.

Notes supplémentaires

Authentification

Les points de terminaison GET pour les informations de la plateforme et les commandes par dépôt restent publics et ne nécessitent aucune clé. L'achat d'énergie sur le solde nécessite une clé API dans l'en-tête X-Api-Key.

Générer une nouvelle clé invalide immédiatement la précédente, et la clé n'est affichée qu'une seule fois.

Deux façons de commander

Envoyer des TRX à l'adresse de dépôt crée une commande implicitement, sans clé. Commander depuis un solde prépayé demande un seul appel d'API et aucun transfert on-chain. Les deux passent par la même chaîne de traitement et partagent les mêmes états.

Unités d'énergie et SUN

Rappelez-vous, 1 TRX = 1 000 000 SUN. Donc si energyUnitPriceInSun vaut 50, cela signifie 0.000050 TRX par unité d'énergie.

Création implicite de commande

Une « commande » est créée automatiquement chaque fois que des TRX sont envoyés à l'adresse de dépôt. Utilisez le hash de transaction du dépôt pour suivre le statut.

Heure du serveur

Les heures sont indiquées au format ISO 8601 (UTC). Tenez compte des fuseaux horaires lors de la comparaison avec les heures locales.