RustMinerSystem

Documentation

PoolNode Project and Website Administration API

Embedded PoolNode project activation, ports, endpoints, website, TLS, certificate, template, and app configuration endpoints.

PoolNode Project and Website Administration API

These /api/poolnode/* endpoints are called by the RustMinerSystem administration UI. They are different from the PoolNode user-facing /api/user/* API and are intended for node owners.

PoolNode calls commonly return { status, error, data }. The UI extracts data and treats status: 4 as “project not activated.”

Project application and activation

Method Path Body/purpose
GET /api/poolnode/project/info Read project state, name, and coin fee configuration.
POST /api/poolnode/project/apply Apply with { name, token }.
POST /api/poolnode/project/active Activate with { code, token, captcha_token }.
POST /api/poolnode/project/unactive Deactivate the current project.

Deactivation clears project, fee, and port state in the frontend. Back up settlement and website data first.

Node ports and endpoints

Method Path Purpose
GET /api/poolnode/ports Read PoolNode ports.
POST /api/poolnode/port/new Create a port across node servers.
POST /api/poolnode/extra/{port} Change public mode and unified wallet for a listen port.
DELETE /api/port/{id} Delete a node port through the shared port endpoint.
GET /api/poolnode/endpoints Read regions/upstream node endpoints.
GET /api/poolnode/ping/{id} Measure endpoint latency.
GET /api/poolnode/project/stats?k={coin} Read statistics for one node currency.
GET /api/poolnode/sync/info Read sync success, failure, and detail data.

Some coin checks append ?k=KAS. A create body resembles the normal port payload and includes:

{
  "port": 3333,
  "name": "Pool Port",
  "currency": "PI-BTC",
  "pool_address": "<JSON string containing endpoint ID>",
  "mode": 1,
  "protocol": 0,
  "category": "poolnode",
  "proxy_addr": ""
}

Extra settings body:

{
  "mode": 1,
  "proxy_addr": "<public-mode wallet or subaccount>"
}

Website access

Method Path Request/purpose
GET /api/poolnode/index/port Read the website port.
POST /api/poolnode/index/port Change it with { "r": 8080 }.
GET /api/poolnode/route Read the website safe route.
POST /api/poolnode/route Change it with { "k": "route" }.
GET /api/poolnode/enable/index Read public-access state.
POST /api/poolnode/enable/index/{flag} Toggle public access; the backend flag is inverted relative to the UI boolean.
GET /api/poolnode/index/tls Read TLS state.
POST /api/poolnode/index/tls/{flag} Set TLS state.

Port, route, and TLS changes can restart the service. Be ready to reconnect to the new URL.

Website certificate

Method Path Purpose
GET /api/poolnode/cert Read the current certificate type.
POST /api/poolnode/cert/upload Upload the website PEM certificate and private key.
POST /api/poolnode/cert/reset Restore the bundled website certificate.

The upload body is { pem, key }; both values are Base64-encoded UTF-8 text.

Branding and templates

Method Path Purpose
GET /api/poolnode/webconfig Read name, logo, notice, and branding data.
POST /api/poolnode/webconfig Save website configuration.
GET /api/poolnode/pool/asset/selected Read the active template.
GET /api/poolnode/pool/assets Read all available templates.
GET /api/poolnode/pool/asset/status Read template download state.
POST /api/poolnode/pool/asset Select a template.
POST /api/poolnode/pool/asset/reset Restore the default template.

Website configuration is a Base64-encoded JSON document:

{
  "k": "<Base64(JSON.stringify(config))>"
}

Template selection:

{
  "asset_id": 1,
  "item_id": 2
}

App communication configuration

Method Path Purpose
GET /api/poolnode/project/url Read app API URL, name, and invitation code.
POST /api/poolnode/project/url Save the app communication URL.
{
  "api_url": "https://pool.example.com/safe-route",
  "refresh": 0
}