From 63cb8f89ff5d74ac3769a612c102d337c2600d93 Mon Sep 17 00:00:00 2001 From: GeiserX <9169332+GeiserX@users.noreply.github.com> Date: Sat, 7 Nov 2026 14:45:59 +0100 Subject: [PATCH] docs(storj): link the sources for the Chapter 11 and held-back claims The guide gave the filing date, the freeze on pre-filing node earnings, the token drop, the exchange exits and the held-back schedule with no source. Each now links Storj's own announcement, its payout update on the official forum, the Storj docs, CoinGecko, Binance and Coinbase. The token drop reads 'more than 98%', which CoinGecko shows today. --- docs/guides/storj.md | 4 ++-- tests/test_storj_guide_sources.py | 36 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 tests/test_storj_guide_sources.py diff --git a/docs/guides/storj.md b/docs/guides/storj.md index 54f44ebe..b79fc161 100644 --- a/docs/guides/storj.md +++ b/docs/guides/storj.md @@ -9,7 +9,7 @@ Storj is a decentralized cloud storage network where you earn by renting out your unused disk space. Run the storage node via Docker and get paid $1.35/TB stored per month plus $1/TB egress (rates since 1 September 2026). Payouts are monthly in USDC, a US-dollar stablecoin, on Ethereum mainnet to a wallet you control, once the balance clears a fee-based minimum (STORJ token until the September 2026 payout). Requires at least 550GB of available disk space and a stable internet connection. No account or signup needed -- nodes are permissionless since mid-2025. !!! warning "Storj Labs is in Chapter 11 (October 2026)" - Storj Labs filed for Chapter 11 on 26 July 2026 (US Bankruptcy Court, Northern District of West Virginia, case 5:26-bk-00512) to restructure legacy debt. The network keeps running and Storj keeps paying active nodes, but node earnings from before the filing are frozen until the court rules on them. The STORJ token is down about 98% from its 2021 peak. Binance delisted it on 3 September 2026, and Coinbase suspended trading in it on 28 September 2026. A new node withholds part of its earnings during its first nine months and fills only as customer demand allows, so starting one now ties a long payback to a company in restructuring that could still wind down. + Storj Labs filed for Chapter 11 on 26 July 2026 (US Bankruptcy Court, Northern District of West Virginia, case 5:26-bk-00512) to restructure legacy debt ([Storj's announcement](https://www.storj.io/blog/storj-announces-voluntary-financial-restructuring-to-resolve-legacy-liabilities-and-position-the-business-for-growth/)). The network keeps running and Storj keeps paying active nodes, but node earnings from before the filing are frozen until the court rules on them ([Storj's payout update](https://forum.storj.io/t/storagenode-payout-update-august-prepayments-and-july-2026-status/32266)). The STORJ token is down more than 98% from its March 2021 peak ([CoinGecko](https://www.coingecko.com/en/coins/storj), November 2026). Binance delisted it on 3 September 2026 ([Binance](https://www.binance.com/en/support/announcement/detail/d72915ed7a60473b92f0818d959a227a)), and Coinbase suspended trading in it on 28 September 2026 ([Coinbase status](https://status.exchange.coinbase.com/incidents/bczrbdtb1fd5)). A new node withholds part of its earnings during its first nine months and fills only as customer demand allows, so starting one now ties a long payback to a company in restructuring that could still wind down. ## Earning Estimates @@ -98,7 +98,7 @@ Pick the boxes under **Deploy to** and click **Deploy Storj**. CashPilot creates - **Use a DDNS hostname for `ADDRESS`, never a literal IP.** Satellites dial your node back at exactly the address it advertises. Residential ISPs re-provision public IPs without notice, and when that happens a node advertising the old literal IP is counted offline around the clock (container healthy, dashboard green, earnings from new data at zero) until someone notices the provider's offline emails. A dynamic-DNS hostname (DuckDNS, Cloudflare DDNS, your router's DDNS client) self-heals through an IP change. If satellites cannot reach the node, CashPilot's producer state for Storj reports it with the exact reason; you can also check yourself with `curl -s http://:14002/api/sno/` (`lastPinged` stale or `quicStatus: "Misconfigured"` means unreachable). - **No signup required**: Storj nodes are permissionless since mid-2025. No auth token, no account creation. -- **Held-back earnings**: a new node's satellites withhold 75% of its earnings in months 1 to 3, 50% in months 4 to 6 and 25% in months 7 to 9. Half of the held amount comes back in month 16; the rest only when the node exits gracefully. Earnings from before Storj Labs' 26 July 2026 Chapter 11 filing are frozen until the bankruptcy court rules on them. +- **Held-back earnings**: a new node's satellites withhold 75% of its earnings in months 1 to 3, 50% in months 4 to 6 and 25% in months 7 to 9. Half of the held amount comes back in month 16; the rest only when the node exits gracefully ([Storj docs](https://storj.dev/node/faq/held-back-amount)). Earnings from before Storj Labs' 26 July 2026 Chapter 11 filing are frozen until the bankruptcy court rules on them ([Storj's payout update](https://forum.storj.io/t/storagenode-payout-update-august-prepayments-and-july-2026-status/32266)). - **One node per public IP**: Storj recommends one node per public IP for optimal satellite allocation. Nodes on the same /24 subnet share data allocation. - **Uptime matters**: Nodes with poor uptime get less data. Aim for 99.5%+ uptime. - **Disk selection**: Always use spinning disks (HDD). Storj data is cold storage: IOPS don't matter, capacity does. SSDs offer no advantage and cost more per TB. diff --git a/tests/test_storj_guide_sources.py b/tests/test_storj_guide_sources.py new file mode 100644 index 00000000..12d9b6ce --- /dev/null +++ b/tests/test_storj_guide_sources.py @@ -0,0 +1,36 @@ +"""The Storj guide's Chapter 11 and held-back claims each name their source. + +The guide stated the filing date, the freeze on pre-filing node earnings and +the held-back schedule with no link, so a reader could not check them and a +reviewer could not tell when one went stale. +""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +GUIDE = Path(__file__).resolve().parents[1] / "docs" / "guides" / "storj.md" + +FILING = "https://www.storj.io/blog/storj-announces-voluntary-financial-restructuring" +FREEZE = "https://forum.storj.io/t/storagenode-payout-update-august-prepayments-and-july-2026-status/32266" +HELD = "https://storj.dev/node/faq/held-back-amount" + + +def _line(marker: str) -> str: + lines = [line for line in GUIDE.read_text(encoding="utf-8").splitlines() if marker in line] + assert len(lines) == 1, f"expected one line with {marker!r} in the Storj guide" + return lines[0] + + +@pytest.mark.parametrize( + ("marker", "sources"), + [ + ("5:26-bk-00512", [FILING, FREEZE]), + ("**Held-back earnings**", [HELD, FREEZE]), + ], +) +def test_each_claim_links_its_source(marker: str, sources: list[str]): + line = _line(marker) + assert [s for s in sources if f"]({s}" not in line] == []