Explore the Developer Architecture Stratum V2 and ARM integration proposals

Bitcoin proof-of-work integration for phones, Pi-class devices, and ASIC fleets. Integration runs through the verified dashboard: signed releases, a documented stack, and connection details issued once your access is approved.

API proposal License to be published Deployment model in review

Access Status

Builders and integration teams can request access now. Public pages describe what is live today.

Configured onboarding
Verify an email to open your dashboard. Connection details are private and are issued there once your access is approved.
Alpha
Developer access is documented at the concept level while private interfaces remain gated.

Live today

One endpoint is live and keyless. Everything else on this page is proposed, and says so.

GET https://melanin.engineering/api/v1/miner/<chain>/<address>
Current mining statistics for one wallet address on one chain. No key, no signup.
The chain segment
The lowercase slug of a chain named on our public pages — btc for Bitcoin. The response echoes it as projectId. The chain is never guessed from the address.
One address per request
There is no endpoint that lists miners, and there will not be one. /api/v1/miner/<chain>/ with no address is a 404 like any other malformed request, and rig names are never returned.
Limits
Responses are cached for 60 seconds; anonymous requests are limited to 60 per 10 minutes per IP.
GET https://melanin.engineering/api/v1/miner/<address>
The same lookup without a chain segment: the permanent Bitcoin alias, identical in every byte to /api/v1/miner/btc/<address>. Existing integrations keep working unchanged.
Explorer share pages
The explorer separately publishes opt-in share profiles. A published profile shows the wallet address — the same figure the blockchain already carries — never rig names, and no route lists miners.

Response fields. Top level: address, projectId, observedAt (ISO 8601) and metrics. The projectId is the chain slug from the request, never an internal id.

Metrics: hashrate1m, hashrate5m, hashrate1h, hashrate1d, hashrate7d (H/s), shares, bestShare, bestEver, lastShareAt (ISO 8601). This list is frozen in code — a new field cannot appear without being deliberately added to the allow-list.

200 — address known to the pool (sample values, placeholder address)

{"ok": true,
 "address": "bc1qexampleexampleexampleexampleexampleq3v9k",
 "projectId": "btc",
 "observedAt": "2026-08-24T09:00:00Z",
 "metrics": {"hashrate1m": 98000000000000, "hashrate5m": 97400000000000,
             "hashrate1h": 96100000000000, "hashrate1d": 95800000000000,
             "hashrate7d": 94200000000000, "shares": 1284511,
             "bestShare": 8123456789, "bestEver": 21474836470,
             "lastShareAt": "2026-08-24T08:59:41Z"}}

404 — unknown or never-seen address (captured from production)

{"ok": false, "error": "not_found"}

The same body answers a malformed address, and a chain segment this platform does not name publicly. The endpoint deliberately does not reveal whether an address exists anywhere beyond this pool's own records, nor which chains exist here.

Proposed API Surface

None of the following is implemented. These route names reserve documentation space, and no client library has been published to any package registry.

GET /v1/status
Network status.
GET /v1/stats/public
Aggregate statistics.
POST /v1/device/register
Device registration.
GET /v1/earnings/{address}
Reserved for a future opt-in accounting view. No earnings or payout records exist behind it.

One endpoint is live and keyless today: GET /api/v1/miner/<chain>/<address>, with GET /api/v1/miner/<address> as its Bitcoin alias, documented in full in Live today at the top of this page. Client libraries are planned for Python and JavaScript, with Rust on a research track and Go a concept only.

Now, next, later

Now
Release notes and a simple stack diagram. Integration happens through the verified dashboard rather than a public API.
Next
A public RFC index and fuller reliability notes, once the service is ready to run them.
Later
Chaos-testing summaries, audit artifacts, public maintenance windows.

Proposed System Architecture

1

User Devices

Potential Click, Mobile, MSBX, and ASIC client classes

2

Edge / Network

Managed proxy and collaborative-network design. Connection details are private and are issued in an approved dashboard.

3

Blockchain

Rewards settle on-chain in the block’s own coinbase — 97% miner, 3% platform. Melanin holds no balances.

Planned protocol and connectivity

Encrypted
Stratum V2 is under consideration for a future encrypted connection path; no public path is enabled.
Efficient
A binary protocol can reduce bandwidth compared with JSON (Stratum V1); implementation remains future work.
Version Rolling
Version rolling is a protocol feature being evaluated for future clients.
Job Negotiation
Job negotiation is a future protocol consideration, not a currently exposed feature.
Edge Proxies
Local gateways are a future design option; none are publicly available.
Managed Defaults
Safe defaults and scheduling are design work; what ships lands in the release registry.

Where to go next

Onboarding, device planning and integration requests start in Support; energy feasibility is reviewed through Energy.

Support

Integration and onboarding questions

GitHub

Published repositories

Security

Responsible disclosure

FAQ

Common developer questions

Non-custodial by construction: your share is written into the block's own coinbase, 97/3 to miner and platform. Bitcoin is the public path and the pool is accepting work. Onboarding needs a verified email, private endpoints stay off public pages, and public code is reviewed before release.