NexusPool

NexusPool 0.10.26.5: The Best Solo Bitcoin Pool We Have Ever Made

NexusPool 0.10.26.5, the best Solo Bitcoin Pool we have ever made: five places from rig to block, all changed since 0.9.26. 0% fee on the Bitcoin pool.

NexusPool v0.10.26.5: five changes on the path to a block. Five numbered stations lead to a highlighted green block, and Tess stands at the right looking out at you.

NexusPool 0.10.26.5 · non-custodial Bitcoin solo mining pool · changelog dated 2026-09-29 · Bitcoin pool read 2026-09-30 at 18:43 UTC

We set out to build the best solo mining pool on the market. NexusPool 0.10.26.5 is the best NexusPool we have ever made, and this is the release where we say it out loud. Rig to block. Five places. All changed since 0.9.26.

If your rig solves a block, the pool journals it, then sends it to each configured node until one answers. A reject counts as an answer. The fee is 0%, and the coinbase of a found block pays your address. The Bitcoin pool reports 0.10.26.5. We are not asking for faith: the fee and the coinbase take a minute to check, and the checks start below. The changelog lists all 21 public changes.

The Bitcoin pool reports 0.10.26.5 (read 2026-09-30 at 18:43 UTC)Stratum V1 and Stratum V2Nothing to install on your rig

0% feeThe coinbase of a found block pays your addressBitcoin pool · the pool holds no balance · read it in Payout Preflight
0installsOn your rig. NexusPool 0.10.26.5 is pool-side software: you install nothingBitcoin pool · your address and payout stay as they are · the rented-rig rule has its own section
1portTwo protocols. Stratum V1 and encrypted Stratum V2 share solo.nexuspool.io:3350Bitcoin pool · Stratum V1 and encrypted Stratum V2 on the shared port

Rig to block: five places changed since 0.9.26

The road from your rig to a block is where a pool does its work. NexusPool 0.10.26.5 changes five places on it, and several were already running in production before the changelog date.

  1. Work starts at the block headerYour rig gets work when the node logs a header, before the node finishes checking the block.
  2. Stratum V1 version bits, read three waysThe pool reads each share three ways and lets proof of work choose.
  3. Late winning shares still get a block testA winning share that arrives after the pool replaced its job gets tested as a block, on Stratum V1 and Stratum V2.
  4. A found block is retried until a node answersThe pool journals the block, sends it to each configured node and keeps going until one answers.
  5. The first bytes decide: Stratum V1 or Stratum V2One port, two protocols. The pool decides from a connection's opening bytes and reads on while it cannot tell.

One payout rule changes too, for rented rigs on Stratum V1. The rented-rig section has the rule.

Four checks you can run today

NexusPool 0.10.26.5 is pool-side software for the Bitcoin pool. You change nothing on your rig. Your old pool address still works, and so does a TLS address. New rigs can point at solo.nexuspool.io:3350.

  • Your rig's own log shows the reason the pool gives for a refused share, such as job not found, if the firmware logs it.
  • Payout Preflight rebuilds the coinbase the pool would build for the address you type.
  • The version feed names the release the Bitcoin pool runs. The live section has the command.
  • The Latency Check page lists the dated Frankfurt timings and offers a probe, np-stratum-probe.py, that times the first notification on a new connection, from your network. The probe is 14,442 bytes. Read it before you run it.

The changelog lists the rest of the 21.

Work starts at the block header

With header-first on, the pool gives rigs a first job the moment the node logs a new block's header. The node is still validating the block. The work does not wait for it.

NODE POOL HEADER LOGGED VALIDATION DONE NODE VALIDATES THE BLOCK WORK READY BEFORE VALIDATION ENDS SUBSIDY-ONLY FIRST JOB JOBS WITH TXS IF A RIG SOLVES THE FIRST JOB HELD WHILE THE NODE CHECKS ITS PARENT IF PARENT VALIDATES IF PARENT INVALID IF HEIGHT TAKEN IF WAIT TIMES OUT IF HOLD IS FULL IF POOL SHUTS DOWN RELEASED DROPPED NODE ASKED ABOUT PARENT RELEASED, NO RULING WRITTEN TO THE JOURNAL
Header first. The pool gives rigs a subsidy-only first job while the node is still validating. A block solved on that job waits in memory until the node rules on its parent, with the exits shown.

Header-first takes the node's validation time out of the wait for work. The first job holds no transactions, so a block solved on it pays the subsidy (the new bitcoin a block creates). Jobs with transactions follow; line 2 of the release map describes the fee-paying one.

Header-first, timed in Frankfurt: 162 of 162 blocks

A loud claim is cheap. Here is the stopwatch.

0.49msMedian from the node logging a block header to fresh work readyFrankfurt · 162 mainnet blocks observed · 10 to 11 September 2026
205msMedian lead over the node's own validationFrankfurt · 162 of 162 blocks had work ready before validation ended · 10 to 11 September 2026
2.1msSlowest of the 162 observed blocksFrankfurt · 10 to 11 September 2026

The clock ran inside one Frankfurt server, from the node logging the header to fresh work ready. Even the slowest of the 162 blocks had work ready before the node finished validating. We printed that one too.

How a block solved on early work is handled

A block solved on early work can sit on a parent the node has not finished checking. The pool holds it in memory until the node rules on that parent. A valid parent releases the block, and an invalid parent drops it. A full hold or a pool shutdown releases it without a ruling; at shutdown the block goes to the journal for the next start to send. If a different block takes the height, or a default wait runs out, the pool asks the node for the parent's status. An invalid answer drops the block, and any other answer, or none, releases it.

Without header-first

Rigs started on a new block after the node finished checking it.

With header-first on

Rigs start when the node logs the header. The first job holds no transactions.

What you can see

The Latency Check page lists the dated Frankfurt figures, and its probe times the first notification on a new connection from your network.

Stratum V1 version bits, read three ways

On Stratum V1, the pool reads a share's version bits three ways and lets proof of work choose. The reading whose header forms a block wins; with no block, the one that meets the credit target does.

STRATUM V1 ONLY SHARE BIP 310 LAYOUT XOR DELTA OR TARGET CHECK NOW IF THEY DIFFER = = SAME HEADER FORMS A BLOCK WINS OVER NON-BLOCK CREDIT TARGET ONLY USED IF NO BLOCK
One Stratum V1 share, three readings of its version bits. If the readings differ, the reading whose header forms a block wins; with no block, the one that meets the credit target does.

Rigs roll version bits in different ways. The pool reads each Stratum V1 share with the BIP 310 layout, with an XOR delta and with an OR, and builds the header each reading gives. If the readings disagree, the pool uses the one whose header meets the credit target (the difficulty a share must meet to count), and a reading that forms a block wins over one that does not.

BIP 320 reserves version bits 13 to 28 for general use and asks soft forks not to signal there, so the three-way reading covers the case where a job version ever carries a bit in that range. The reading has run on the Bitcoin pool since 2026-09-19.

Late winning shares still get a block test

With the job archive on, a winning share that arrives after the pool replaced its job gets a block test before any stale answer, on Stratum V1 and Stratum V2.

LATE SHARE · ARCHIVE ON NO SHARE CREDIT SHARE REBUILT BLOCK? JOURNAL, SUBMIT REFUSED RECONNECT · V1 · ARCHIVE ON NO SHARE CREDIT SHARE ARCHIVE 1 MATCH? JOURNAL, SUBMIT NOT DELIVERED
Two paths through the job archive: a late winning share, and a Stratum V1 rig that resends its winning share after reconnecting. Both can end in a block submission. Neither gets share credit. Dashed outlines mark outcomes that depend on a rig sending a share.

We keep a replaced job's block contents for a bounded time. The pool rebuilds a late winning share against the header the rig mined and tests it against the network target. A block that passes goes to the journal and out to the nodes. Stratum V2 rigs get the same test on their own connection.

A late share gets no share credit: the test is for blocks, and a share that is not a block is refused as before, with job not found or job credit expired. On Stratum V2 the rig receives stale-share even when the pool sends the block.

A Stratum V1 rig that loses its connection after solving a block can deliver it after it reconnects, if it sends the winning share again. The pool searches its archived jobs for the one whose rebuilt header meets the block target and delivers the block when the match is unambiguous. That block goes to the journal and out to the nodes. The block pays the address its archived job was built for, and the returning rig gets no share credit.

Before (archive off)

A winning share for a replaced job met a refusal such as job not found, with no block test.

Now

With the archive on, the pool tests that share as a block before it answers stale.

What you can see

A refused late share shows job not found or job credit expired in your rig's log, if the firmware logs it.

A found block is retried until a node answers

Before the pool sends a block, it journals the block on disk. It then sends it to each configured node until one answers. A reject counts as an answer.

BLOCK READY TO SEND SINGAPORE: ITS OWN NODE JOURNAL ON DISK LOS ANGELES CHICAGO FRANKFURT THREE NODES ANSWER? NO ACCEPT REJECT ROUNDS END BACK IN THE QUEUE ANOTHER ROUND
Journal first, then the nodes. Any answer, accept or reject, ends the retrying. Silence sends the block back to the queue for another round.

Journal first. Every configured node at once. Another round until one answers. The Los Angeles, Chicago and Frankfurt regions send the block to the three Bitcoin Core nodes in those cities in parallel; Singapore sends it to its own node. Any answer, accept or reject, stops the retrying. Without an answer, the block goes back in the queue for another round. The retry does not give up. It runs until a node answers. If the journal write fails, the pool raises an alarm and the block still goes out.

Before

A block found while a node was starting up could be recorded as rejected.

Now

The pool journals that block and retries it until a node answers.

What you can see

After a find, a block explorer shows the block. Payout Preflight shows the coinbase the pool would build for an address, which tells you where the reward would land.

The first bytes decide: Stratum V1 or Stratum V2

The pool decides Stratum V1 or Stratum V2 from a connection's opening bytes, so a Stratum V2 handshake that opens with a brace is no longer mistaken for Stratum V1.

BEFORE NOW FIRSTBYTES STARTSWITH {? FIRSTBYTES NOT {? READ ON:JSON LINE? STRATUM V2 STRATUM V2 STRATUM V1 KEEP READING V1: READ OK V2: WAITS YES NO YES NO YES NO CANNOT TELL YET STRATUM V1 AND V2 SHARE ONE PORT
Before, an opening brace meant Stratum V1, so a Stratum V2 handshake that began with one waited until it timed out. Now the pool decides from the opening bytes and reads on while it cannot tell.

One port. Two protocols. The first bytes decide. Stratum V1 and encrypted Stratum V2 share solo.nexuspool.io:3350 on the Bitcoin pool, so the pool tells them apart from what a connection sends first. An opening byte other than { means Stratum V2. A connection that opens with { gets a longer look: the pool reads on to see whether the first line is a JSON request, and keeps reading while it cannot decide.

A Stratum V2 handshake begins with a random-looking byte. When that byte happened to be the brace character, the pool read the connection as Stratum V1 and left it waiting until it timed out. Rigs retry, so the effect was an intermittent delay before a connection came up.

Before

The pool read any opening brace as Stratum V1.

Now

The pool reads a brace as a prompt to look further, and decides from the opening bytes.

Rented rigs: payout follows the last authorized address

Renting on Stratum V1? On the Bitcoin pool, the reward goes to the last address your rig authorizes, from the next job.

Check which address your rental authorizes last. If your rental sends one address on each connection, nothing changed for you. If it authorizes another address on the same connection, the reward now goes to the one authorized last, the one the pool displays. Before, the payout stayed on the first address a connection authorized. A job already handed out keeps the address the pool built it with. The fee stays at 0%.

What you can see

After a block exists, read its coinbase in a block explorer. The signed block receipt, listed on Glass Ledger, carries the coinbase transaction id, which an explorer resolves.

What stays the same in NexusPool 0.10.26.5

The Bitcoin pool reports 0.10.26.5. Ask it which release it runs.

On 2026-09-30 at 18:43 UTC we read version 0.10.26.5 from the Bitcoin pool's public feed, and the changelog page marks the entry Current.

Ask the pool yourself:

curl -s https://nexuspool.io/api/pool | grep -o '"version":"[^"]*"'

At the time we read it, the output was "version":"0.10.26.5". The Bitcoin Cash and Litecoin/Dogecoin pools run their own releases (0.8.26.14).

Straight answers about NexusPool 0.10.26.5

What is NexusPool 0.10.26.5?

NexusPool is a non-custodial Bitcoin solo mining pool. NexusPool 0.10.26.5 is its Bitcoin pool release, with a changelog dated 2026-09-29 that lists 21 public changes. Five of them sit on the road from a rig to a block: where work starts, version bits, late winning shares, found-block delivery and the first bytes of a connection.

Is NexusPool the best solo mining pool?

We think so, and we say it plainly. Our bar is the whole road from your rig to a block. The checks are on the page: 0% fee, a coinbase you can read before you mine, five places changed, one changelog.

Why should I believe NexusPool 0.10.26.5?

Believe what you can check. Paste your address into Payout Preflight and read the coinbase. Run the version command and read 0.10.26.5. Count the 21 lines on the changelog. A loud claim with its proof beside it is the deal.

Did anything change for rented rigs?

Yes, for a Stratum V1 connection that authorizes a second address. The rented-rig section has the rule.

What happens to a block my rig finds while a node is down?

The pool journals the block before it sends it, then retries until a node answers, including a block found while a node starts up. Station 4 has the detail.

How soon does the pool have fresh work after a new block?

With header-first on, fresh work was ready a median 0.49 ms after the node logged the block header, timed inside one Frankfurt server (162 mainnet blocks observed, 10 to 11 September 2026). The first job holds no transactions. The Latency Check probe times a new connection to its first job from your network.

All 21 changes in NexusPool 0.10.26.5, line by line

Count them on the changelog. It prints its lines without numbers, so the numbers below follow its print order. Six lines link to their station, and one links to the rented-rig section.

LineChange in plain wordsWho sees it
1Header-first. With header-first on, rigs start on a new block the moment the node logs its header. Station 1Solo minerOperator
2Fee-paying job. Where this rebuild is enabled, the pool publishes a fee-paying job from the previous template once the node has connected a block, while it builds the full template. The pool skips only the wait for a fresh template.Solo minerOperator
3Late solutions. With the job archive on, a late winning share gets a block test on Stratum V1 and Stratum V2. Station 3Solo miner
4Reconnections. With the job archive on, a Stratum V1 rig can deliver a block after it reconnects, if it resends the winning share. Station 3Solo minerRented rig
5Block delivery. The pool retries a found block until a node answers. Station 4Solo minerOperator
6Queued once. The pool remembers the last 64 blocks it queued (a block released from the header-first hold is not counted) and answers a repeat solution for one of them as a duplicate share, with no second journal line or submission.Operator
7Share limit. A block, or a share at or above the difficulty the pool served the rig, no longer counts toward the default limit of 200 submissions per second per connection, so a very fast rig is not stopped before the pool tests its block.Solo minerRented rig
8Stratum V2 difficulty tuning. Stratum V2 shares count at the difficulty the rig mined them at, so a difficulty change no longer overshoots.Stratum V2 developerOperator
9First bytes. One port, two protocols: the pool tells Stratum V1 from Stratum V2 by the first bytes. Station 5Stratum V2 developerSolo miner
10Stratum V2 error names. Three share-refusal names changed to duplicate-share, invalid-non-rollable-version-bit and bad-extranonce-size.Stratum V2 developer
11Version rolling. The pool reads Stratum V1 version bits three ways and keeps the reading whose header meets the credit target. Station 2Solo minerOperator
12Long usernames. A 62-character taproot address plus a worker name now connects and mines: the pool accepts usernames up to 255 bytes.Solo minerRented rig
13Refused shares. Operator telemetry records refused shares under their cause (duplicate, timestamp, bad submit, or the pool lacking the capacity to check the share) instead of one generic reason. The pool's own capacity limits no longer count against a rig, and the share-rate ceiling keeps its own counter.Operator
14Rented-rig payouts. On the Bitcoin pool, for Stratum V1 connections, the reward goes to the address a rig authorized last, from the next job. Rented rigsRented rigSolo miner
15Chain watch. The pool raises an alarm when its node's chain stops advancing: by default, after 30 minutes without a new block when the node reports no peers, or after 90 minutes whatever the peer count.Operator
16Restart and share-check fixes. Two fixes land on this line: one about work space in use across a restart, and one about a share check that could not run.Operator
17Declared job origin. A declared job is one where the miner picks its own transactions; Job Declaration is opt-in. The pool judges a declared job against the template the miner declared it on, so a template refresh can no longer make a valid job look stale.Declared jobs
18Declared transactions. The pool checks each transaction body a miner supplies against the miner's own declaration before it asks a node.Declared jobs
19Declaring connections. A declaring connection that closes frees the unfinished declarations it held.Declared jobsOperator
20First job after a block. Keeping recent jobs for late solutions does not hold up the first job on a new block: pruning runs after the notification.Operator
21Job lookup. On average, looking up a recent job by its job name takes constant time however many jobs the archive holds.Operator

Doubt us. Then run the command. Ours: the changelog and the checks. Yours: the verdict. Tell us what you see: write to support with the region, the UTC time and the log line.

Trust nothing. Verify the coinbase that Payout Preflight builds for your own address.