Elke HeroMiners-pool beantwoordt dezelfde set alleen-lezen HTTP-endpoints. Er is geen sleutel, geen account en geen registratie: vraag een URL op en u krijgt JSON terug, met Access-Control-Allow-Origin: * ingesteld zodat een pagina in een browser de API direct kan aanroepen. Gebruik haar voor een rigmonitor, een melding bij uitbetalingen, een eigen dashboard, of om de pool in een spreadsheet te halen.
Elke coin heeft een eigen pool met eigen cijfers en een eigen adresformaat, dus kies eerst de coin en vul een adres in voor die coin. Wat u hier typt, wordt nergens anders heen gestuurd dan naar de pool zelf, en alleen wanneer u op Uitvoeren drukt.
Basis-URL
https://alephium.herominers.com
Endpoints
GET/api/stats
Alles wat de pool op dit moment over zichzelf weet: pool- en netwerkhashrate, verbonden miners en workers, het laatste blok, kosten, poorten en de uitbetalingsinstellingen.
Parameters
address
Een uitbetalingsadres. Voegt die miner toe onder miner, en onder solo_miner als hij ook solo mint. Laat u het weg, dan wordt geen van beide sleutels verstuurd.
Dit is het endpoint om mee te beginnen. De poolpagina, de minerspagina en elke grafiek op deze site worden ermee opgebouwd.
Verzoek
curl "https://alephium.herominers.com/api/stats"
Antwoord
Een object met pool, network, config, charts, lastblock, payments en visitors, hoeveel mensen er nu op de site zijn, als { windowMinutes, activeVisitors, activeLookups }. Wordt eenmaal per statistiekcyclus opnieuw berekend, dus vaker opvragen geeft dezelfde cijfers.
GET/api/live_stats
Dezelfde gegevens als /api/stats, maar het verzoek blijft open tot de volgende statistiekcyclus klaar is en wordt dan beantwoord. Een verzoek per update in plaats van opvragen op een timer.
Parameters
address
Een miner in het antwoord opnemen, zoals bij /api/stats.
Open een verbinding en open haar opnieuw zodra ze antwoordt. Meerdere tegelijk open verbindingen vanaf hetzelfde IP worden met een 503 geweigerd, dus open er niet meerdere tegelijk.
Dezelfde vorm als /api/stats, behalve dat miner en solo_miner altijd worden verstuurd, leeg als er geen adres is opgegeven. Het verzoek blijft tot een statistiekcyclus lang open.
GET/api/stats_address
Een miner: huidige en gemiddelde hashrate, geldige shares en stale shares, saldo, uitbetaald bedrag, en dezelfde cijfers per worker.
Vul hierboven address in om dit verzoek uit te voeren. Het commando toont het, omdat de pool zonder deze waarde met een foutmelding antwoordt.
Antwoord
Een object met stats (de totalen van de miner), payments, charts, unlocked en workers, een array met een item per worker, benoemd met zijn name. Een adres dat hier nooit heeft gemined, krijgt een foutmelding in plaats van een lege miner.
GET/api/get_blocks
Blokken die de pool heeft gevonden en die niet meer openstaan: uitbetaald, of orphan. status zegt welke.
Parameters
heightverplicht
Geeft blokken onder deze hoogte terug. Geef voor de nieuwste pagina een getal ver boven de top op, en daarna de laagste hoogte die u kreeg om terug te bladeren.
Het adres van de vinder wordt gemaskeerd voordat het de pool verlaat, dus met dit endpoint kunnen geen adressen worden verzameld. time is in Unix-seconden, reward in de kleinste eenheid van de coin, en een soloblok heeft een score van s0 als het is uitbetaald of s1 als het een orphan block werd.
Uitbetalingen die de pool heeft verstuurd, voor de hele pool of voor een adres.
Parameters
timeverplicht
Geeft uitbetalingen terug van voor deze Unix-tijdstempel in seconden. Gebruik de huidige tijd voor de nieuwste pagina, en daarna de oudste tijdstempel die u kreeg om terug te bladeren.
address
Beperken tot een uitbetalingsadres. Laat weg voor elke uitbetaling die de pool heeft gedaan.
limit
Hoeveel er worden teruggegeven. Begrensd op de paginagrootte van de pool, dus een groter getal geeft gewoon die grootte.
format
Geef parsed op om { tx, amount, time }-objecten te krijgen in plaats van de ruwe array.
conversions
Geef met address ook 1 op om de omzettingsgegevens te krijgen van elke uitbetaling op de pagina die naar een andere coin is omgezet. Het antwoord wordt dan { payments, conversions }. Wordt genegeerd met format=parsed.
Zonder format een platte array die afwisselend waarde en tijdstempel bevat, waarbij elke waarde txid:amount is. Bedragen zijn strings in de kleinste eenheid van de coin en moeten strings blijven: wie er een als getal parset, verliest precisie op een chain met 18 decimalen.
GET/api/get_miners_stats
De tien grootste miners van de pool, plus de verdeling per miningsoftware en per regio achter de minerspagina.
Een object met miners, agents, regions, regionHistory en statsDisplay. Adressen zijn gemaskeerd. Is een paneel niet ingeschakeld, dan komt zijn array leeg terug en zegt statsDisplay dat.
GET/api/get_blocks_search
Doorzoek de blokken van de pool op hoogte, blokhash of adres van de vinder, in openstaande en uitbetaalde blokken tegelijk.
Parameters
qverplicht
Een hoogte, een blokhash of een adres.
offset
Sla zoveel resultaten over. Het antwoord bevat hasMore, zodat u weet of u opnieuw moet vragen.
Zoeken is per IP begrensd, en wie daarboven komt, krijgt rateLimited met de exacte wachttijd in retryMs in plaats van een kale foutmelding. Roep eerst /api/get_blocks_search_config aan om de lengtegrenzen te kennen en te weten of zoeken wel is ingeschakeld.
Vul hierboven q in om dit verzoek uit te voeren. Het commando toont het, omdat de pool zonder deze waarde met een foutmelding antwoordt.
Antwoord
Een object met pending en matured, beide afwisselend waarde en hoogte zoals /api/get_blocks, plus totalMatched, offset, limit en hasMore. Een matured-blok heeft het formaat van /api/get_blocks; een pending-blok wacht nog op rijping en gebruikt het langere formaat voor openstaande blokken, dus zijn velden staan in een andere volgorde.
GET/api/get_blocks_search_config
Of zoeken naar blokken is ingeschakeld, en binnen welke grenzen een zoekopdracht moet passen, zodat een zoekveld vóór de eerste zoekopdracht kan worden ingesteld.
{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. De lengtes zijn in tekens, en frontendCooldownMs is hoe lang u tussen twee zoekopdrachten moet wachten.
GET/api/get_miner_payout_level
De uitbetalingsdrempel die momenteel voor een adres is ingesteld, in hele coins.
Parameters
addressverplicht
Het uitbetalingsadres.
Het bijbehorende /api/set_miner_payout_level schrijft haar, en dat staat niet voor iedereen open: het verzoek moet komen van het eigen mining-IP van het adres. Die controle, en de limiet die ervoor staat, worden beschreven op het tabblad Instellingen van het dashboard, niet hier.
Vul hierboven address in om dit verzoek uit te voeren. Het commando toont het, omdat de pool zonder deze waarde met een foutmelding antwoordt.
Antwoord
{ banned, minerMessage }, en bij een blokkade ook blockMining, blockPayments en reason. Het is de melding die de minerpagina voor dit adres toont: geblokkeerd voor minen, voor uitbetalingen, of voor geen van beide. minerMessage is het bericht van de beheerder aan dit adres, als { message, type, createdAt, expiresAt }, of null als er geen is.
Goed gebruik
Vraag op in het tempo van de pool. De cijfers worden eenmaal per statistiekcyclus opnieuw berekend, en config.updateInterval in het antwoord van /api/stats zegt hoeveel seconden dat is. Vaker vragen geeft hetzelfde antwoord en kost ons allebei bandbreedte.
Gebruik liever /api/live_stats dan een snelle timer. Het antwoordt zodra er iets nieuws is, wat voor u sneller is en voor de pool lichter dan steeds opvragen.
Bewaar bedragen als strings. Beloningen en saldi komen terug in de kleinste eenheid van de coin. Op een chain met 18 decimalen gaan die gehele getallen voorbij wat een JavaScript-getal exact kan bevatten, dus wie er een parset, rondt ongemerkt een uitbetaling af.
Reken op gemaskeerde adressen. Openbare lijsten verbergen het midden van elk adres. Uw eigen volledige adres hebt alleen u nodig, en alleen waar u het zelf opgeeft.
Behandel een limiet als wachten, niet als fout. Waar een limiet geldt, bevat het antwoord retryMs. Wacht zo lang en probeer het opnieuw, in plaats van te blijven bestoken.
Zeg wie u bent. Een User-Agent die uw tool noemt, is niet verplicht, maar dan kunnen we u over een wijziging vertellen in plaats van te moeten raden wat er stuk ging.