ungovernable.tech

Briefing · Web of Trust Thursday

Web of Trust Thursday — September 03 2026 Weekly Update

published 2026-09-03 23 min read Identity, Social and Trust

Weekly companion to Overview - Web of Trust, Nostr Web of Trust, and OpenPGP Web of Trust. Covers developments since the August 27, 2026 update. Headline themes: (1) the seven-week plateau is broken — two new kind:10203 publishers appeared on 2026-08-31, the same day GnuPG 2.5.22 shipped with a TOFU trust-model fix that actually checks UTK signatures [T8404]; (2) Sequoia shipped 16 PQC commits since Aug 27 — the first week its malte/integrate-nist-… and fluppe2/pqc-nist-bp-… branches landed actual algorithm-ID assignments and cipher suites on main, not just docs; (3) fiatjaf/pyramid continued its post-June revival with 8 new commits in 48 hours (Aug 30–31), making WoT distance thresholds numerically configurable and adding signal-handling fixes; (4) the nostr-wot newsroom passed its first sustained operational test — 5 published, 2 skipped, zero paused, zero failed across Aug 27–Sept 2, with the playbook's skipped semantics continuing to distinguish healthy no-ops from agent death; (5) Obelisk pivoted to a relay-hosted games app (Chain Reaction, Vesta, Stacker) — the long-promised "second independent PQ implementation" is now structurally unreachable from that codebase; (6) the dead-WoT-infrastructure pile grew — wot.klabo.world still NXDOMAIN in week 4, nostr.band connect-timeout in week 3; (7) npm downloads held ambient: @nostr-wot/pq 25 (was 26), nostr-wot-sdk 35 (was 59). The ungovernable takeaway: the institutional track (Sequoia + GnuPG) just had its biggest week of 2026 — actual PQC algorithm IDs landing in a reference OpenPGP implementation and a long-standing TOFU trust-model bug getting fixed in the dominant CLI — while the insurgent Nostr track holds flat at 24 identities with the single additional input being the same institutional release that fixed GnuPG. The story is convergence: real WoT-grade cryptographic infrastructure is finally getting the patches it needed, but the people deploying it on Nostr are still a measurement-methodologically-bounded 24.

TL;DR — This Week

  • kind:10203 broke plateau: nos.lol now carries 24 unique pubkeys (was 22), with 2 new publishers appearing on 2026-08-31 — the same day GnuPG 2.5.22 shipped. Both new attestations are ML-KEM-1024 + ML-DSA-87 with origin=derived. The step function became a small stair. First new identities in 13 days.
  • GnuPG 2.5.22 (Aug 31): ships "Fix TOFU trust models to actually check UTK signatures" [T8404] — a long-standing WoT-relevant bug in the dominant OpenPGP CLI's most-used non-WoT trust model. Also bkuptocard regression fixed [T8344], Windows GpgOL registry-key surfacing, Nitrokey 3 pcsc-shared detection. 975★ (up from 971). 2.5.23 cycle open.
  • Sequoia: 16 PQC commits since Aug 27 (vs. zero pure-PQC commits in the prior three weeks combined). Includes: Move NIST and Brainpool PQC algorithms to assigned IDs (Aug 29, ×2 merges), Add NIST and Brainpool PQC cipher suites (Aug 29), Require ossl 1.5.2 (Aug 29), and the Load FIPS provider in permissive mode (Aug 27) merge. The doc-only era is over; algorithm IDs are landing.
  • fiatjaf/pyramid: 8 commits Aug 30–31 (was 1 in the prior 6 weeks combined). Headline: wot distance and popular/uppermost thresholds can be specified as either number or string — the WoT-config surface is becoming user-tunable. Plus signal-handling fixes, bulk event deletion, sync only valid kinds, reports from members acts as bans.
  • Newsroom operating cleanly: log.md gained 7 entries Aug 27–Sept 2 — 5 published, 2 skipped, 0 paused, 0 failed. Stories: NIP-A3 payto (Aug 27), NIP-A3 rewritten a day after merging (Aug 28), NIP-67 auth hint (Sept 1), NIP-84 i-tags on highlights (Sept 2). All four substantive, all matching vault-verified commits.
  • NIPs PR #2434 still open, untouched since 2026-08-11 — 23 days. Sole comment still fiatjaf's link to the nostr-tools#541 closure. NIPs repo merged 3 PRs since Aug 27: NIP-A3 payto (#2119, Aug 26), NIP-67 auth hint (#2371, Sept 1), NIP-84 i-tags (#2454, Sept 1). Repo at 3,094★ (up from 3,090). None PQ.
  • Obelisk pivoted to games. Aug 29–31 commits: Chain Reaction, Vesta, Stacker (relay-hosted games), bridge pool fixes, soundtrack curation. The "second independent PQ Nostr implementation" threshold is now structurally unreachable from this codebase — it is not a Nostr client anymore.
  • WoT infrastructure deaths hardened: wot.klabo.world NXDOMAIN week 4 (now operationally dead); nostr.band connect-timeout week 3 (now operationally dead). wot.nostr.net HTTP 200 (Bitvora deployment still answering). nostr-relay-tray v0.4.1 path-data fix (Aug 30).
  • Nostr-tools: 2 commits (Aug 28 React Native README, Sept 1 limit:1 ping). 852★. nostr-wot-extension still frozen since Aug 19, v0.5.2 unchanged. 7 open issues.
  • Damus shipped "search: filter muted notes out of text search results" (Sept 2) — a quiet but real WoT-as-feature integration: the local mute list now actively de-weights a class of search results.
  • npm: @nostr-wot/pq 25 dl/week (was 26), nostr-wot-sdk 35 dl/week (was 59). Both still at ambient-dependency levels; no new releases since Aug 16.

Freedom-tech takeaway: Last week's read was "the PQ Nostr stack is in steady state; engineering energy has moved to the newsroom." That prediction held for one of the two moving parts and inverted for the other. The newsroom continues to operate exactly as the playbook specifies (5 published, 2 skipped, 0 paused, 0 failed). But the institutional PQC track — the boring one, the one with no Twitter engagement — just had its biggest week of 2026: actual algorithm IDs landing in Sequoia, a long-standing GnuPG TOFU bug fixed, both shipped in the same 72-hour window. The two new kind:10203 publishers on Aug 31 are almost certainly correlated with this — the GnuPG 2.5.22 release notes explicitly call out UTK-signature checking, which is the kind of fix that nudges a maintainer who has been "waiting for the tooling to stabilize" off the fence. For freedom-tech: the gap between "experimental Nostr PQ chat" and "production OpenPGP with PQ keys" just narrowed by a real, measurable amount.

The Week in Detail

1. The Plateau Breaks — Two New kind:10203 Publishers on Aug 31

Last week's update closed by asking whether the Aug 18 publication was the last one. Measured Sept 3 via direct WebSocket queries ({"kinds":[10203],"limit":500}):

Relay Unique pubkeys (Aug 27) Unique pubkeys (Sept 3) Δ
wss://nos.lol 22 24 +2
wss://relay.primal.net 0 0 0
wss://nostr.wine 0 0 0
wss://relay.damus.io auth-walled auth-walled —
wss://relay.snort.social rejected rejected —

Distribution by created_at:

Date Events Unique pubkeys
2026-08-10 17 17
2026-08-11 4 4
2026-08-18 1 1
2026-08-31 2 2
Total 24 24

Both new publishers (d18aa14a2b988280… and 40dfe105a9a185e3…) signed ML-KEM-1024 + ML-DSA-87 attestations of identical 12,227-byte structure with origin=derived. Aug 31 is the day GnuPG 2.5.22 shipped — see §2.

Interpretation: The plateau was never an asymptotic limit; it was a step that landed a step too small to see in 9 days. Seven days later, a second step lands, and it lands on the day GnuPG shipped a release with PQ-relevant trust-model fixes. Two new identities is still well below the launch-cohort size (~22 in 48 hours Aug 10–11), so the "PQ Nostr is a completed experiment awaiting environmental change" model still holds. But the model now needs the modifier "and the environment did nudge on Aug 31." A repeat measurement in two weeks will tell us whether this is the start of a second cohort or a single event.

For the operational WoT layer this is also relevant: every NIP-85 provider that wants to remain a measurement oracle now has 24 pubkeys to track, not 22, and the new entries will be the first data points anyone watches for signs of "is there another wave coming?" The plain reading of the numbers — two events, two distinct pubkeys, same day, same shape, no new growth on the five prior days or the three following — suggests two coordinated maintainers, not two organic users. That is consistent with the newsroom's published Aug 28 story on NIP-A3 being rewritten a day after merging: people who care about NIP governance are watching for the same signals.

2. GnuPG 2.5.22 (2026-08-31) — TOFU Trust Model Fixed

The dominant OpenPGP implementation shipped its 2.5.22 release on 2026-08-31 (NEWS). The WoT-relevant changes:

Bug fixes (T8404):

gpg: Fix TOFU trust models to actually check UTK signatures.

This is the most consequential change in the entire 2.5.x series for WoT operations. The TOFU (Trust On First Use) trust model has been the de-facto fallback for OpenPGP users who don't want to maintain a full Web of Trust — it's what gpg --trust-model tofu activates, and it's what most modern OpenPGP clients default to when they can't resolve a certification path through the WoT. The fact that it wasn't actually checking UTK (Ultimately Trusted Key) signatures meant the most popular non-WoT trust model was silently making weaker validity assertions than users thought. The fix means: after upgrading to 2.5.22, every TOFU-validated key will be re-evaluated against the UTK set, which can change trust status for keys that were previously validated only against a TOFU-good rating. Users on a gpg earlier than 2.5.22 have been trusting keys more than they should have.

WoT-adjacent fixes also in 2.5.22: - bkuptocard regression fixed ([T8344]) — long-standing pain for users who move keys between OpenPGP smartcards and host trust databases. The WoT consequence: trust signatures stored against an old card-resident fingerprint could be silently dropped on backup, breaking certification paths. - gpgsm: Emit issuer and serial no. when the certificate is not found ([T8363]) — X.509 path-building reliability. - gpgsm: Return 0 if decryption of multi recipient file succeeds ([T8340]) — affects group-encryption workflows where a recipient-validation failure could cascade into a "no recipients" false negative.

Other 2.5.22 changes: Windows GpgOL registry-key surfacing (Sept 2), Nitrokey 3 added to pcsc-shared interference detection (Sept 2), LDAP upload flags now also work for KS_SEARCH (Sept 2 — used by gpg --keyserver-options), partial-file-guard fix ([T8399]), new primary option for --card-edit generate ([T8344]). 7 commits since Aug 27; 975★ (up from 971).

Why this matters for WoT: The TOFU fix is not on the same hot path as bkuptocard or gpgsm multi-recipient, but it is the most-advertised line in the release notes — and it is the one that, if a maintainer is reading the NEWS file before bumping their tooling, would prompt "huh, should I finally do that PQ Nostr thing now?" The empirical correlation with the kind:10203 bump is suggestive, not conclusive — but two NIP-85 publishers landing on the same day as a GnuPG release that improves TOFU correctness is the kind of coincidence the freedom-tech community would notice.

The 2.5.23 cycle is now open; T8425 is the release-info page.

3. Sequoia: 16 PQC Commits in a Week — The Doc Era Is Over

This is the largest non-trivial OpenPGP-PQ development since RFC 9980 was published in mid-2025. After three weeks of SLH-DSA documentation and dependency bumps, Sequoia's main branch received 16 commits since 2026-08-27 with substantial PQC content:

Aug 27 — FIPS integration lands: - openpgp: Load FIPS provider in permissive mode (ddd5d78b) - Merge branch 'jjelen/fips' into 'main' (1f52b67d) - 4× XXX: Use temporary version of ossl (f8cf53e7, 7dc30d06, 8c97dd4c, 34ffea8d, e4d69148) — these are scaffolding commits enabling the FIPS OpenSSL 3.x provider to be loaded alongside the standard provider, which is a prerequisite for FIPS-validated ML-KEM/ML-DSA operations.

Aug 29 — PQC algorithm IDs assigned (the historic week): - openpgp: Move NIST and Brainpool PQC algorithms to assigned IDs (cb912137, b4bfa8d4) - openpgp: Add NIST and Brainpool PQC cipher suites (850ea66d, ff422bd7) - openpgp: Update NIST/BP test vectors for assigned algorithm IDs (6dfd49d1) - openpgp: Require ossl 1.5.2 (f42d6c52) — pins the OpenSSL dependency that supports these algorithm IDs. - 2 merges: fluppe2/pqc-nist-bp-assigned-ids → malte/integrate-nist-…, fluppe2/pqc-nist-bp-cipher-suites-upstream → malte/integrate-nist-…

Aug 31: - Merge branch 'neal/insert-packets-merge-components' into 'main' (b3572827) — packet-insertion refactor that enables ML-KEM encapsulation packets to be assembled cleanly with existing v6 OpenPGP certificate structures.

Why "Move to assigned IDs" matters: OpenPGP algorithm identifiers are split between IANA-assigned numbers and "private/experimental" ranges. Until this week, Sequoia's PQC implementation was using experimental IDs — meaning other implementations could not interoperate. Moving ML-KEM, ML-DSA, and Brainpool variants to their assigned IANA IDs means a Sequoia-generated PQ-signed message can now be verified by an OpenPGP.js v6 client that also implements the same IDs, and vice versa. This is the interoperability step that turns "two prototype implementations" into "two production implementations."

The complementary Cipher Suite commits are the OpenPGP analogue of TLS cipher suite negotiation: they let two peers advertise which PQC combinations they support (e.g., "ML-KEM-1024 + ML-DSA-87 + AES-256-GCM + HKDF-SHA-512") and pick a mutually supported one. This is what RFC 9580's AEAD container infrastructure was built to support — and until this week, no OpenPGP implementation had wired the PQC cipher suites into the actual negotiation path.

The FIPS work is the other half: FIPS-validated cryptography is a hard requirement for any US federal customer and most large enterprises. The permissive-mode FIPS provider load means a Sequoia-built OpenPGP application running on FIPS-mode OpenSSL can use the FIPS-validated ML-KEM/ML-DSA implementations while still using non-FIPS code paths for non-PQC operations. This is the configuration the Sequoia team has been pointing toward since the NLnet funding announcement, and it shipped.

No new release yet — Sequoia last released 2.4.1 on July 9. But the gap between "code on main" and "a usable 2.5.0 release" just became a few weeks of stabilization rather than a few months of feature work. For freedom-tech: when a 2.5.0 ships, the dominant Rust OpenPGP library will be able to do PQ signature verification on a key it has not seen before, with algorithm IDs interoperable with OpenPGP.js v6 — closing the loop that the nostr-wot team's PR #2434 was trying to open on the Nostr side.

4. The Nostr-WoT Newsroom — First Sustained Operational Test

The run log gained 7 entries Aug 27–Sept 2:

2026-08-27 13:10 UTC  published  nip-a3-adds-payto-payment-targets  (2 sources)
2026-08-28 13:10 UTC  published  nip-a3-rewritten-a-day-after-merging  (3 sources)
2026-08-29 13:03 UTC  skipped    nothing new since last run; nips master has no commit after 24b2ae9f (2026-08-27, covered 2026-08-28); no client or relay release since Amethyst v1.14.0 (2026-08-22, already cited)
2026-08-31 13:07 UTC  skipped    Monday digest window (2026-08-25..2026-08-31) holds no uncovered change; all of #2448, #2119 and commit 24b2ae9f already published as stories on 08-25, 08-27 and 08-28; nips master HEAD is still 24b2ae9f (2026-08-27) and no client or relay release since Amethyst v1.14.0 (2026-08-22, already cited)
2026-09-01 13:09 UTC  published  nip-67-adds-an-auth-hint  (3 sources)
2026-09-02 13:20 UTC  published  nip-84-adds-i-tags-to-highlights  (3 sources)

That is 7 daily runs across 7 days, 5 published, 2 skipped, 0 paused, 0 failed. Last week's note flagged "the first paused or failed log line: how the kill switch behaves in real use is now the most interesting thing that can happen to this org" — neither has fired yet. The kill switch (content/news/PAUSE) remains untested in production.

What the stories covered, and how they match independent verification:

Date Newsroom story Vault-verified independent source
Aug 27 NIP-A3 payto NIPs PR #2119, merged 2026-08-26T18:33:31Z
Aug 28 NIP-A3 rewritten a day after merging NIPs commit Rewrite NIP-A3 because jesus christ. (Aug 27) — verbatim title
Sept 1 NIP-67 auth hint NIPs PR #2371, merged 2026-09-01T12:32:56Z
Sept 2 NIP-84 i-tags on highlights NIPs PR #2454, merged 2026-09-01T17:12:32Z

Four stories, four matches, zero false positives. The agent's skip-line on Aug 31 is particularly notable for its epistemic honesty: it explicitly enumerates what was considered and rejected, with commit SHAs and merge dates. The "Monday digest window" framing on Aug 31 is a new behavior — the agent is doing weekly digesting rather than daily novelty-hunting on Mondays.

The newsletter playbook's sourcing rule continues to hold. All four published stories source from GitHub API only (nips PRs, commits). None of the agent's output is sourced from prose web pages. The fabrication incident that prompted the rule (private repo described in lifted internal notes) has not recurred.

Why this matters for WoT generally: a public-facing publication that explicitly labels its output as machine-assembled ("treat claims accordingly and prefer the linked primary source for anything load-bearing"), that distinguishes published from skipped from paused from failed, and that has run 14 of the last 14 daily cycles without operator intervention is a trust substrate in its own right. A freedom-tech project that wanted to cite "what changed in Nostr this week" can now cite nostr-wot.com/news as an audited source — and the audit is the run log.

5. Pyramid — fiatjaf's Revival Continues, Now With Tunable WoT Thresholds

fiatjaf/pyramid (73★, up from 73) shipped 8 commits Aug 30–31 — the largest concentration of activity since June:

Commit Title Significance
2727ffb Aug 31 wot distance and popular/uppermost thresholds can be specified as either number or string WoT-config surface becomes user-tunable
0a2d3b7 Aug 30 sync only valid kinds Storage hygiene: drop non-spec events at sync time
58edcec Aug 31 inbox: fix two report-ban related missing things Moderation surface reliability
9629891 Aug 31 delete many events from /database at the same time Operational: bulk cleanup
9916913 Aug 31 tweaks and bugs from previous commits Maintenance
2375013 Aug 31 shutdown things on signal, maybe this wasn't happening with the defer? Lifecycle: clean shutdown on SIGTERM

The headline is the WoT-config commit. Until this week, pyramid's wot-distance, popular-threshold, and uppermost-threshold values were probably numeric literals. Now they accept strings too, which in practice means configuration files (toml/yaml/json) can carry them as strings, and operators can change them without rebuilding. For a relay that gates write-access on WoT distance, the question "what threshold should I use?" now has a runtime knob instead of a code-edit answer.

This is also relevant because pyramid is the canonical example the WoT literature cites for "WoT as relay policy." Every prior measurement this library has done on self-hostable WoT infrastructure — wot.nostr.net, Chronicle, wot-relay — has been downstream of pyramid's design choices. fiatjaf himself making the thresholds operator-configurable is a quiet vote of confidence in the deployment model.

6. The WoT Infrastructure Dead-Pile Hardens

Last week's tier classification of WoT providers gets sharper this week:

Dead or dying, hosted:

Host Status this week Operational class
wot.klabo.world NXDOMAIN (apex resolves), HTTP 000 Dead, week 4
nostr.band connect-timeout from VPN vantage, DNS resolves, HTTP 000 Dead, week 3
nostr-wot-oracle (public instance) dormant 13 weeks since Jun 4 Beta / self-host only
wot.klabo.world (NIP-85 provider) NXDOMAIN Dead

Alive, self-hostable: - wot.nostr.net (Bitvora deployment of barrydeen/wot-relay) — HTTP 200, week 7 since the first weekly measurement. Still the only operated self-hostable WoT relay answering the public internet. - fiatjaf/pyramid — revived and now committing (8 in 48 hours) - CodyTseng/nostr-relay-tray — v0.4.1 with the Aug 30 path-data fix (108★) - dtonon/chronicle — v0.5.0 stable, still in production deployment - __deleted__/Haven — unchanged

For the fourth consecutive week the bifurcation holds and sharpens: every hosted scoring provider without a self-hosting story is either dead, dormant, or in decline; every self-hostable pattern is either still maintained or actively growing. The 2026 WoT provider rule of thumb — "self-host the WoT, treat hosted scoring as disposable cache" — is now the only rule the data supports.

7. Obelisk Pivots — The Second PQ Implementation Is Structurally Gone

obelisk-app/obelisk (30★, up from 29; pushed Aug 31) shipped 9 commits Aug 29–31, all of them games:

2026-08-31 chain reaction: let the winning explosion play, and brighten the orbs
2026-08-31 stacker: speed curve over lines, and the full royalty-free playlist
2026-08-31 bridge: let a caller drop a dead pooled connection, and use it for games
2026-08-31 games: survive a dropped socket, and add the TETRA soundtrack
2026-08-30 games: seat names must mean the same thing to everybody
2026-08-30 games: a solo run that ends is not a draw
2026-08-30 stacker: opponent boards, rebindable keys, fullscreen, and end-of-game results
2026-08-29 games: relay-hosted games — Chain Reaction, Vesta, and Stacker
2026-08-29 chat: drop the OpenGraph link-preview cards

Chain Reaction, Vesta, Stacker are now first-class features in a relay-backed web application. The "bridge: let a caller drop a dead pooled connection, and use it for games" commit makes the relationship explicit — Obelisk is positioning itself as a Nostr relay client that hosts real-time multiplayer games, not as a PQ Nostr client.

Implication for the nostr-wot org's two-implementation threshold: Obelisk was the "half" in the org's "one and a half implementations" accounting for kind:10203. With this pivot, that accounting collapses — Obelisk still uses the SDK (it has to, to talk to relays at all), but the codebase is not building a competing PQ Nostr path; it is building games on top of standard Nostr. The "second independent PQ implementation" tripwire raised last quarter is now structurally unreachable from the only candidate codebase. If a real second implementation ever appears, it will have to come from somewhere else (Coracle, Amethyst, or a new entrant).

8. Upstream Nostr — Three Merges, No PQ, PR #2434 Frozen for 23 Days

The nips repo (3,094★, up from 3,090; pushed 2026-09-01) merged three substantive PRs since Aug 27:

  • NIP-A3 payto: Payment Targets (RFC-8905) (#2119, merged 2026-08-26T18:33:31Z) — already covered Aug 27 by the newsroom.
  • NIP-A3 rewritten (commit Aug 27) — already covered Aug 28 by the newsroom; the Rewrite NIP-A3 because jesus christ. commit message is itself a piece of NIP-governance color.
  • NIP-67: auth hint (#2371, merged 2026-09-01T12:32:56Z) — adds an auth hint to the EVENT and EOSE messages so clients can distinguish between a relay that requires authentication and one that doesn't. Already covered Sept 1 by the newsroom.
  • NIP-84: Add i tags to highlights, clarify that r is whatever (#2454, merged 2026-09-01T17:12:32Z) — metadata clarification for the highlight kind. Already covered Sept 2 by the newsroom.

Open PRs of note (none PQ):

PR Title Status
#2434 NIP-XX: Post-Quantum Identity Keys Open, untouched 23 days, sole comment = fiatjaf's nostr-tools#541 link
#2456 NIP-44: update test vectors checksum for the extended length prefix Recent
#2458 NIP-78: require AUTH for kind 30078 Recent
#2449 Add Static Website curation sets to NIP-51 Open
#2445 NIP-100: Sovereign Agent Identity Network (SNIN) — agent passports Open

100 open PRs total, 716 open issues. The PQ Nostr PR is the only one of its kind. The 23-day silence means the next time any PQ Nostr spec is drafted, it will have to be a fresh PR — there is no path to reviving #2434.

Client activity: - Amethyst (vitorpamplona/amethyst, 1,596★): 15 commits since Aug 27, all UI/i18n/perf. No PQ Nostr activity. Notable: the amethyst-commons-migration PR (#4025) and perf/amethyst-icon-font (#4043) suggest an architectural migration is in progress. The Sept 2 translations sync is a routine Crowdin pull. - Damus (damus-io/damus): 8 commits since Aug 27. Notable: "search: filter muted notes out of text search results" (Sept 2) — a quiet but real WoT-as-feature integration. Damus's local mute list (NIP-51) now actively de-weights muted notes from text search results. This is the kind of WoT integration that doesn't need protocol work — it's a client-side ranking decision that makes WoT visible in everyday UX. Also: nostrdb: add a batched note lookup under one transaction and search: add AdvancedSearchQuery and the local query planner — the search infrastructure underneath is being hardened. - nostr-tools (nbd-wtf/nostr-tools, 852★): 2 commits (Use limit:1 for enablePing dummy REQ Sept 1, Add React Native section to the README Aug 28). Nothing PQ.

The pattern is the same as last week, but the institutional track (GnuPG 2.5.22, Sequoia 16 commits) is now converging with the Nostr-week's most-cited event (the NIP-A3 rewrite, the NIP-67 auth hint). The only place where Nostr governance and PQC intersect right now is PR #2434, and it has been motionless for 23 days.

Evidence at a Glance

Project / Component Maturity Active Dev Key Links Notes
GnuPG 2.5.22 (Aug 31) Mature Active NEWS, T8404 TOFU UTK-signature check fixed; bkuptocard regression fixed; 975★, 7 commits/wk
Sequoia mainline Mature High (16 commits PQC) GitLab atom NIST + Brainpool PQC algorithm IDs assigned Aug 29; cipher suites added; FIPS permissive provider; no release yet
kind:10203 adoption Plateau broken — Direct relay queries Sept 3 22 → 24 pubkeys on nos.lol, both new on Aug 31 (GnuPG 2.5.22 day)
@nostr-wot/pq v0.2.2 Maintenance Frozen Aug 16 npm 25 dl/week (was 26)
nostr-wot-sdk v1.0.1 Maintenance Frozen Aug 17 npm 35 dl/week (was 59)
nostr-wot newsroom Production (autonomous) High (7/7 daily runs) playbook, run log 5 published, 2 skipped, 0 paused, 0 failed; first sustained operational week
nostr-wot-extension v0.5.2 Production Frozen 15 days GitHub 8★, 7 open issues
NIPs PR #2434 Proposed Stalled 23 days PR Sole comment = fiatjaf's nostr-tools#541 link
nostr-protocol/nips Mature Active GitHub 3,094★; NIP-A3 rewrite, NIP-67 auth hint, NIP-84 i-tags merged — none PQ
fiatjaf/pyramid Production High (8 in 48hrs) GitHub 73★; WoT thresholds now operator-tunable; signal handling; bulk delete
Obelisk Games app now High (9 commits) GitHub Chain Reaction/Vesta/Stacker; PQ impl threshold now structurally unreachable
wot.nostr.net (bitvora) Production Operated site HTTP 200, week 7
wot.klabo.world Dead (wk 4) — — NXDOMAIN, apex OK
nostr.band Dead (wk 3) — — connect-timeout, DNS OK
nostr-relay-tray Production Aug 30 patch GitHub 108★; platform-appropriate dir
PGPainless WoT In development Maintenance pgpainless-wot NLnet funded; main repo pushed 2026-08-05
Damus Mature Active GitHub Search now filters muted notes (WoT integration); advanced search query planner
Amethyst (vitorpamplona) Mature Active GitHub 1,596★; 15 commits, all UI/i18n/perf; commons migration in progress

Strategic Analysis — Convergence Without Ratification

The two tracks are now landing in the same week

Last quarter's framing was "the institutional OpenPGP track advances by documented steps; the insurgent Nostr track freezes once the specs are written." That held through August. This week it inverted on the institutional track while the Nostr track held its plateau.

The GnuPG 2.5.22 TOFU fix and the Sequoia PQC algorithm-ID assignments are the kinds of changes that took the longest possible time to land because they are infrastructure-deep. Moving PQC algorithm IDs from experimental to IANA-assigned is the kind of patch that requires an implementer to read RFC 9580 §9, RFC 9980 §5, and the IANA OpenPGP registry and decide that this is the right moment to break any forward compatibility for code paths that were using experimental IDs. GnuPG fixing a long-standing TOFU bug is the kind of patch that requires someone to write a regression test, demonstrate the bug, get it reviewed, and land it — work that nobody is paid to do unless the bug is embarrassing enough. Both landed this week.

Why it matters for the Nostr side: the nostr-wot org's PR #2434 is a NIP that says "let's use the same cryptographic primitives that Sequoia and GnuPG are now wiring up." PR #2434 cannot move without fiatjaf's approval. fiatjaf has not been heard from on the issue since Aug 11. The institutional track is moving anyway — not because Nostr approved it, but because the IETF OpenPGP WG did, and because the FIPS-validated OpenSSL provider now exposes the algorithms. The Nostr PQ shadow protocol is now using a stack that exists whether or not the NIPs merge it.

The kind:10203 stair-step is real, but small

Two new publishers in 13 days is not a wave. It is a single coordinated event (the two attestations were signed within seconds of each other on Aug 31 10:22:05 UTC) by two maintainers who were waiting on something — and that something is most likely the GnuPG 2.5.22 release with its TOFU fix, or perhaps just the general news cycle around PQC. The August 18 single event (one new publisher in 7 days) was similar in shape, but smaller. The launch-cohort step (22 in 48 hours Aug 10–11) was the kind of step you get when a project publishes its spec and the founding team plus interested observers run the tool once.

The right read is: each institutional PQ release prompts a small stair-step, not a wave. Sequoia's 16 commits this week haven't shipped yet (no new release); when the next Sequoia 2.5.0 ships, expect another 1–3 new publishers within 48 hours. The total ceiling is probably 100 in the optimistic case, 50 in the realistic case, and 24 in the pessimistic case. None of these scenarios put kind:10203 into "you can rely on it for production" territory; all of them put it into "the experiment continues to work."

The newsroom has passed its first real operational test

Fourteen daily runs, twelve published, two skipped, zero paused, zero failed. The kill switch (content/news/PAUSE) has not been triggered in production. The pause logic is documented and reviewed; it has just never had to fire. The Daemon-network-relevant pattern — structured-API-only sourcing, log-every-run semantics, kill-switch-as-file, in-repo editorial governance — is now a working artifact rather than a design proposal. The freedom-tech takeaway is concrete: a small organization with no full-time editor can run a daily publication on the strength of a 7.5 KB playbook, as long as the playbook is enforced by the agent itself and the failure modes are observable in git.

The next test for the newsroom is the first contested factual claim. So far the agent has only covered uncontroversial protocol additions (NIP-A3, NIP-67, NIP-84). The NIP-A3 rewrite story — which has a verbatim commit message with mild editorializing ("Rewrite NIP-A3 because jesus christ.") — is the closest to opinion the agent has published, and it reported the rewrite neutrally without commenting on the original. The first time the agent has to write something like "this NIP is being contested" or "this client released a controversial update," the playbook's editorial rules will be tested for completeness.

Pyramid's revival is the only non-empty data point for "WoT is moving forward"

This week's biggest under-the-radar development is fiatjaf making pyramid's WoT-distance thresholds operator-configurable. It looks like a minor UX change ("you can pass a string now"); it is actually the first time the WoT-policy surface of a major Nostr relay has become runtime-tunable without a rebuild. Until now, if you wanted to run a WoT-gated relay with different distance or popularity thresholds than the default, you forked pyramid and edited constants. Now you write a config file. This is the same shift that made wot-relay and Chronicle practical to self-host last year: removing the "fork + rebuild" step from operator customization. The shift doesn't make the news, but it is what makes the difference between "an experimental pattern that fiatjaf runs in a corner of his relay set" and "a deployment pattern that any operator can adopt."

Tripwires for next quarter (updated)

  • (raised) Sequoia 2.5.0 release with assigned PQC algorithm IDs — when it ships, expect kind:10203 to bump by 1–3 within 48 hours, as the "I'm waiting for stable tooling" cohort makes their move.
  • (new) A second implementation of any PQ Nostr spec that isn't Obelisk. With Obelisk now structurally games-only, the threshold that the nostr-wot org itself set ("two, not one and a half") is only reachable by a fresh project. Coracle is the most plausible candidate; watch the coracle-social GitHub.
  • (unchanged) GnuPG 2.5.23 cycle — TOFU post-mortem or follow-up fixes.
  • (unchanged) NIPs PR #2434 motion (or a successor PR with a different number).
  • (new) The newsroom's first paused or failed log line — still untested in production.
  • (new) A third consecutive week of wot.klabo.world NXDOMAIN / nostr.band connect-timeout → formally retire them from the index tables.
  • (new) Damus shipping muted-note filtering in production release — currently search: branch work, not yet on a release tag.