Open-source Bitcoin mining infrastructure

The pool for cypherpunks.

GridPool lets sovereign miners share payout variance while each miner keeps building their own Bitcoin block templates. It is not a custodial pool wallet, not a sharechain, and not a Stratum V1 pool endpoint.

No custodial wallet Rewards are paid directly from coinbase outputs.
Sovereign templates Miners keep transaction selection local and private.
Verified proof-of-work Shares are ranked by difficulty, not by identity.
DATUM today Hydrapool and direct HTTP integrations are next.

Threat model

Engineered to withstand block withholding attacks.

GridPool's defense is simple: remove the things attackers usually grab. No pool wallet to seize. No central template authority to pressure. No sharechain ledger to rewrite. No user identity votes to Sybil.

01

Custody attacks

There is no pool hot wallet and no withdrawal queue. Valid blocks pay miners directly from the coinbase transaction.

02

Censorship pressure

Internode share messages prove work and payout commitment without revealing the miner's full transaction set.

03

Sharechain attacks

GridPool has no secondary blockchain to reorg, privately mine, or 51 percent attack as a separate consensus object.

04

Sybil accounting

Payout slots are earned by verified proof-of-work difficulty, not accounts, IP addresses, or node identities.

05

Payout hijacking

Share attribution comes from the slot-0 coinbase payout address committed into the Merkle root and block header.

06

Opaque operators

The reference node exposes the payout lists and peer state so miners can verify what team they are actually mining with.

Start here

Seven minutes to the core idea.

GridPool takes the variance-reduction goal of a mining pool and removes the central payout wallet and share accounting. Miners coordinate on payout lists using Bitcoin-style proof-of-work shares, without using a separate sharechain.

Shared lottery mining

How GridPool works

GridPool does not try to reproduce traditional pool accounting. Instead, it lets miners submit high-difficulty proofs into a bounded unpaid Work Set. Every Bitcoin block turns the current top unpaid proofs into the active coinbase payout snapshot, and any peer can verify the proofs.

01

Build your own block

Your mining stack constructs a Bitcoin block template locally, ideally using your own trustless copy of the pool's current payout list, and inserts your own payout address in slot 0. The block pays slot 0 to the block finder and shares the rest across the active GridPool payout snapshot.

02

Submit high-difficulty proofs

When your miner finds a share strong enough to compete for the unpaid Work Set, your node relays the header, coinbase, and minimal Merkle proof needed for trustless verification. Your full transaction set is kept private.

03

Rank by verified work

Peers verify the proof-of-work and attribute the share to the payout address in slot-0 of the coinbase output. Identities do not vote, so Sybil accounts do not create extra payout weight.

04

Snapshots and payouts

Ordinary Bitcoin blocks create fresh payout snapshots without clearing unpaid work. When a GridPool miner finds a real block, that block pays the active snapshot directly, and only the paid proof IDs are removed from the reserve.

Different tradeoffs

Not a normal pool. Not pure solo.

Compared with classic pools

GridPool does not collect block rewards into a pool wallet, does not decide your transaction template, and does not pay from a centralized ledger. The tradeoff is higher variance than FPPS or PPLNS.

Compared with sharechains

GridPool avoids maintaining a second blockchain. There is no sharechain history to reorg, privately mine, or 51 percent attack as a separate consensus object.

Compared with solo mining

GridPool keeps the local-control feel of solo mining but shares the block subsidy across recent high-difficulty contributors, reducing payout variance by up to roughly 300x.

Common critiques

Fair questions deserve precise answers.

GridPool is a beta protocol, not a finished theorem. These are the short answers to the objections miners keep raising, with the full modeling roadmap linked below.

Is GridPool vulnerable to pool hopping?

Not in the classic sense. A high-difficulty proof is work already performed, and old proofs are displaced as new unpaid work arrives. Leaving after a lucky proof gives up future proof opportunities and slot-0 block-finder upside. Current simulations treat this as an economic tradeoff, not a magic exploit.

What if a large miner earns slots and leaves?

They may still be paid for valid work they already contributed, but their proofs decay out of the bounded reserve as stronger work arrives. If their old work survives until a GridPool block, they can be paid for it; if stronger work arrives first, those proofs fall out of the live payout snapshot.

Is this just loose consensus?

GridPool avoids a sharechain, but it still has consensus rules. Nodes verify proof-of-work, Merkle roots, coinbase outputs, slot-0 attribution, parent context, payout snapshot context, and duplicate status. V2.1 treats Bitcoin-block snapshot boundaries as local finality points and merges valid current-parent work forward instead of blindly rewriting old snapshots.

Can Sybil nodes gain payout weight?

Not directly. Payout slots are earned by verified proof difficulty, not identities, accounts, IP addresses, or server count. Sybils can still attack networking, so peer selection and anti-DoS work still matters.

Can peers censor transactions from share data?

GridPool share messages reveal the coinbase and its Merkle path, not the full transaction set. Peers can verify payout commitments without seeing arbitrary included transactions until a real block is found.

Can a majority miner fork the team?

A majority miner can try to mine a private or censoring payout state, but it cannot forge other miners' proofs or rewrite a sharechain because there is no sharechain. This becomes a team-split and censorship-cartel problem, and it is a high-priority adversarial simulation target.

Can a home node participate without a public IP address?

Yes, but with a current beta limitation. Outbound-only nodes can connect to public seeds and submit work, and the reference node shows them as live sessions instead of fake public endpoints. Broader hidden-peer relay and NAT traversal are still being hardened, so public nodes are still important for network resilience during beta.

Does every Bitcoin block pay a GridPool round?

No. Ordinary Bitcoin blocks create fresh payout snapshots from unpaid work. They update the template miners should build on, but they do not pay anyone. A payout happens only when a GridPool miner finds a real Bitcoin block that pays the active snapshot.

Public beta connection guide

Connect sovereign, or test the next bridges.

GridPool is built for sovereign miners who construct their own block templates. The preferred path is still DATUM or another template-building server connected to your own GridPool node. For miners who only have standard Stratum V1 today, a Hydrapool-hosted bridge is the easier beta on-ramp. Native Stratum V2 is now available for early testing as the header-only path for firmware that cannot parse large GridPool coinbases.

Mainnet beta Main chain

Quick start: mine real Bitcoin

Use this when you understand the beta status and want to point a DATUM gateway at the public mainnet GridPool node.

Pool Host datum.main.gridpool.net
Pool Port 3008
Pool pubkey 46d0fa9529eff366471d232e3997341ad91185ec225302296967440cb96c2b1942e513d5dcfcdce90d89b8376159d5c19fcad913e4028a051b8a4d776c152d0c
Open mainnet node UI
Testnet4 Protocol testing

Quick start: testnet snapshots

Use this for experiments, integrations, and real-trigger behavior without risking mainnet funds.

Pool Host datum.test.gridpool.net
Pool Port 3009
Pool pubkey 005b8dde7340e0c9a429cb5aded936eccf23a832ec2805e16fd4e53f6617617e98d735f7f8ebf28f7ef3227bd437d1e85822881ee6ba492bc3dcd6689c79b13c
Open testnet node UI
SV2 beta Header-only mining

Native Stratum V2 beta

Use this with native Stratum V2 clients. The public beta runs the GridPool fork of SRI Pool directly, avoiding Job Declaration overhead and Stratum V1 coinbase-size limits. Set your mainnet payout address as the channel identity for direct slot-0 credit. The hosted endpoint charges a 2% operator fee through staggered work slices; sovereign self-hosted deployments can disable it.

SV2 Host sv2.main.gridpool.net
SV2 Port 34265
SV2 pubkey 9auqWEzQDVyd2oe1JVGFLMLHZtCo2FFqZwtKA5gd9xbuEu7PH72
View the SV2 pool fork
Live quick start: use DATUM with the public beta node

This is the easiest way to try GridPool today: configure DATUM with one of the endpoints above, then point your ASICs at DATUM. Your miner still builds sovereign block templates through DATUM.

Hosted bridge: Stratum V1 through Hydrapool

For miners who do not run DATUM yet, the beta bridge is a standard Stratum V1 endpoint backed by Hydrapool. This path is less sovereign because the bridge constructs work for you, and it follows the same beta support model: a canonical optional Grid Labs support slot worth 1/300th of the block subsidy when enabled.

Target endpoint stratum+tcp://stratum.main.gridpool.net:3333
Native path: GridPool SV2 Pool

The live public beta uses a focused fork of SRI Pool. It speaks native SV2 to compatible clients, assigns slot 0 per channel, and sends accepted-share telemetry and qualifying proofs to GridPool. It retains SRI's direct Bitcoin Core block-submission path.

Endpoint sv2.main.gridpool.net:34265
Preferred path: run your own GridPool node

The trustless model is to run your own GridPool node, then connect your DATUM gateway to it. If you already have Bitcoin and DATUM running, install only the GridPool node. Use the full-stack path for fresh Raspberry Pi or Ubuntu installs.

Node only curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-gridpool-node.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS
Full stack curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-sovereign-stack.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS
1. Run GridPool

Quick start with a public node, or run your own GridPool node and open its local WebUI.

2. Copy node details

From the local WebUI, copy Pool Host, Pool Port, and Pool Pubkey. Public beta details are listed above for convenience.

3. Point ASICs at DATUM

Your miner talks Stratum to DATUM. If you are using the hosted Hydrapool bridge, point the ASIC directly at the hosted Stratum endpoint instead. Native SV2 clients can use the beta SV2 endpoint above.

4. Verify your address

Once shares arrive, the node UI should show your local hashrate and whether your address is currently on the payout lists.

Learn more

Resources for miners and implementers

Advanced concepts

GridPool 201

A few of the more advanced concepts in GridPool, including the design philosophy and engineering tradeoffs behind it. .

Loading advanced notes...