Tú
Desarrolladores

API del pool

Todos los pools de HeroMiners responden al mismo conjunto de endpoints HTTP de solo lectura. No hay clave, ni cuenta, ni registro: pides una URL y recibes JSON, con Access-Control-Allow-Origin: * definido para que una página en el navegador pueda llamarla directamente. Úsala para crear un monitor de rigs, un aviso de pagos, tu propio panel o para llevar los datos del pool a una hoja de cálculo.

Introduce tu dirección y todos los ejemplos de abajo quedan listos para ejecutarse contra este pool. Nada de lo que escribas aquí se envía a otro sitio que no sea el propio pool, y solo cuando pulses Ejecutar.

URL base
https://quantus.herominers.com

Endpoints

GET /api/stats

Todo lo que el pool sabe de sí mismo en este momento: hashrate del pool y de la red, mineros y workers conectados, el último bloque, comisiones, puertos y la configuración de pagos.

Parámetros
address
Una dirección de pago. Añade ese minero en miner, y en solo_miner si también mina en solitario. Sin ella, no se envía ninguna de las dos claves.

Este es el endpoint por el que empezar. La página del pool, la página de mineros y todos los gráficos de este sitio se construyen a partir de él.

Petición
curl "https://quantus.herominers.com/api/stats"
Respuesta

Un objeto con pool, network, config, charts, lastblock, payments y visitors, cuántas personas hay en el sitio ahora mismo, como { windowMinutes, activeVisitors, activeLookups }. Se recalcula una vez por ciclo de estadísticas, así que consultar más rápido que eso devuelve las mismas cifras.

GET /api/live_stats

El mismo contenido que /api/stats, pero la petición se mantiene abierta hasta que termina el siguiente ciclo de estadísticas y solo entonces se responde. Una petición por actualización en lugar de consultar con un temporizador.

Parámetros
address
Incluye un minero en el contenido, como en /api/stats.

Abre una conexión y vuelve a abrirla cuando responda. Varias abiertas a la vez desde la misma IP se rechazan con un 503, así que no las multipliques.

Petición
curl "https://quantus.herominers.com/api/live_stats"
Respuesta

La misma forma que /api/stats, salvo que miner y solo_miner se envían siempre, vacíos cuando no se indicó ninguna dirección. La petición permanece abierta hasta un ciclo de estadísticas.

GET /api/stats_address

Un minero: hashrate actual y medio, shares válidos y obsoletos, saldo, importe pagado y las mismas cifras por worker.

Parámetros
addressobligatorio
La dirección de pago que consultar.
Petición
curl "https://quantus.herominers.com/api/stats_address"

Introduce address arriba para ejecutar este. El comando lo muestra porque el pool responde con un error sin él.

Respuesta

Un objeto con stats (los totales del minero), payments, charts, unlocked y workers, un array con una entrada por worker identificada por su name. Una dirección que nunca ha minado aquí responde con un error en lugar de un minero vacío.

GET /api/get_blocks

Bloques encontrados por el pool que ya no están pendientes: pagados o huérfanos. status indica cuál.

Parámetros
heightobligatorio
Devuelve bloques por debajo de esta altura. Pasa un número muy por encima de la punta de la cadena para la página más reciente y, después, la altura más baja recibida para retroceder páginas.

La dirección de quien encontró el bloque se enmascara antes de salir del pool, así que este endpoint no sirve para recopilar direcciones. time está en segundos Unix, reward está en la unidad más pequeña de la moneda, y un bloque en solitario lleva un score de s0 cuando se pagó o s1 cuando quedó huérfano.

Petición
curl "https://quantus.herominers.com/api/get_blocks?height=9999999999"
Respuesta

Un array plano que alterna valor y altura: [block, height, block, height, ...]. Cada bloque va separado por dos puntos:

0hash1time2difficulty3shares4score5nonce6status7reward8finder9region10rewardScheme
GET /api/get_payments

Pagos enviados por el pool, de todo el pool o de una dirección.

Parámetros
timeobligatorio
Devuelve pagos anteriores a esta marca de tiempo Unix en segundos. Usa la hora actual para la página más reciente y, después, la marca de tiempo más antigua recibida para retroceder páginas.
address
Limita a una dirección de pago. Sin ella, devuelve todos los pagos que ha hecho el pool.
limit
Cuántos devolver. Se limita al tamaño de página del propio pool, así que un número mayor simplemente devuelve ese tamaño.
format
Pasa parsed para recibir objetos { tx, amount, time } en lugar del array en bruto.
conversions
Con address, pasa 1 para recibir también el registro de conversión de cada pago de la página que se convirtió a otra moneda. La respuesta pasa a ser { payments, conversions }. Se ignora con format=parsed.
Petición
curl "https://quantus.herominers.com/api/get_payments?time=1792922073"
Respuesta

Sin format, un array plano que alterna valor y marca de tiempo, donde cada valor es txid:amount. Los importes son strings en la unidad más pequeña de la moneda y deben seguir siendo strings: convertirlos a número pierde precisión en una cadena con 18 decimales.

GET /api/get_miners_stats

Los diez mayores mineros del pool, más los desgloses por programa de minería y por región que alimentan la página de mineros.

Petición
curl "https://quantus.herominers.com/api/get_miners_stats"
Respuesta

Un objeto con miners, agents, regions, regionHistory y statsDisplay. Las direcciones van enmascaradas. Cuando un panel no está activado, su array llega vacío y statsDisplay lo indica.

GET /api/get_blocks_search_config

Si la búsqueda de bloques está activada y los límites que debe cumplir una consulta, para poder configurar un cuadro de búsqueda antes de la primera búsqueda.

Petición
curl "https://quantus.herominers.com/api/get_blocks_search_config"
Respuesta

{ enabled, minQueryLength, maxQueryLength, frontendCooldownMs }. Las longitudes son en caracteres, y frontendCooldownMs es cuánto esperar entre dos búsquedas.

GET /api/get_miner_payout_level

El umbral de pago definido actualmente para una dirección, en monedas enteras.

Parámetros
addressobligatorio
La dirección de pago.

El /api/set_miner_payout_level correspondiente es el que lo guarda, y no está abierto a cualquiera: la petición tiene que venir de la propia IP de minería de la dirección. Esa comprobación, y el límite de peticiones que la precede, se describen en la pestaña de ajustes del panel, no aquí.

Petición
curl "https://quantus.herominers.com/api/get_miner_payout_level"

Introduce address arriba para ejecutar este. El comando lo muestra porque el pool responde con un error sin él.

Respuesta

{ status: "done", level }. Una dirección que nunca ha definido uno recibe el mínimo del pool.

GET /api/miner_ban_status

El aviso de bloqueo que la página del minero muestra para una dirección, y cualquier mensaje que el operador le haya dejado.

Parámetros
addressobligatorio
La dirección de pago.
Petición
curl "https://quantus.herominers.com/api/miner_ban_status"

Introduce address arriba para ejecutar este. El comando lo muestra porque el pool responde con un error sin él.

Respuesta

{ banned, minerMessage } y, cuando está bloqueada, también blockMining, blockPayments y reason. Es el aviso que la página del minero muestra para esta dirección: bloqueada para minar, para recibir pagos, o ninguna de las dos. minerMessage es el mensaje del operador para esta dirección, como { message, type, createdAt, expiresAt }, o null cuando no hay ninguno.

Cómo usarla bien

  • Consulta al ritmo del propio pool. Las cifras se recalculan una vez por ciclo de estadísticas, y config.updateInterval en la respuesta de /api/stats indica cuánto dura, en segundos. Pedir más a menudo devuelve la misma respuesta y gasta ancho de banda por ambos lados.
  • Prefiere /api/live_stats a un temporizador rápido. Responde en cuanto hay algo nuevo, lo que es más rápido para ti y más ligero para el pool que consultar a intervalos.
  • Guarda los importes como strings. Las recompensas y los saldos llegan en la unidad más pequeña de la moneda. En una cadena con 18 decimales, esos enteros superan lo que un número de JavaScript puede guardar con exactitud, así que convertirlos redondea un pago sin avisar.
  • Cuenta con direcciones enmascaradas. Los listados públicos ocultan la parte central de cada dirección. Tu dirección completa solo la necesitas tú, y solo donde tú mismo la indicas.
  • Trata un límite de peticiones como una espera, no como un fallo. Donde hay un límite, la respuesta incluye retryMs. Espera ese tiempo y vuelve a intentarlo en lugar de insistir sin parar.
  • Di quién eres. Un User-Agent con el nombre de tu herramienta no es obligatorio, pero nos permite avisarte de un cambio en lugar de que tengas que adivinar qué se ha roto.