Custody attacks
There is no pool hot wallet and no withdrawal queue. Valid blocks pay miners directly from the coinbase transaction.
GridPool
Open-source Bitcoin mining infrastructure
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.
Threat model
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.
There is no pool hot wallet and no withdrawal queue. Valid blocks pay miners directly from the coinbase transaction.
Internode share messages prove work and payout commitment without revealing the miner's full transaction set.
GridPool has no secondary blockchain to reorg, privately mine, or 51 percent attack as a separate consensus object.
Payout slots are earned by verified proof-of-work difficulty, not accounts, IP addresses, or node identities.
Share attribution comes from the slot-0 coinbase payout address committed into the Merkle root and block header.
The reference node exposes the payout lists and peer state so miners can verify what team they are actually mining with.
Start here
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
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.
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.
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.
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.
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
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.
GridPool avoids maintaining a second blockchain. There is no sharechain history to reorg, privately mine, or 51 percent attack as a separate consensus object.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Use this when you understand the beta status and want to point a DATUM gateway at the public mainnet GridPool node.
datum.main.gridpool.net
3008
46d0fa9529eff366471d232e3997341ad91185ec225302296967440cb96c2b1942e513d5dcfcdce90d89b8376159d5c19fcad913e4028a051b8a4d776c152d0c
Use this for experiments, integrations, and real-trigger behavior without risking mainnet funds.
datum.test.gridpool.net
3009
005b8dde7340e0c9a429cb5aded936eccf23a832ec2805e16fd4e53f6617617e98d735f7f8ebf28f7ef3227bd437d1e85822881ee6ba492bc3dcd6689c79b13c
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.main.gridpool.net
34265
9auqWEzQDVyd2oe1JVGFLMLHZtCo2FFqZwtKA5gd9xbuEu7PH72
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.
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.
stratum+tcp://stratum.main.gridpool.net:3333
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.
sv2.main.gridpool.net:34265
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.
curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-gridpool-node.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS
curl -fsSL https://raw.githubusercontent.com/gridlabs-science/boot-protocol/main/scripts/install-sovereign-stack.sh | sudo bash -s -- --payout-address YOUR_BTC_ADDRESS
Quick start with a public node, or run your own GridPool node and open its local WebUI.
From the local WebUI, copy Pool Host, Pool Port, and Pool Pubkey. Public beta details are listed above for convenience.
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.
Once shares arrive, the node UI should show your local hashrate and whether your address is currently on the payout lists.
Learn more
Advanced concepts
A few of the more advanced concepts in GridPool, including the design philosophy and engineering tradeoffs behind it. .
Loading advanced notes...