Fleet Split: Setup Guide for Hosting Operators
Everything an operator needs to run Fleet Split: how the block is split, what to prepare, the 12 steps from the first login to dissolving an agreement, the alerts, the reports and the API. Each step says what you do, what you see and what to check.
Fleet Split is solo mining per client with a three-output coinbase: 1% to us, your quota to you, the rest to the client whose machines found the block. You create each agreement yourself from a console you sign in to with your Bitcoin wallet. The client confirms with one signature from their own wallet. From then on, the block pays everyone directly.
Version 2.0 · 23 October 2026 · Bitcoin (BTC). For the comparison with Fleet Group and Fleet Pool, see SoloFury Fleet: Split, Group and Pool.
Key takeaways
- Every agreement links one client address and one fresh address of yours. The client’s machines sign in to the pool with your address followed by the machine name: this is how the pool knows which agreement they mine for.
- Apart from our fixed 1%, you and your client set the quota. It is written into the coinbase and stays fixed for the life of the agreement.
- You work from the console: add a client, send an invitation link, copy the credentials when the agreement is ready on every server.
- You and your clients get Telegram alerts for blocks, machines and agreements. Clients connect with a wallet signature.
- Every block has a line in the CSV and PDF report, with the coinbase txid and each output in satoshi. A read-only API key serves the same data to your tools.
How Fleet Split works
When a machine of an agreement finds a block, the coinbase of that block contains three outputs. The table shows who receives what.
| Coinbase output | Receives | Amount |
|---|---|---|
| Pool fee | SoloFury | 1% of the block, fixed for everyone |
| Manager | Your address for this client | The quota you agreed, as a percentage of the whole block |
| Client | The client’s payout address | The rest of the block |
On the 3.125 BTC subsidy, the pool fee output is 3,125,000 satoshi. You enter your quota as a whole percentage of the block, from 1 to 98. The client receives what remains after our 1% and your quota. Network fees in the block are split in the same proportions.
Fleet Split is true solo mining per client. A block pays only the agreement whose machines found it. Other clients of your fleet receive nothing from that block; their chance comes with their own blocks.
Rounding. The pool stores your quota in hundredths of a percent of the part after the pool fee. A quota of 2% of the block is stored as 2.02% of the 99%, which equals 1.9998% of the block. Reports show the exact value with four decimals.
Before you start
Prepare four things before your first login: a wallet, fresh addresses, your fleet details and a logo.
A wallet that signs messages
- Sparrow on a computer, with a software wallet or with a hardware wallet such as Ledger, Trezor, Coldcard, BitBox or Jade.
- Electrum on a computer or on Android.
- BlueWallet on Android or iPhone.
- Trezor Suite.
We tested Ledger via Sparrow in October 2026; the steps for the other wallets follow their own documentation. Ledger Live cannot sign messages: connect the Ledger to Sparrow or Electrum instead. Use an address from your own wallet: exchange accounts cannot sign messages.
One fresh address for each client
Use a new bc1q… or bc1p… address of your wallet for every client, used only for that agreement. Your quota for that client arrives there. The client’s machines use it in their username, followed by the machine name, so the pool links every share to this agreement.
Addresses starting with bc1p (Taproot) need a BIP-322 signature. Today Sparrow with a software wallet produces it; hardware wallets sign bc1q addresses.
Your fleet details
Send these details once to [email protected]. We register your fleet and your access address.
| Item | Example | Where it appears |
|---|---|---|
| Fleet name | Alpine Hosting | Fleet page, client pages, Telegram |
| Page address | alpine-hosting | solofury.com/fleet/alpine-hosting/ (lowercase letters, digits and hyphens, 2 to 39 characters) |
| Access address | a bc1q… address of yours | Used only to sign in to the console |
| Logo | SVG file | Fleet page and every client page |
| Website | https://alpinehosting.example | Fleet page |
| Public contact | email or Telegram handle | Fleet page |
| Public or private page | public | Public: visible to anyone, client addresses always masked. Private: hidden. |
Your logo
- Format: SVG, or PNG or WebP of at least 512 × 512 px.
- Shape: square. Pages show it in a square box of 56 px on the fleet page and 28 px on client pages. For a wide logo, send the symbol or the compact version.
- Background: transparent, with colors that read on white.
- Check: the logo stays recognizable at 28 px.
Email template:
To: [email protected]
Subject: SoloFury Fleet: activation of [fleet name]Fleet name: …
Page address: solofury.com/fleet/…/
Access address: bc1…
Website: … · Public contact: … · Page: public or private
Logo: attached (SVG)
Step 1: Sign in to the console
The console is at solofury.com/fleet/manage/. You sign in with your access address and a signature; there is no password.
- Enter your access address and press Continue.
- The page shows a message of 5 lines, with Copy and a QR code.
- In your wallet, open the “Sign message” tool, choose the access address, paste the message and sign.
- Paste the signature (one line of text, often ending with ”=”) and press Sign in.
The session lasts 12 hours. The message expires after 15 minutes; after that, press New message and sign again. The 5 lines are explained in the client guide, which uses the same message format.
Step 2: Add a client
Each client gets an agreement of its own. Press Add client and fill in the form.
| Field | What to enter | Who sees it |
|---|---|---|
| Label | A name you recognize, such as “Client 3 · row B” | You and the client |
| Your share (% of the block) | The quota agreed with the client, a whole number from 1 to 98. Write 2 for 2%. | You and the client |
| Your address for this client | A fresh bc1q… or bc1p… address of your wallet | You and the client; masked on public pages |
| Machines, model, declared TH/s | Optional: for example 20, “S21+ 235T”, 4700 | You and the client |
| Internal notes | Optional | Only you |
Press Create invitation. The console shows a message for your address for this client: sign it with that address and paste the signature. The signature proves the address is yours.
The declared hashrate drives the “What to expect” box on the client’s invitation page, until the machines connect. Leave it empty if you do not know it yet; you can edit it later.
Step 3: Send the invitation
The console shows the invitation link and a QR code. The link is valid for 24 hours and works once.
Send the link by message or email, or let the client scan the QR. Send the client guide with it. A ready-made message, to adapt:
Hello [name], as agreed your machines will solo mine Bitcoin on SoloFury Fleet. If they find a block, the payout goes straight to your wallet inside the block: [Y]% to you, [X]% to [hosting name], 1% to SoloFury.
Before signing, please read this 5-minute guide: solofury.com/blog/solofury-fleet-split-client/
Then open your invitation (valid 24 hours): [link]
You need a wallet that can sign a message, such as Sparrow, Electrum or BlueWallet. Solo mining is a lottery with known odds: a block may take a long time to come. Write to me for any question.
While you wait, the console lists the invitation under Waiting for the client. You can Withdraw it at any time before the client signs. If 24 hours pass, the invitation expires, the draft agreement is dissolved and your address is free again.
Connect machines to this address only after the client signs. The credentials appear in Step 5, after the client’s signature.
Step 4: What the client does
The client opens the link and completes the agreement in about 5 minutes. The client guide describes every screen; in short:
- The client reads your name and logo, the label, the payout split and the validity of the link.
- The “What to expect” box shows the odds on the client’s hashrate. The chance of a block in 12 months comes first, then the average time and the client’s part of one block.
- The client enters a payout address, signs the 5-line message and pastes the signature.
- The client ticks “I understand that solo mining may pay me nothing”, confirms the split and accepts the terms.
- The agreement is active. The client downloads a PDF receipt and can activate Telegram alerts without a new signature.
If you are connected to Telegram, the bot tells you when the client signs, and when an invitation expires unsigned.
Step 5: Wait for “Ready”, then copy the credentials
After the signature, the agreement is copied to every Fleet server. This takes about a minute. The console shows the progress in the client row.
| Status | Meaning | What you do |
|---|---|---|
| Draft | Invitation created, client not signed yet | Wait for the client |
| Awaiting confirmation | Client signed, activation in progress | Wait a minute |
| Ready | The agreement is on every Fleet server; “Nodes ready” shows the full count | Copy the credentials |
| Active | Shares are arriving from the machines | Check the machines (Step 7) |
When the agreement is ready, the client row shows Machine credentials:
| Field | Value |
|---|---|
| Host | The Fleet servers, listed in the console with Copy buttons |
| Ports | One port for ASICs, one for small miners, as shown in the console |
| Username | your-address-for-this-client.MACHINE_NAME |
| Password | As shown in the console |
| Stratum V2 | Same hosts and ports; the authority public key is shown next to them |
Give each machine its own name after the dot, such as .B07. The name appears in the client’s page, in your alerts and in the API.
Step 6: Configure the machines
Point each machine to the nearest Fleet server and set the others as failover.
- Pool 1: the Fleet server closest to the machines.
- Pool 2: a second Fleet server.
- Pool 3: a third Fleet server.
The agreement is on every Fleet server, so failover keeps the three outputs. Use only the hosts and ports shown in the console. On a regular solo port of our pool, your address would mine as plain solo, outside the agreement, and pay only you.
Whole machines or a share of every machine
- Whole machines. The client sends one or more machines entirely to Fleet. This works with any firmware, including stock firmware.
- A share of every machine. Braiins OS splits a machine’s hashrate across “pool groups” with a fixed ratio: group 1 for the usual FPPS or PPLNS pool, group 2 for Fleet. If a group is unreachable, Braiins OS moves the hashrate to the others.
Step 7: Check the machines
Within a few minutes, the client row turns Active and the first shares appear. Telegram announces the first worker connected.
Each client card shows the declared hashrate, the measured hashrate over 24 hours and a traffic light:
| Light | Measured vs declared |
|---|---|
| Green | 90% or more |
| Yellow | 70% to 90% |
| Red | Below 70% |
A worker counts as online if it sent a share in the last 30 minutes. Press Edit on the card to change machines, model, declared TH/s or notes; no signature is needed.
The Whole fleet section adds up the measured hashrate of all your clients and shows the odds for the fleet. The expected value of your own quota sits there too, folded, as an average over many years.
Step 8: Telegram alerts
The bot is @SoloFuryFleetBot. It reads the same data as your pages, so nothing changes on the machines.
For you
Connect with the link or QR code we send you at activation, or from the “Telegram alerts” button of your fleet page. You can also add the bot to a group with your technicians. In Settings you choose one of 10 languages and your time zone.
| Alert | When |
|---|---|
| Worker offline, back online | No shares for 10 minutes, grouped by client (threshold adjustable) |
| Client fully stopped | All workers of a client stopped |
| Site outage | Many workers stop within 5 minutes: one message, then one when they are back |
| Hashrate drop | Last hour well below the 24-hour average, workers still online |
| Below declared | Measured 24 h below 70% of the declared hashrate for over 2 hours, or a worker offline for over 30 minutes; repeated at most every 6 hours |
| Rejected shares | Rejected or stale shares above the threshold in the last hour |
| Block found | Within seconds, with the split and the Block Info proof; then mature or orphaned |
| Invitation signed or expired | When a client signs, or a link expires unsigned |
| Client alerts | When a client connects or disconnects Telegram |
| Weekly report | Uptime per client, average hashrate, downtime, blocks; CSV attached if enabled |
To keep the chat readable: Maintenance silences offline alerts and excludes that time from uptime; Quiet holds alerts during night hours and delivers them afterwards; blocks always arrive at once. The bot sends a limited number of messages per hour; Recent alerts lists what was sent or held back.
For your clients
- Clients connect by themselves from their page, or at the end of the invitation, with a signature of their payout address. No approval from you is needed; only the client address of an active agreement can connect.
- Each agreement accepts up to 2 client chats. You receive a message when a client connects or disconnects, without the chat details.
- Clients receive blocks found, mature and orphaned, their machines below the declared hashrate, and changes to the agreement. Rejected shares and best-share records stay with you.
- Every client message ends with “Agreement with [your name] · support: [your contact]”. Set the contact in the console under Support contact.
- The client types
/stopto disconnect. When an agreement is dissolved, the bot ends the client’s alerts and says so.
Step 9: When a block is found
The block pays at once in the coinbase; it becomes spendable after 100 confirmations.
- Found: within seconds, you and the client receive the alert with the three outputs and a link to the Block Info page. Pages show the block with its status.
- Mature: after 100 confirmations, about 17 hours, the bitcoin are spendable in your wallets.
- Orphaned: rarely, the network chooses another block at the same height. That block pays nobody, and nobody owes anything. Pages, reports and alerts mark it as orphaned.
All amounts come from the on-chain coinbase. In case of any difference, the blockchain prevails.
Step 10: Block reports in CSV and PDF
The console section Block report produces one line per block found. Choose a period (previous month, this month, this year, all blocks, or from–to), one client or all, then Download CSV or Download PDF.
- Identity of the block: height, block hash, time found and time matured (UTC), status, confirmations, coinbase txid with a mempool.space link.
- Amounts in satoshi: block total, subsidy, network fees, pool fee, manager output, client output, with percentages to four decimals and the client’s output number (vout).
- Reference prices: BTC price in USD and EUR from mempool.space at the time of the block and at maturity, with source and time. They are historical prices for bookkeeping.
- Totals: mature blocks and blocks waiting for maturity are added up separately; orphaned blocks are listed apart.
- Integrity: the PDF prints the SHA-256 fingerprint of the matching CSV; the download returns it in the
X-SF-SHA256header.
A period without blocks returns a file with the header only. Each client can download the report of their own agreement from their page.
Step 11: The read-only API key
The API serves the data of your agreements to your own tools: Grafana, spreadsheets, monitoring. It reads; it cannot create, change or dissolve agreements.
- In the console, open API key and press Create key.
- Copy the key at once: it is shown only once. Copy test curl gives a ready command.
- Store it like a password. Regenerate replaces it, Revoke stops it.
| Endpoint | Returns |
|---|---|
/v1/me | API version, role, limits, terms version, key dates, server time |
/v1/clients | Each agreement: label, state, declared and measured TH/s, workers online and total |
/v1/clients/PARTY_ID/workers | Workers of one agreement, with full names |
/v1/blocks | The report lines, 500 per page, with a stable event_id |
/v1/hashrate | Hourly series for 24h, 7d or 30d |
Rules: base URL https://solofury.com/api-fleet/v1, GET only, key in the Authorization: Bearer header (a key in the URL is refused), 120 requests per minute (above that, 429 with Retry-After: 60). Dates are ISO 8601 UTC, amounts in whole satoshi, hashrate in TH/s with 2 decimals, missing values as null. Client addresses appear masked, except data already public on-chain in blocks.
KEY=sfk_your_key
curl -s -H "Authorization: Bearer $KEY" https://solofury.com/api-fleet/v1/me
curl -s -H "Authorization: Bearer $KEY" https://solofury.com/api-fleet/v1/clients
curl -s -H "Authorization: Bearer $KEY" "https://solofury.com/api-fleet/v1/blocks?preset=prev-month"
curl -s -H "Authorization: Bearer $KEY" "https://solofury.com/api-fleet/v1/hashrate?range=24h"
A Python script that writes the blocks of the previous month to a CSV file:
import csv, requests
KEY, BASE = "sfk_your_key", "https://solofury.com/api-fleet/v1"
H = {"Authorization": f"Bearer {KEY}"}
me = requests.get(f"{BASE}/me", headers=H, timeout=20).json()
print("API", me["api_version"], "role", me["role"])
for c in requests.get(f"{BASE}/clients", headers=H, timeout=20).json()["clients"]:
print(c["label"], c["state"], c["measured_24h_ths"], "/", c["declared_ths"], "TH/s")
rows, page = [], 1
while page:
r = requests.get(f"{BASE}/blocks", headers=H,
params={"preset": "prev-month", "page": page}, timeout=30).json()
rows += r["blocks"]
page = r["next"]
if rows:
with open("blocks-previous-month.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=list(rows[0].keys()))
w.writeheader()
w.writerows(rows)
print(len(rows), "blocks written")
Each client can create a key for their own agreement, with a signature. The client page shows “Manager API: active since … · last access …”, so the client sees when your key reads their data. Fields are removed only with 30 days of notice, announced in /v1/me and in this guide.
Step 12: Dissolve an agreement
An agreement ends when it receives no shares for 7 days on every Fleet server. Until then, a block found with its credentials pays according to the agreement.
- Disconnect the client’s machines from the Fleet credentials.
- In the console, press Dissolve agreement on the client card. If shares arrived in the last 7 days, the pool refuses; try again after 7 days without shares.
- The client’s Telegram alerts end with a message, and the client’s API key stops working.
A client who wants to leave asks you and disconnects the machines. There are no penalties and no minimum duration on our side. To change a quota or an address, dissolve the agreement and create a new one.
Your fleet page and the client page
Your fleet page is at solofury.com/fleet/your-name/, in 10 languages, refreshed every 30 seconds. It shows fleet hashrate, workers online, active clients, blocks, the expected time per block, a chart by client over 24 hours, 7 or 30 days, the clients and the blocks. Client addresses are always masked. A private page stays hidden.
Each client has a page: the Miner page of the agreement with the Fleet panel. It shows your logo and name, the split line by line and the Fleet servers where the agreement is live. Below come the machines with the traffic light, “What to expect”, the blocks with their status, the reports and the API line. The Verify the payout now button reads the real template of the next block and shows the three outputs in satoshi, with a green check when they match the agreement.
Rules in one table
| Rule | Value |
|---|---|
| Pool fee | 1% of the block, fixed |
| Your quota | 1% to 98% of the block, whole numbers, fixed for the life of the agreement |
| Addresses | bc1q… and bc1p…; one fresh manager address per agreement |
| Message to sign | 5 lines, valid 15 minutes |
| Console session | 12 hours |
| Invitation | 24 hours, one use, can be withdrawn |
| Credentials | Shown when the agreement is ready on every Fleet server |
| Maturity | 100 confirmations, about 17 hours |
| Dissolution | Effective after 7 days without shares |
| Client Telegram chats | Up to 2 per agreement |
| API | Read-only, 120 requests per minute |
| Support | [email protected], reply within 1 business day |
The full rules are in the Fleet Split terms, version 1.2.
What the numbers say
Each agreement mines for itself, so the odds depend on the client’s hashrate. The table uses the network difficulty of 16 October 2026.
| Client hashrate | Average time per block | At least 1 block in 12 months | In 5 years |
|---|---|---|---|
| 200 TH/s | 96 years | 1.0% | 5.1% |
| 1 PH/s | 19 years | 5.1% | 23% |
| 2 PH/s | 9.6 years | 9.9% | 41% |
| 5 PH/s | 3.8 years | 23% | 73% |
Your quota comes from any client who finds a block, so for you the sum of all agreements counts. The fleet table is on the Fleet overview.
Source: network difficulty 140.58 T, set at block 971,712 on 16 October 2026 (pickaxe.io, phemex.com). Formula: average time = difficulty × 232 ÷ hashrate; chance in a period t = 1 − e−t/T. Network fees excluded.
How we work
- Non-custodial payout. The three outputs are in the coinbase we build; the network creates the bitcoin at the parties’ addresses.
- Ownership by signature. You and the client prove each address with a signed message. A signature proves ownership and contains no amount, recipient or transaction.
- Agreement on every server. Credentials appear only once every Fleet server carries the agreement.
- Announced changes. Software updates that may interrupt mining are announced 7 days ahead on pages, Telegram and email; security fixes are applied at once and announced afterwards.
Conclusion
Fleet Split takes one email to start and about 10 minutes per client: one form, two signatures, one link. From then on, each block pays you, your client and us in the coinbase, and every number on your pages, reports and API comes from the chain. Send your clients the client guide with the invitation: it answers most of their questions before they sign.
Activate your fleet
Every block pays 1% to us, your quota to you and the rest to your client, in the coinbase. Write to [email protected] with your fleet name and access address.
Open the console →Frequently Asked Questions
What happens if my client enters a wrong payout address?
The client signs the message with the address they enter, so the address must belong to a wallet they control. A typo in the address makes the signature fail, and the agreement is not created. If a client later wants another address, you dissolve the agreement and create a new one.
Can I change my quota after activation?
The quota is fixed when the client signs. To change it, disconnect the machines, dissolve the agreement after 7 days without shares and send a new invitation with the new quota. The client signs again.
What if machines mine with the credentials before the agreement is ready?
The console shows the credentials only when the agreement is ready on every Fleet server. If a block were found with the credentials of an unconfirmed agreement, the software pays it to our fee address; within 7 days of maturity we send the manager and client parts to the two addresses, net of our 1% and of the transfer's network fee, and publish the txid on both pages (terms, section 4).
Does failover between servers keep the split?
Yes. The agreement is copied to every Fleet server before the credentials appear, so a machine that switches to pool 2 or pool 3 keeps the same three outputs.
How do I show a client that the split is real?
Open the client page together and press Verify the payout now: it reads the real template of the next block and shows the three outputs in satoshi. The PDF receipt lists the three addresses and both signatures.
How do I account for my quota?
Your quota arrives in the coinbase at your address for that client. The block report in CSV or PDF lists the txid, your output in satoshi and reference BTC prices in USD and EUR at the block and at maturity. Invoicing and taxes follow your own agreement and local rules.
What happens if SoloFury closes the Fleet service?
We announce it with 30 days of notice. Blocks already found are already in the wallets of the parties, so there are no balances to return.
Are legacy addresses starting with 1 or 3 accepted?
Today Fleet accepts bc1q and bc1p addresses. Support for addresses starting with 1 or 3 is planned with a future software update, without a date yet.