---
title: "Nostr Compass #30 — 2026-07-08"
source: "https://nostrcompass.org/en/newsletters/2026-07-08-newsletter/"
type: newsletter-summary
language: hu
ingested: 2026-07-09
---

# Nostr Compass #30 — 2026-07-08

**Eredeti forrás:** [nostrcompass.org/en/newsletters/2026-07-08-newsletter/](https://nostrcompass.org/en/newsletters/2026-07-08-newsletter/)

## Vezértörténetek

### Marmot: a spec „adopted” státuszba került, MDK v0.9.0–v0.9.3
A Marmot Protocol repó július 3-án egy PR-rel 42 fájlt váltott át `Status: draft for internal review`-ről `Status: adopted`-re. A README címe is változott, a MIP-korszak dokumentumai elavultnak jelöltek, a „v2” labelek eltűntek, a „Review Status” szekció pedig „Review Guidance”-dá alakult. Két fájl szándékosan maradt draft: az `implementation-model.md` (nem normatív) és a multi-device feature saját doc-ja. Két további PR (admin-policy / membership invariantok, wire-boundary validation) szigorítja a komitensek érvényességét és a KeyPackage 84 nap + 1 óra skew ablakát.

Az MDK workspace v0.9.0–v0.9.3-at vágott négy nap alatt: validate-before-mutate storage discipline, egy host-safety dial az összes kimenő kapcsolatra (egységesített hálózati validáció), valamint encrypted group avatar-ok és külső signer támogatás a uniffi bindingokon. A MarmotKit iOS (xcframework + Swift) és Android (Kotlin + JNI) bindingok azonos MDK commit hash-re pin-elve release-elődnek. Új wn-agent release channel shell installer-ekkel.

### Mostro v0.18.0 + Mobile v1.3.0: Transport v2 NIP-44-en
A mostrod daemon átállt Transport v2-re: NIP-44-es DM-ek, anti-spam kapuk, dual-receive a szerver oldalon. A Phase 1–3 PR-ek (v2 wire, anti-spam gate, dual-send/dial-receive) mellett Phase 4 unified live-quote path cache-and-staleness enforcement-tel, El Toque fiat-cross provider CUP/MLC párokra, és slashed-party notification a dispute bond slash után. A Mobile kliens Riverpod 3.x-re migrált, és kibővítette az afrai fizetési módokat (MWK, KES, MZN, TZS, UGX, ZAR, ZMW, illetve bővített NGN). A restore flow megvárja a node connectivity-t, és külön kezeli a dispute vs timeout slash-t.

### Bitchat 1.6.0: NIP-13 PoW + opt-in mesh-to-Nostr gateway
Két Nostr-alakú feature. (1) **NIP-13 PoW** a kind 20000 geohash channel üzenetekre: 8 leading zero bit target, <1 ms M-series Mac-en, validált PoW-jú bejövő event lazítja a per-sender intake rate limitet. (2) **Gateway mode**: ha egy mesh-only user egy `.gateway` képességű peer közelében van, az aláírt kind 20000 event `MessageType.nostrCarrier = 0x28` TLV envelope-ban feljut a Nostr-ra, a gateway lepublisholja és a bejövő forgalmat visszaszórja a mesh-re (disaster / protest scenario-kra). A signature azelőtt készül, hogy az event elhagyja a sendert — a gateway nem forge-olhat attribúciót. Továbbá: prekey bundle-ök (async first contact courier mail-en), transitive verification (1-hop trust propagation), creator-managed encrypted private groups, Cashu ecash redeem `/pay` paranccsal, persistent signed geohash bulletin board, open couriers spray-and-wait routing-gal és 6 órás public history ablakkal.

## Címkézett release-ek

- **Amber v6.2.3** — profile fetch interval beállítás (never/always), profile kép az account switcherben, profile subscription-ök per-account scoping; NIP-65 relay list fetch a profile metadata előtt; Tor notification élő státusz indikátorrá vált restart akcióval; Android Lint strict warnings-as-errors mód.
- **Jumble v26.7.1** — Blossom az alapértelmezett upload service (NIP-96 helyett); mobile DM menu, „scroll to latest”, long-press reactions, retry path a failed outgoing DMs-re; custom emoji detail view, Linux ARM64 build-ek.
- **Applesauce signers 6.2.2** — `@sandwichfarm/encoded-entities` függőség elhagyva, beépített nbunksec helper; eggyel kevesebb supply-chain surface a NIP-46 bunker session encoding-hoz.
- **Ngit v2.6.2** — `git push` a default branch-re nem publishol duplikált PR merge/applied státusz event-eket (pre-push Nostr repo state az authority, nem a git heurisztika).
- **Bray v1.33.0** — `bunker --profile` auto-stable connection key + relay fallback; `bunker --persona` derived nsec-tree identity; Tor SOCKS proxy minden HTTP fetch-re; NIP-47/NIP-29/NIP-86/NIP-65 wallet subcommand-ok; `--jsonl/--csv/--tsv` output flag-ek, `req`/`event`/`publish-raw`/`bunker sign` verbek; reproducibilis npm tarball (533,844 byte, két független CI runner).
- **Deepmarks 1.0.0** — IPv6-literal SSRF bypass fix `[::1]`/`[fd00::1]`/IPv4-mapped címekre; `kind:0` profile-ok signature verify az ingest-nél; `kind:39701` `d`-tag-ek scheme-checked minden render sink-en; zap receipt-ek túlélnek egy bunker outage-et (atomic claim, post-sign finalize, release on failure); `/publish` fan-out `BLMOVE`-val heartbeat-gated recovery-vel.
- **Bitcredit Core v0.5.13** — block metadata (id, hash, signature) immár unencrypted a Nostr wire-ön, csak a block data marad bill key-jel titkosítva; optimista threshold model a publish-ra (1 relay default threshold, async fan-out).
- **Coop Mobile v0.2.3 / v0.2.4** — inline image/link render, image attachment, speech-to-text, contact removal confirm; stuck indicator fix, Nostr Connect handshake javítás, `ncryptsec1` import (NIP-49) + redesignelt import identity screen.
- **Granary v11.0** — NIP-71 video event-ek (kind 21/22/34235/34236) ActivityStreams 1 note-okká konvertálva; `imeta` thumbnail, video duration, `published_at` és `alt` fallback `displayName`; `sign` → `hash_and_sign`, `verify` raises `ValueError`; NIP-42 AUTH gracefully skipped ha nincs privkey.
- **Nostr-relay v0.0.244** — Firestore backend a Go relay-hez (mattn), managed serverless DB opció.
- **Manent v1.4.0** — NIP-42 AUTH fix, Blossom upload `http://` korrekció, compression flow rewrite; image clipboard copy/paste, drag-drop, crop/rotate, video/gif playback, long-press camera; Linux middle-click primary clipboard.
- **Routstrd v0.3.7** — `routstrd update` subcommand (graceful restart); 21 percenkénti `refreshNostrEvents()`; a Nostr event store a persistent source of truth (210 perces TTL törölve); Xcashu refund retry 3×, 425 Too Early handling.
- **Nymchat 1.0.1** — PWA + iOS/Android messenger, ephemeral chat Nostr/Bitchat bridge; kind 20000/23333 channels, NIP-17 gift wrap DM-ek forgó ephemeral recipient key-ekkel; NIP-07/NIP-46/nsec login; WebAuthn PRF / PBKDF2 device-local identity encryption; NIP-17 signaling + WebRTC media; Cloudflare Pages Functions privacy proxy.
- **21Meetup 1.1.0** — Flutter app az Einundzwanzig német Bitcoin közösségnek; NFC tag + 10 másodperces rolling QR; kind 21000 attendance badge BIP-340 Schnorr aláírással a meetup organizertől; lokális trust score a badge-ekből, QR-ben prezentálható P2P trade verification-re.
- **Nostrord v2.0.0 / v2.1.0** — KMP/WASM Nostr kliens; v2.0.1 kritikus desktop fix (`java.sql` modul jpackage jlink image-be, plus routing az optimistic send a network layer-re); v2.1.0 relay pool fold (NIP-29 socket a shared poolba, egységes reconnect scheduler, NIP-42 AUTH retry, fail-closed publish), PR #179 zombie WebSocket detekció Androidon (Doze / mobile network silent TCP kill, `lastInboundAtMs` stamp, `markDead()` + `probeLiveness()` 5 másodperces REQ bármelyik relayre).

## Unreleased work

- **rust-nostr PR #1384** — `GiftWrapBuilder` és `PrivateDirectMessageBuilder` kapnak `expiration` opciót (`Duration`, NIP-40 tag a wrap randomizált `created_at`-jához anchor-ölve, nem absolute timestamp — különben send time leak). NIP-17 ugyanazt az értéket adja le. PR #1387: `nostr-relay-builder` összevonva a `nostr-sdk`-ba.
- **Amethyst — 43 PR, három fő téma**: (1) negentropy sync hardening a geode↔strfry határon (refused-window backoff, v1.1.1 függőség, 1M-event benchmark strfry-parity mirror-ral, lock-free concurrent collections); (2) NIP-50 full-text search infra (`SearchableEvent` interface, NIP-50 extension strip a SQLite FTS előtt, centralizált default search relays); (3) niche verticals: Birdstar kind 2473 bird-detection, PS1 memory-card save state kind 38192, compose-signature auto-append, privacy lock a Messages oszlopon, `equals`/`hashCode` fix az OpenTimestamps verify path-ban.
- **Buzz (volt Sprout) — 123 PR július 1–7.**: (1) **kind 44200** NIP-AM agent turn metrics-nek (signed event a user relay-én, lokális archívummal, modellnév a turn-ben); (2) relay perf (post-commit dispatch defer + verify clone elkerülés, batched ingest/fan-out p99 ack 7–16% / p999 tail 29–53% drop, bounded-concurrency multi-filter, batched WebSocket send); per-community workspace icon NIP-11 extension, agent owner kind:5 delete, OpenTelemetry + Prometheus, git repo-name registry → Postgres.
- **Divine Video mobile — 97 PR**: trust boundary hardening (PR #5774 inbound event signature verify, PR #5828 FCM push token encrypted a kind-3080 dereg event-ben, PR #5831 chunked kind:5 deletion REQ); `NostrConnectCoordinator` extraction a `nostrconnect://` flow-hoz (NIP-46 client-initiated bunker cleanup, issue #4741 előkészítés); kind-16 repost mapping ha `notification_type` hiányzik.
- **Zap Cooking frontend — 18 PR**: bunker login fix explicit connect handshake + error surfacing (PR #503); NIP-98 auth az extract-recipe upload pathokon (PR #495); NIP-50 recipe search a nostrarchives backend-en (PR #483); quoted-note + media inline render, link preview, hashtag sizing, multi-word search, server-side OG cards.
- **swift-nostr-client v0.6.0** — 30 PR, közelít az első stabil API surface-hez a Swift Nostr klienseknek MDK/MarmotKit nélkül.
- **Nostr Applet Protocol (NAPS)** — NAP-OUTBOX szigorítása: kevesebb caller-controlled routing, kevesebb leaked relay detail, shared event result shape relay hints + resource sidecar-okkal (NAP-RESOURCE); explicit outbox/inbox/relay fanout szabályok.
- **Napplet toolchain** — NAP-COUNT query, OUTBOX runtime-owned lifecycle, RelayEventResult sidecar-ok, CVM registry, DM error envelope, MEDIA session context, LISTS count, COMMON profile results, `htree:` RESOURCE séma. Új `@napplet/cli`: config discovery, deploy planning, signing, Blossom uploads, manifest generation. Host-injectable shim prelude, JSR readiness.
- **primal-android — 18 PR**: `switch_relays` és `logout` a remote-signer role-hoz (PR #1075), splash-gated local app-migration framework (PR #1083), note-feed prefetch a splash view-model-ben (PR #1080).
- **Wisp — 9 PR**: multi-account switcher explicit cancel path (PR #604), `Blossom.parseServerList` unit tesztek (PR #613), zap sheet iOS rewrite (PR #574), transaction history swipe-up bottom sheet (PR #605), non-ASCII hashtag parser (PR #611), inline gallery media a profile notes feed-en (PR #609), blank line preservation (PR #603).
- **TAO + Wired — 13 PR**: default post-signal PoW target → 21 leading zero bit (PR #84); feed roots from fresh PoW activity a timeline ranking-hoz nyers event age helyett (PR #80); custom emoji picker restore (PR #75); first-frame video preview (PR #65). A második NIP-13-as kliens ezen a héten a Bitchat után.
- **keep-android v1.1.5 / v1.1.6** — NIP-46 challenge flow UX polish; TOCTOU race fix `set_active_share`-ben; NIP-98 approval prompt URL + method surfacing; RNG health check fail-closed (panic helyett error); v0.5.0 keep core pin (threshold-OPRF unlock, software DKG, HD FROST wallet-ek CLI-only, app-ba még nem kerültek).
- **Heartwood v0.7.0** — relay-to-serial signing bridge (PR #11), serial-frame coverage + device `read_frame` payload offset fix (PR #13), `heartwood-frame` crate extraction (PR #14). HSM-mode data plane Bray serial-signer path-hoz.
- **SafeBox — Phase 3 lényegében complete**: 49 commit az áprilisi riport óta (1136 összesen); mutating NWC actions queue-ölve proof race-ek ellen, failed Lightning melts protect proofs, long-lived NWC listeners proaktív refresh, LNURL callback canonical origins + explicit JSON/CORS; QR/NFC record exchange unified flow spec (recipient-presented, sender-presented, cross-device) KEM handling + replay protection OQS-sel; FreeBSD jail deployment + liboqs build runbook (commit `6866dae`); OpenETR spin-off (electronic transferable records — bills of lading, warehouse receipts, promissory notes, certificates) 7 commit július 7-én.

## Protokoll munka és NIP frissítések

- **Merged: NIP-51 + NIP-37 name alignment** (PR #2404) — a kind 10013 neve mostantól konzisztensen `Relay List for Private Content` a NIP-51 `Draft relays` szekciójában is. Nincs wire change.
- **Open: NIP-AD — Nostr Web Addresses** (PR #2406) — `.well-known/nostr.json?ad=/path` lookup, ami path → `{filter, relays}` mapping-ot ad vissza. Standard NIP-01 filter, szabadon variálható `limit`. Ugyanaz a domain HTML-t szolgáltat web böngészőknek és Nostr klienseknek egy kanonikus path-ról. Use case-ek: NIP-29 group name → kind 39000 lookup (nincs többé group id farming), NIP-5A nsite, hosted feed `{"ids": [...]}`, beillesztett `njump.me/nevent1...` natív render, Nostr-fueled blog. Statikus fájl is lehet.
- **Open: NIP-86 claim management invite code-okra** (PR #2408) — három új RPC method: `listclaims`, `createclaim`, `deleteclaim`. Community-relay onboarding flow: admin fizetés előtt create-eli a claimet, user a kind 28935 claim event-re válaszol, bot auto-assignolja a role-t.
- **Open: role color HSL tuple** (PR #2402) — NIP-43 role color `hue` (0–360) → `(hue, saturation, lightness)`. Empty string bármelyik komponensben megengedett (client default). NIP-86 `createrole`/`editrole` signature frissül: `[id, label, description, [h, s, l], order]`. Motiváció: hue alone kliensenként más intenzitást eredményez.
- **Open: NIP-80 — hardware-attested media provenance** (PR #2409) — kamera capture pillanatában ír alá, a proof a content által kulcsolva relay-re kerül (túlél metadata strip / re-host / takedown). Hat új kind: 1080 (capture attestation), 1081 (derivation: resize/crop/recompress/redact, reveal mode vagy ZK opció), 1082 (revocation, monotonic, author-scoped), 11080 (device announcement), 31080 (device endorsement), 31081 (device set, experimental, lehet külön NIP). Reused: NIP-94 `x`-tag, NIP-92 `imeta`, NIP-65 revocation discovery, Blossom storage, NIP-03 timestamp anchoring opcionális. Signing: BIP-340 device key + hardware ECDSA key (Microchip ATECC608 P-256, NXP SE050 secp256k1 ECDSA-only, TPM 2.0 P-256/RSA, Apple SE / Android StrongBox P-256). Explicit scope: nem bizonyítja, hogy a scene valódi, csak hogy ez az image ebből az eszközből ekkor jött, és csak deklarált, provable módon módosították. Tilos „authentic” bare badge-re collapse-olni. Működő prototype: **OpenVeilCam** (Rust, Raspberry Pi, ATECC608).
- **Open: NIP-01 pagination hardening** (PR #2407) — új „Pagination & limits” subszekció. Relay max `limit` > a DB-ben egy másodpercre jutó max eventszám; backward paging `until = oldest` (inclusive) + `id` dedup, complete ha nincs új event; stuck másodperc → retry nagyobb `limit`-tel, ha relay clampel → `until = oldest - 1` vagy abort. Normál paging SOHA ne állítson `limit`-et (kivéve a stuck second drain-t).

## NIP Deep Dive: NIP-13 (Proof of Work)

A mechanizmus: az event id (`sha256(serialized event)`) leading zero bit-számát miningolja a szerző egy `nonce` tag-en keresztül, target bits értékkel. A `target_bits` claim, a tényleges leading-zero count a verifikáció. 8 bit átlag 256 hash (Bitchat geohash channel, <1 ms M-series Mac), 20 bit ~1M (TAO/Wired default, 21 bit), 28 bit ~268M. Nem mandátum, minden relay és kliens saját maga dönt.

## NIP Deep Dive: NIP-40 (Expiration Timestamp)

Az `expiration` tag unix timestamp-et tartalmaz; a relayek/cliensek törölhetik vagy elutasíthatják az eventet ezen idő után. Hasznos ephemeral, signer-issued invite code-ok, paywall content, time-bound offers esetén. A `created_at` a valódi publish idő, az `expiration` ahol szükséges — NE használd „scheduled delete”-re, mert a `created_at` timestamp a bányászathoz és feed rendering-hez is használatos.
