Why solofork?
A solo pool that hands you the coinbase. Register a message that lands in your winning block, tune difficulty to your rig, and never trust the pool with a payout — all authorized by a BIP-322 signature from your own address.
1. Sign your winning block
Every block this pool mines under your address can carry text you registered — a message that goes on-chain, indexed by every explorer, permanent. Two slots, both self-serve:
OP_RETURN— up to 75 bytes of UTF-8. Added as an extra output on the coinbase transaction. Where projects usually pay a wallet a few dollars to sneak text in via a "vanity dust" send, you can just put yours in the coinbase.- scriptSig text — up to 64 bytes of UTF-8. Spliced into the coinbase input's scriptSig after the pool tag. This is the slot where AntPool prints
/AntPool/. Print whatever you want.
The messages are wired to your payout address. Nobody else can register under it because the registration is authorized by a BIP-322 signature from the address's private key. No account, no email, no moderation queue — the address is the identity.
2. Difficulty that fits your rig
Most pools ship one vardiff curve and hope it's roughly right for you. solofork lets you register the two knobs that actually matter:
- Starting difficulty — the vardiff seed on connect. Skip the first minute of vardiff calibration for a rig whose hashrate you already know.
- Fixed difficulty — disable vardiff entirely and hold diff constant. The right knob for a Bitaxe, Nerdminer, or any low-hashrate hobby rig where you want a specific submit rate.
Both can be scoped to the whole payout address or to a specific worker. Ten workers under one address? Ten different diffs, if you want. Same authorization — one BIP-322 signature covers everything, and per-worker scriptSig / OP_RETURN text works the same way.
3. Solo, and non-custodial by construction
solofork is a solo pool — when you find a block, the coinbase pays your address directly. There is no pool wallet in the middle, no minimum payout threshold, no PPLNS accounting, no "please wait for the batch." The block reward lands in the same address you gave your miner as the stratum username.
2% of the coinbase is donated to the pool operator via a separate coinbase output. That's the only cut, and it's fully transparent on-chain in every block this pool finds.
4. One signature, one save
The Manage page uses a session-based flow: authorize once with a BIP-322 signature, edit every field on one screen, hit Save, done. The session lasts 10 minutes and burns on save — no lingering token, no "am I still logged in" state. Failed validation keeps the session alive so a typo doesn't cost you a re-sign.
Prefer scripting? The CLI at scripts/register-message.py uses a one-shot signed payload and doesn't touch the session flow — you keep the direct API surface.
What we don't do
- No accounts, no email, no password reset. The BIP-322 signature is the only credential. If you lose the private key to your payout address, you can't manage its registration — but you also don't have the block reward, so this is the correct failure mode.
- No moderation queue. The address is the accountability. Every stored message is publicly readable at
/api/messages/<address>before it lands on-chain — anyone can audit what's queued. - No custody of your rewards, ever. No pool wallet, no threshold payouts, no operator-controlled balance.
Try it
Point a rig at stratum+tcp://stratum.solofork.com:3333 with your address as the username, then register on the Manage page. Your address will show up at /user/<address> once shares start arriving.
URL: stratum+tcp://stratum.solofork.com:3333
Username: <your bc1… ECX address>
Password: x
Full connection docs at /connect. Frequently asked questions at /faq. If you want the whole picture of what the pool does and doesn't run: /about.