Vous
Développeurs

API du pool

Tous les pools HeroMiners répondent au même ensemble d'endpoints HTTP en lecture seule. Pas de clé, pas de compte, pas d'inscription : vous demandez une URL et recevez du JSON, avec Access-Control-Allow-Origin: * défini pour qu'une page dans le navigateur puisse l'appeler directement. Utilisez-la pour créer un moniteur de rigs, une alerte de paiement, votre propre tableau de bord, ou pour importer les données du pool dans un tableur.

Saisissez votre adresse et tous les exemples ci-dessous sont prêts à être exécutés sur ce pool. Rien de ce que vous saisissez ici n'est envoyé ailleurs qu'au pool lui-même, et seulement quand vous cliquez sur Exécuter.

URL de base
https://quantus.herominers.com

Endpoints

GET /api/stats

Tout ce que le pool sait de lui-même en ce moment : hashrate du pool et du réseau, mineurs et workers connectés, le dernier bloc, les frais, les ports et les réglages de paiement.

Paramètres
address
Une adresse de paiement. Ajoute ce mineur dans miner, et dans solo_miner s'il mine aussi en solo. Sans elle, aucune des deux clés n'est envoyée.

C'est l'endpoint par lequel commencer. La page du pool, la page des mineurs et tous les graphiques de ce site sont construits à partir de lui.

Requête
curl "https://quantus.herominers.com/api/stats"
Réponse

Un objet avec pool, network, config, charts, lastblock, payments et visitors, le nombre de personnes sur le site en ce moment, sous la forme { windowMinutes, activeVisitors, activeLookups }. Il est recalculé une fois par cycle de statistiques, donc interroger plus souvent renvoie les mêmes chiffres.

GET /api/live_stats

Le même contenu que /api/stats, mais la requête reste ouverte jusqu'à la fin du prochain cycle de statistiques et ne reçoit sa réponse qu'à ce moment-là. Une requête par mise à jour au lieu d'interroger avec un minuteur.

Paramètres
address
Inclut un mineur dans le contenu, comme pour /api/stats.

Ouvrez une connexion et rouvrez-la quand elle répond. Plusieurs connexions ouvertes en même temps depuis la même IP sont refusées avec un 503, ne les multipliez donc pas.

Requête
curl "https://quantus.herominers.com/api/live_stats"
Réponse

La même forme que /api/stats, sauf que miner et solo_miner sont toujours envoyés, vides si aucune adresse n'a été indiquée. La requête reste ouverte jusqu'à un cycle de statistiques.

GET /api/stats_address

Un mineur : hashrate actuel et moyen, shares valides et périmés, solde, montant payé et les mêmes chiffres par worker.

Paramètres
addressobligatoire
L'adresse de paiement à consulter.
Requête
curl "https://quantus.herominers.com/api/stats_address"

Saisissez address ci-dessus pour exécuter celle-ci. La commande l'affiche car le pool renvoie une erreur sans lui.

Réponse

Un objet avec stats (les totaux du mineur), payments, charts, unlocked et workers, un tableau avec une entrée par worker identifiée par son name. Une adresse qui n'a jamais miné ici renvoie une erreur au lieu d'un mineur vide.

GET /api/get_blocks

Les blocs trouvés par le pool qui ne sont plus en attente : payés ou orphelins. status indique lequel.

Paramètres
heightobligatoire
Renvoie les blocs sous cette hauteur. Passez un nombre bien au-dessus de la pointe de la chaîne pour la page la plus récente, puis la hauteur la plus basse reçue pour remonter les pages.

L'adresse de celui qui a trouvé le bloc est masquée avant de quitter le pool, cet endpoint ne permet donc pas de collecter des adresses. time est en secondes Unix, reward est dans la plus petite unité de la cryptomonnaie, et un bloc solo porte un score de s0 s'il a été payé ou de s1 s'il est devenu orphelin.

Requête
curl "https://quantus.herominers.com/api/get_blocks?height=9999999999"
Réponse

Un tableau plat qui alterne valeur et hauteur : [block, height, block, height, ...]. Chaque bloc est séparé par des deux-points :

0hash1time2difficulty3shares4score5nonce6status7reward8finder9region10rewardScheme
GET /api/get_payments

Les paiements envoyés par le pool, pour tout le pool ou pour une adresse.

Paramètres
timeobligatoire
Renvoie les paiements antérieurs à cet horodatage Unix en secondes. Utilisez l'heure actuelle pour la page la plus récente, puis l'horodatage le plus ancien reçu pour remonter les pages.
address
Limite à une adresse de paiement. Sans elle, renvoie tous les paiements effectués par le pool.
limit
Le nombre à renvoyer. Il est plafonné à la taille de page du pool, donc un nombre plus grand renvoie simplement cette taille.
format
Passez parsed pour recevoir des objets { tx, amount, time } au lieu du tableau brut.
conversions
Avec address, passez 1 pour recevoir aussi l'enregistrement de conversion de chaque paiement de la page converti dans une autre cryptomonnaie. La réponse devient { payments, conversions }. Ignoré avec format=parsed.
Requête
curl "https://quantus.herominers.com/api/get_payments?time=1792922073"
Réponse

Sans format, un tableau plat qui alterne valeur et horodatage, où chaque valeur est txid:amount. Les montants sont des chaînes dans la plus petite unité de la cryptomonnaie et doivent rester des chaînes : les convertir en nombre fait perdre de la précision sur une chaîne à 18 décimales.

GET /api/get_miners_stats

Les dix plus gros mineurs du pool, ainsi que les répartitions par logiciel de minage et par région qui alimentent la page des mineurs.

Requête
curl "https://quantus.herominers.com/api/get_miners_stats"
Réponse

Un objet avec miners, agents, regions, regionHistory et statsDisplay. Les adresses sont masquées. Quand un panneau n'est pas activé, son tableau arrive vide et statsDisplay l'indique.

GET /api/get_blocks_search_config

Si la recherche de blocs est activée et les limites qu'une requête doit respecter, pour configurer un champ de recherche avant la première recherche.

Requête
curl "https://quantus.herominers.com/api/get_blocks_search_config"
Réponse

{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. Les longueurs sont en caractères, et frontendCooldownMs est le temps à attendre entre deux recherches.

GET /api/get_miner_payout_level

Le seuil de paiement actuellement défini pour une adresse, en unités entières de la cryptomonnaie.

Paramètres
addressobligatoire
L'adresse de paiement.

C'est le /api/set_miner_payout_level correspondant qui l'enregistre, et il n'est pas ouvert à tous : la requête doit venir de l'IP de minage de l'adresse elle-même. Cette vérification, et la limite de requêtes qui la précède, sont décrites dans l'onglet des réglages du tableau de bord, pas ici.

Requête
curl "https://quantus.herominers.com/api/get_miner_payout_level"

Saisissez address ci-dessus pour exécuter celle-ci. La commande l'affiche car le pool renvoie une erreur sans lui.

Réponse

{ status: "done", level }. Une adresse qui n'en a jamais défini reçoit le minimum du pool.

GET /api/miner_ban_status

L'avis de blocage que la page du mineur affiche pour une adresse, et tout message que l'opérateur lui a laissé.

Paramètres
addressobligatoire
L'adresse de paiement.
Requête
curl "https://quantus.herominers.com/api/miner_ban_status"

Saisissez address ci-dessus pour exécuter celle-ci. La commande l'affiche car le pool renvoie une erreur sans lui.

Réponse

{ banned, minerMessage } et, quand elle est bloquée, aussi blockMining, blockPayments et reason. C'est l'avis que la page du mineur affiche pour cette adresse : bloquée pour le minage, pour les paiements, ou ni l'un ni l'autre. minerMessage est le message de l'opérateur pour cette adresse, sous la forme { message, type, createdAt, expiresAt }, ou null s'il n'y en a pas.

Bien l'utiliser

  • Interrogez au rythme du pool. Les chiffres sont recalculés une fois par cycle de statistiques, et config.updateInterval dans la réponse de /api/stats indique sa durée, en secondes. Demander plus souvent renvoie la même réponse et consomme de la bande passante des deux côtés.
  • Préférez /api/live_stats à un minuteur rapide. Il répond dès qu'il y a du nouveau, ce qui est plus rapide pour vous et plus léger pour le pool qu'une interrogation à intervalles.
  • Stockez les montants sous forme de chaînes. Les récompenses et les soldes arrivent dans la plus petite unité de la cryptomonnaie. Sur une chaîne à 18 décimales, ces entiers dépassent ce qu'un nombre JavaScript peut stocker exactement, donc les convertir arrondit un paiement sans prévenir.
  • Attendez-vous à des adresses masquées. Les listes publiques masquent la partie centrale de chaque adresse. Votre adresse complète n'est utile qu'à vous, et seulement là où vous la saisissez vous-même.
  • Traitez une limite de requêtes comme une attente, pas comme un échec. Là où il y a une limite, la réponse inclut retryMs. Attendez ce délai et réessayez au lieu d'insister sans arrêt.
  • Dites qui vous êtes. Un User-Agent au nom de votre outil n'est pas obligatoire, mais il nous permet de vous prévenir d'un changement au lieu de vous laisser deviner ce qui est cassé.