Nostr Compass #24
Amethyst v1.11.0은 리마인더, 온체인 Bitcoin zap 분할, Marmot 그룹 답장 지원을 갖춘 완전한 NIP-52 캘린더 구현을 도착시켰습니다. White Noise v2026.5.22는 Notification Service Extension을 통한 iOS 푸시 알림을 차단 UX 및 add-members 버튼과 함께 출시합니다. Vector v0.4.0은 처음부터 다시 만든 vector-core 재작성, 브릿지가 있는 원클릭 Tor, NIP-46 원격 signer, full-negentropy MLS 그룹 동기화, AI 에이전트용 21개 도구 MCP 서버를 도착시켰습니다. Applesauce v6.1.0은 NIP-51 lookup 릴레이 리스트(kind 10086)와 완전한 NIP-34 git-cast 팩토리 세트를 도입합니다. MDK는 통합된 UniFFI 표면을 통해 iOS와 Android 전반에 걸쳐 NIP-40 사라지는 메시지를 추가하고, Mostro v0.17.4는 승자에게 지급되는 Phase 3 slashed-bond 지급으로 anti-abuse 본드 루프를 닫습니다. Notedeck은 giftwrap 및 스레드 백필을 위한 완전한 NIP-77 negentropy 조정을 병합하고, Cordn은 코디네이터 매개 MLS 메신저로 등장하여 단일 지점 가용성 종속성을 더 긴밀한 epoch 정렬과 더 간단한 운영 모델과 교환하며, NIP-B0 참조 구현인 deepmarks는 큐레이터가 수익화하는 북마크 클라이언트를 출시하고, Formstr 팀은 참가자 자체 제거, 프라이빗 이벤트, 반복, 분산 약속 스케줄링을 다루는 네 개의 조정된 캘린더 NIP 제안을 엽니다.
주요 소식
Amethyst v1.11.0: 캘린더, 온체인 zap 분할, Marmot 답장
Vitor Pamplona가 유지 관리하는 Android용 Nostr 클라이언트인 Amethyst가 v1.11.0을 출시했습니다. PR #2994는 전용 UI와 리마인더 시스템이 있는 NIP-52 캘린더 이벤트 구현을 추가하므로, 캘린더 이벤트는 이제 제네릭 kind-30023 롱폼 뷰와 별개인 자체 타임라인 카테고리에 렌더링됩니다. PR #3018은 기존 zap-split 태그에 따라 여러 수신자에 걸쳐 단일 Bitcoin 트랜잭션을 분배하는 분할 지원으로 온체인 Bitcoin zap을 확장하므로, 온체인 결제는 Lightning 분할과 동일하게 동작합니다. PR #2974는 블록 확인 상태와 함께 정산된 각 zap을 표시하는 페이지 매김된 온체인 트랜잭션 이력 화면을 추가합니다.
그룹 메시징은 일대일 채팅과 동등해집니다: PR #2995는 Marmot/MLS 그룹 메시지에 답장 지원을 추가하므로, 암호화된 그룹 내부의 스레드는 이제 공개 노트와 동일한 부모 참조 UI로 렌더링됩니다. PR #2984는 LNURL provider가 수신자의 명시된 lud16과 일치하는지 확인하여 NIP-57 zap 영수증 검증을 강화하고, 제3자 LNURL이 착륙하지 않은 결제에 대한 영수증을 발행할 수 있는 위조 클래스를 닫습니다. PR #2968은 NIP-92 imeta 태그에서 부동 소수점 차원을 허용하여, iPhone Retina 디스플레이와 같은 기기의 분수 픽셀 밀도 값을 게시하는 클라이언트와 Amethyst를 정렬합니다. 이 릴리스는 또한 아래 프로토콜 섹션에서 다루는 새로운 replaceable 이벤트 다중 레일 팁 항아리인 Payment Targets를 연결합니다.
White Noise v2026.5.22: iOS 푸시, 차단 UX, 멤버 추가
Marmot 프로토콜 그룹 메신저인 White Noise는 헤드라인 기능으로 iOS 푸시 알림과 함께 v2026.5.22를 출시했습니다. PR #673은 확장 프로세스 내부에서 MLS 메시지를 복호화하고 시스템 알림으로 표시하는 iOS Notification Service Extension(NSE)을 구현하므로, iPhone 사용자는 더 이상 메시지를 받기 위해 앱을 포그라운드에 둘 필요가 없습니다. Android 푸시 토큰 플러밍은 동일한 백엔드 파이프라인을 통해 라우팅되며, 플랫폼별 NSE는 암호문을 브로커 밖으로 유지합니다.
PR #676은 확인 흐름과 연락처 리스트 필터링이 있는 완전한 차단 및 차단 해제 UX를 추가합니다. PR #679는 오랫동안 요청되었던 “Add members” 버튼을 그룹 정보 화면에 추가하여, 그룹 관리자가 공유 링크로 대체해야 했던 UX 격차를 닫습니다. PR #688은 전용 iOS 알림 설정 화면을 도입하고, PR #687은 미디어 및 메시지에 대해 길게 누르기 공유를 연결합니다.
MDK, 플랫폼 전반에 걸쳐 NIP-40 사라지는 메시지 추가
White Noise iOS, White Noise Android, 그리고 미래의 모든 Marmot 클라이언트가 사용하는 공유 Rust 코어인 Marmot Development Kit은 UniFFI 브릿지를 통해 사라지는 메시지 검증 및 NIP-40 만료 처리를 노출하기 위해 PR #306을 병합했습니다. 이 PR은 세 부분 시리즈의 두 번째입니다. iOS와 Android는 이제 만료 로직의 하나의 Rust 구현을 공유합니다; 타이밍 규칙은 UniFFI를 통해 두 플랫폼 모두가 소비하는 단일 감사된 코드 경로에 있습니다. PR #307은 저장된 환영 실패 이유의 길이를 제한하고 유지 전에 정리하며, 지난주에 출시된 환영 이벤트 처리를 보완하는 별도의 강화 단계입니다.
MLS의 사라지는 메시지는 단순한 UI 어포던스가 아닙니다. 만료 태그는 암호화된 메시지 봉투와 함께 게시되므로, 메시지를 열지 않은 수신자도 수신 클라이언트의 캐시된 사본과 함께 릴레이 계층에서 기본 암호문이 만료됩니다. MDK가 검증 경로를 소유하므로 클라이언트 전반에 걸쳐 동작이 일관되게 유지됩니다: 준수하는 모든 Marmot 구현은 동일한 만료 시맨틱을 강제하므로, 하나의 클라이언트가 만료를 존중하는 동안 다른 클라이언트가 영원히 캐시하는 것은 이식성 위험이 되지 않습니다.
Mostro v0.17.4: Phase 3, slashed-bond 루프 닫기
Nostr 위에 구축된 P2P Bitcoin 거래 프로토콜인 Mostro는 v0.17.4에서 anti-abuse 본드 롤아웃의 Phase 3을 출시했습니다. PR #738은 slashed 본드에 대한 지불 흐름을 도착시켜, 패자의 몰수된 담보를 가져와 분쟁 승자에게 지불합니다. PR #743은 Phase 3.5를 추가하며, 승자에게 slashed sats가 정산되었음을 알리는 명시적인 지불 확인 메시지로, 확인 이벤트는 분쟁 해결과 동일한 Nostr 세션에 도착합니다. 지난주에 다룬 Phase 2는 admin 액션으로 slashing을 도입했습니다; Phase 3은 페널티를 위협하는 것과 강제하는 것의 차이입니다.
PR #746은 데몬이 solver 행이 없는 분쟁을 마무리할 수 있게 하며, 이전에는 레거시 분쟁의 해결이 정체되던 엣지 케이스입니다. PR #748은 Yadio의 /exrates/BTC 응답에서 null 요율을 허용하므로 짧은 Yadio 중단이 더 이상 Mostro의 법정 화폐 변환 경로를 깨뜨리지 않습니다. PR #745는 단일 실패 지점으로서의 Yadio를 제거하기 위한 기초 작업인 다중 소스 가격 provider에 대한 사양을 문서화합니다. Mostro 모바일 클라이언트는 PR #596에서 매칭 Phase 3 청구 경로를 연결했습니다.
Applesauce v6.1.0: lookup 릴레이 및 NIP-34 git cast
Coracle, noStrudel, Pablo F7z의 스택을 구동하는 모듈형 Nostr 툴킷인 Applesauce는 패키지 전반에 걸쳐 v6.1.0을 출시했습니다. 이 릴리스는 일급 NIP-51 lookup 릴레이 리스트 지원을 추가합니다: kind 10086 이벤트는 사용자가 “나를 찾으려면 이 릴레이에게 물어보세요"를 신호로 보낼 수 있게 하며, 발견 프리미티브로서 NIP-65 outbox 리스트와 함께 자리잡습니다. applesauce-core 위에 구축된 애플리케이션은 반응형 User.lookupRelays$ observable과 applesauce-relay의 매칭 로더를 얻습니다.
NIP-34 git-cast 팩토리는 applesauce-factory에 도착하여, 모든 Applesauce로 구축된 클라이언트에 저장소 공지(kind 30617), 패치(kind 1617), 이슈(kind 1621) 게시에 대한 한 줄 경로를 제공합니다. User.favoriteGitRepos$, User.gitAuthors$, User.graspServers$ 반응형 속성은 애플리케이션이 사용자가 팔로우하는 리포지토리, repo 유지 관리자, 구성된 GRASP 서버를 동일한 User 객체에서 직접 나열할 수 있게 합니다. 이 릴리스는 또한 PR #73에서 오프라인 릴레이를 조용히 드롭하는 pool 수동 메서드를 수정합니다.
Notedeck, giftwrap 및 스레드 백필용 NIP-77 negentropy 병합
Damus의 네이티브 다중 열 데스크톱 클라이언트인 Notedeck은 5월 25일에 PR #1459를 병합하여 완전한 NIP-77 negentropy 조정을 공유 outbox 경로에 연결했습니다. 이 PR은 NIP-77 클라이언트 및 릴레이 프레임, 릴레이 로컬 negentropy 세션, 로컬 세트 조정 및 누락 이벤트 가져오기를 구동하는 outbox 전체 이력 tracker를 추가합니다. Messages giftwrap은 negentropy 조정을 얻으므로, 선택된 계정의 읽기 릴레이에서 프라이빗 메시지 봉투를 복구할 수 있습니다. 스레드 뷰는 더 이상 라이브 구독 답장 제한으로 제한되지 않습니다. Dave PNS는 Dave 로컬 negentropy 구현을 공유 outbox 경로로 대체하면서 기존의 제한된 이력 동작을 보존합니다.
라이브 구독과 negentropy는 이제 별도의 필터를 사용합니다. 흐름은 릴레이가 이미 가지고 있는 것을 조정하기 위해 더 넓은 negentropy 필터를 발행하면서 작은 라이브 요청을 유지할 수 있습니다. 이 PR은 콜드 스타트 비용 특성을 변경할 수 있는 홈 또는 프로필 타임라인에 대한 광범위한 negentropy 동기화를 의도적으로 활성화하지 않습니다. 조정, giftwrap 전달, 스레드 백필, Dave PNS 복원, 계정 전환, 릴레이 재타겟팅, 가져오기 재시도, NIP-77 릴레이 동작에 대한 테스트 커버리지가 추가되었습니다.
Vector v0.4.0: vector-core 재작성, Tor, NIP-46, full-negentropy MLS, MCP 에이전트 표면
NIP-17 DM과 Marmot 그룹 위에 구축된 프라이버시 중심 크로스 플랫폼 메신저인 Vector는 v0.4.0을 지금까지의 큰 릴리스로 출시했습니다. 헤드라인은 처음부터 다시 만든 엔진 재작성입니다: Vector의 모든 로직은 이제 데스크톱, Android, 미래의 모든 클라이언트에서 공유되는 단일 분리된 크레이트 vector-core에 있으며, 코어 자체에 440개 이상의 테스트가 있고 애플리케이션 셸은 수천 줄이 제거되었습니다. 이 재작성은 GUI와 동일한 프로토콜 코드를 구동하는 Vector CLI, 봇, SDK를 위한 기초 작업입니다.
Tor 통합은 검열 우회를 위한 원클릭 트래픽 라우팅과 브릿지 지원과 함께 출시됩니다. 다중 계정 지원은 앱 내 스위처와 함께 도착합니다. 원격 signer 로그인은 QR 또는 붙여넣은 URI로 bunker 페어링과 함께 NIP-46을 통해 도착하므로, 사용자는 nsec를 노출하지 않고도 로그인할 수 있습니다. 모두에게 삭제는 NIP-17 DM과 Marmot 그룹 채팅 모두에서 작동하며, Vector는 임시 서명 키를 릴리스 노트가 명시적으로 언급하는 의도적인 사양 편차로 유지합니다: “향상된 사용자 프라이버시 제어를 위해 기존 NIP-17/Marmot 사양에서 다각화.” 유지된 임시 키는 Vector 클라이언트에 삭제가 원래 발신자에 의해 승인되었다는 로컬 증명을 제공하지만, 이는 또한 Vector를 접하는 다른 모든 클라이언트가 기준선 NIP-17/Marmot 클라이언트와 다른 삭제 검증 가능성 표면을 본다는 것을 의미합니다.
MLS 그룹 동기화는 이제 NIP-77 negentropy를 통해 완전히 조정되며, 이는 Notedeck이 이번 주에 giftwrap 및 스레드에 대해 취한 것과 동일한 방향입니다. Blossom 업로더는 여러 서버에 걸쳐 페일오버하고, 각 서버의 기능을 학습하며, 기기 간에 서버 리스트를 동기화합니다. 커스텀 이모지 팩은 사용자가 만들 수 있고, 공유 가능하며, 다른 Nostr 클라이언트와 상호 호환됩니다. SQLite 메모리는 약 308MB에서 5MB로 떨어졌습니다. 이모지 패널은 디스크 캐시에서 열리며 Discord 스타일 shortcode(:smile:)와 Unicode 빈도 순위가 올바른 글리프를 먼저 표시합니다.
가장 새로운 추가 사항은 AI 에이전트가 Vector를 구동할 수 있도록 21개의 도구를 노출하는 MCP(Model Context Protocol) 서버인 vector-agent입니다: DM 보내기, 그룹 관리, 파일 업로드, 프로필 편집. 이는 이번 주에 MCP 표면을 출시한 두 번째 Nostr 프로젝트(Shopstr와 함께)이며, 그렇게 한 첫 번째 메신저 클래스 애플리케이션입니다. 지난주에 다룬 AgentNoise와 결합하여, 에이전트가 제어하는 Nostr 클라이언트의 패턴은 일회성 실험에서 의도적인 플랫폼 방향으로 이동하고 있습니다.
Cordn, 코디네이터 매개 MLS 메신저로 등장
Cordn(cordn.net의 웹 클라이언트, Cordn-msg/cordn 및 Cordn-msg/cordn-web의 저장소)은 Marmot과 다른 아키텍처 접근을 취하는 새로운 MLS 메신저입니다. Marmot이 특권 있는 코디네이터 없이 완전히 릴레이 기반이지만(모든 그룹 멤버가 릴레이에 직접 쓰고 준수하는 모든 릴레이가 트래픽을 운반할 수 있음), Cordn은 ContextVM 서비스로 구현된 그룹당 코디네이터 역할을 도입합니다. 코디네이터는 MLS 커밋을 정렬하고 환영 배포를 처리합니다.
Cordn의 주장은 /why 페이지에 명시되어 있으며, 프로덕션 메신저에 배포된 MLS는 “coordination-free가 아니며” “weakly ordered public dissemination"이 강력한 조정 지점 없이 그룹 상태 수렴을 “훨씬 더 어렵게” 만든다는 것입니다. 코디네이터 매개 설계는 예측 가능한 epoch 진행과 더 간단한 동시 커밋 해결을 제공합니다. 참가자는 임시 키를 사용하여 코디네이터에 연결하므로, 코디네이터는 그룹 ID와 커밋 트래픽의 타이밍을 학습하지만 어떤 장기 pubkey가 멤버인지는 알지 못합니다. Marmot 그룹에 대한 릴레이를 쿼리하는 모든 당사자는 이미 동일한 표면을 볼 수 있습니다: 그룹 ID별 그룹 활동, 이벤트 도착에서 추론할 수 있는 타이밍. Cordn은 또한 자체 호스팅과 함께 “가용성 신뢰가 남아 있음"을 인정합니다: 자체 호스팅 코디네이터는 운영자 계층 중앙 집중화 문제를 피하지만 그룹 활동성에 대한 단일 실패 지점을 도입합니다. Marmot은 정렬을 MLS 자체에 남겨두고(epoch와 Commit 메시지가 프로토콜 내부에서 정렬을 처리) NIP-59 gift wrap을 통해 Welcome 이벤트를 배포함으로써 그 단일 지점을 피하지만, admin 측 규율의 비용이 발생합니다: admin은 매칭 Welcome을 보내기 전에 Commit에 대한 릴레이 확인을 기다려야 하며, 클라이언트는 릴레이 전달이 상태 전환과 경쟁할 때 동시 커밋을 조정해야 합니다.
이 대비는 프라이빗 메시징 스택을 선택하는 모든 팀에게 살펴볼 가치가 있습니다. Marmot은 경로에 특권 있는 액터 없이 릴레이 독립적인 배포를 위해 일부 구현 복잡성을 교환합니다. Cordn은 더 긴밀한 정렬과 더 간단한 운영 모델을 위해 단일 지점 가용성 종속성을 교환합니다. 두 프로젝트 모두 MLS 위에 구축되며 Nostr를 identity 및 전송 계층으로 사용합니다. 의견 차이는 조정 비용이 어디에 있는지에 대한 것입니다. cordn-msg 저장소는 ContextVM 위에 구현된 코디네이터 서비스와 ts-mls 위에 구축된 MLS 계층으로 꾸준한 커밋 케이던스를 보여줍니다.
deepmarks: 큐레이터 수익화 게시가 있는 NIP-B0 북마크
deepmarks-public은 제안된 NIP-B0 북마크 사양(kind 39701)에 대한 참조 클라이언트로, 세 상자 아키텍처(큐레이터, 인덱서, 뷰어)와 큐레이터에게 직접 NIP-57 zap으로 자금이 조달되는 tier 시스템을 갖추고 있습니다. 클라이언트는 NIP-B0, NIP-07, NIP-46, NIP-57, NIP-44, NIP-98, NIP-65, 파일 저장을 위한 Blossom BUD-01 및 BUD-04를 구현합니다. 21,000 sat 평생 tier는 유료 독자를 큐레이터에 대한 반복 zap 수신자로 변환합니다. 큐레이터는 북마크 이벤트를 게시하고, 인덱서는 기계 판독 가능 메타데이터로 이를 풍부하게 하며, 뷰어는 피드를 렌더링합니다; 각 역할은 별도의 배포 가능한 서비스입니다.
릴리스
Amber v6.1.0 GA: 계정별 암호화 백업
Amber는 이번 주에 v6.1.0-pre3에서 GA v6.1.0으로 이동했습니다. PR #444는 애플리케이션 권한 데이터베이스에 대한 암호화된 백업 및 복원을 출시하고, PR #446은 백업을 계정별로 분할하므로 여러 Nostr identity를 가진 사용자는 각 앱 grant 세트를 독립적으로 백업하고 복원할 수 있습니다. 지난주에 다룬 PSBT 서명 작업은 GA 컷에 있습니다.
Citrine: 릴레이별 구독 및 onion URL 유출 방지
Amethyst와 함께 제공되는 온디바이스 개인 릴레이인 Citrine은 이번 사이클에 두 개의 수정을 출시했습니다. PR #157은 단일 전역 구독에서 릴레이별 태그된 구독으로 전환하므로, kinds: [1] 필터를 공유하는 두 소스 릴레이가 더 이상 aggregator 측에서 충돌하지 않습니다. PR #162는 아웃바운드 Tor 프록시가 비활성화된 경우 onion 릴레이 URL을 필터링하여, onion 주소가 clearnet 라우팅 경로에 유출되는 것을 방지합니다.
Angor v0.2.27 및 v0.2.28: 릴레이 신뢰성 및 Boltz 재연결
Angor는 v0.2.27 및 v0.2.28을 출시했습니다. PR #874는 한 번에 하나의 릴레이만 연결되는 relay-dedup 버그를 수정하며, 이는 여러 릴레이 엔드포인트가 있는 프로젝트에 대한 신뢰성을 조용히 저하시킨 회귀였습니다. PR #876은 Boltz submarine swap 모니터링을 위한 WebSocket 재연결 로직을 추가하므로, 짧은 연결 해제가 더 이상 swap을 알 수 없는 상태로 남기지 않습니다.
Nostrord v1.1.0: NIP-57 zap 및 NIP-29 역할 구분
Nostrord는 메시지 및 프로필에 대한 NIP-57 Lightning zap 지원(PR #98)과 이전에 동일하게 렌더링되어 누가 승격되었는지와 누가 초대되었는지를 가렸던 NIP-29 역할 변경과 멤버 추가 사이의 활동 피드의 적절한 구분(PR #92)과 함께 v1.1.0을 출시했습니다.
ぬるぬる v1.5.x: SQLCipher MLS 키스토어 및 epoch 따라잡기
ぬるぬる(nurunuru, tami1A84 제작)는 NIP-44, NIP-50 고급 검색, NIP-55, NIP-70과 함께 MLS 그룹 메시징(kind 443)을 구현하는 일본어 Nostr 클라이언트로, 이번 주에 다섯 개의 릴리스를 출시했습니다. PR #184는 rust-engine 계층의 MLS 키스토어에 SQLCipher 암호화를 도입합니다. PR #187 및 PR #188은 각각 Android와 iOS로 SQLCipher를 확장하며, 레거시 평문 삭제 단계와 CI 가드가 있습니다. PR #189 및 PR #191은 재생 캐시와 두 플랫폼 모두의 복구 배너와 함께 MLS 피어 epoch 따라잡기를 추가하므로, 그룹 커밋에 뒤처지는 클라이언트는 대화를 잃지 않고 복구할 수 있습니다. ぬるぬる는 marmot-protocol/mdk의 mdk-core, mdk-sqlite-storage, mdk-storage-traits 위에 구축된 Marmot 클라이언트이므로, SQLCipher 및 epoch 따라잡기 작업은 White Noise가 사용하는 것과 동일한 MDK 런타임 내부에 도착합니다.
Bitcredit Core v0.5.10: Nostr 루트 블록 전파 수정
Bitcredit Core는 identity 업로드를 포함하는 회사 생성 흐름을 깨뜨리던 블록 전파 중 누락된 Nostr 노드 ID 필드에 대한 수정과 함께 v0.5.10을 출시했습니다. Bitcredit은 회사 및 청구서 전파 이벤트를 위한 신뢰의 루트로 Nostr identity를 사용하는 e-bill 프로토콜입니다.
미출시 변경 사항
Jumble은 Pomegranate 임계값 signer를 통한 Google 로그인을 위한 PR #797을 열었으며, 사용자가 Nostr 키를 여러 당사자에 걸쳐 분할할 수 있게 하여 단일 signer가 전체 비밀을 보유하지 않도록 합니다. 이는 bunker 또는 nsec 가져오기 흐름을 넘어서는 의미 있는 단계입니다: 사용자는 한 signer 당사자가 손상되어도 계정을 복구할 수 있으며, 그 당사자가 완전한 private 키를 보유하지 않아도 됩니다.
Shopstr는 MCP(Model Context Protocol) 서버를 초기화하는 PR #492를 열었으며, PR #494는 지원 인프라(릴레이 가져오기, 파서, 검증, 오류, dedup, 감사 로깅)를 구축하고 PR #472는 MCP 릴레이 관리자에 릴레이 허용 목록을 추가합니다. 이는 Shopstr를 MCP 서버로 자신을 노출하는 첫 번째 Nostr 마켓플레이스로 만들며, AI 에이전트는 구조화된 도구로 NIP-99 리스팅을 탐색하고 조치를 취할 수 있습니다.
Keydex, Shamir secret sharing 볼트는 PR #226에서 커스텀 kinds 1337-1345를 713-721 범위로 이동시키는 상당한 마이그레이션을 열었으며, PR #239는 Shamir 공유에 AEAD를 추가하고 PR #234는 GF256 산술로 마이그레이션합니다. Kind 범위 마이그레이션은 NIPs 저장소가 커스텀 kind를 할당하는 방식과 Keydex를 정렬하여, 자체 주장 범위에서 멀어집니다.
Mill(nostr-mill)은 OceanSlim(grain Go 릴레이의 유지 관리자)의 새로운 드롭인 Nostr signer UI로, npm 및 jsDelivr에서 단일 스크립트 태그 Web Component로 출시됩니다. 하나의 <script> 태그는 웹 앱에 통합된 UI 뒤에 여섯 개의 일반적인 signer 진입점을 모두 제공합니다: NIP-07 브라우저 확장, NIP-46 bunker(URL 붙여넣기 또는 사용자 지정 가능한 릴레이가 있는 QR 페어링, 페이지 내 bunker 통합 중 특이함), Android 인텐트를 통한 NIP-55 Amber, PBKDF2가 있는 AES-256-GCM을 통해 sessionStorage에 저장된 암호화된 nsec, 읽기 전용 npub, 브라우저 내 keypair 생성. 컴포넌트는 Shadow DOM으로 범위가 지정된 29개의 CSS 커스텀 속성을 통해 테마화할 수 있으며, 작은 SemVer 추적 API(MILL.open, mill:connected / mill:disconnected 이벤트, 명명된 테마 내보내기)를 노출합니다. 유지 관리자의 동기는 bunker 로그인 흐름이 Nostr 전반에 걸쳐 웹 앱마다 재구현되어 왔다는 것입니다. 공유 컴포넌트로 통합하면 클라이언트가 signer UX가 어떻게 동작해야 하는지에 대해 수렴할 수 있으며, 선택적 흐름(위에서 다룬 Wisp의 Pomegranate 기반 Google 로그인을 반영하는 임계값 signer를 통한 위임 키 로그인과 같은)을 모든 앱이 드롭인할 수 있는 재사용 가능한 표면으로 전환합니다. Mill은 npm v1.5.0이며, 단일 유지 관리자, 알파 단계로, grain이 계획된 첫 통합자입니다.
moStard, roguehashrate의 noStrudel의 Monero 우선 fork는 이번 주에 축소된 기능 세트와 동일한 Applesauce + worker-relay 스택 위에 계층화된 Monero 테마 identity로 v1.0.1에 도달했습니다. 이번 주 작업은 Zapstore의 kind 32267 소프트웨어 애플리케이션 이벤트에 대한 렌더링(앱 이름, 아이콘, 스크린샷, 플랫폼, 라이선스, zapstore.dev/apps/<d-tag>에 대한 실행 링크를 보여주는 타임라인의 임베드 카드), kind 20 및 kind 21을 통한 폴, 방법별 QR 코드가 있는 NIP-A3 Payment Targets 기반 팁, 노트의 markdown 렌더링, 외부 GIF 키보드에 대한 GIF 선택기 지원, Amber signer 페어링 수정을 도착시켰습니다. Monero 프레이밍은 팁 흐름으로 확장됩니다: monero 주소에 대한 NIP-A3 payto 항목은 lightning 및 bitcoin과 함께 동일한 UI에서 일급 버튼을 얻습니다. 클라이언트는 단일 유지 관리자이고 알파 단계이지만, 5월 27일 작업은 빌더가 이번 주의 프로토콜 사양 발표에서 NIP-A3을 며칠 내에 출시 fork로 바로 가져오는 것을 보여줍니다.
NIP 업데이트 및 프로토콜 사양 작업
캘린더 NIP 스택: Formstr 팀의 네 가지 제안
Ix2(@geralt-debugs)는 5월 17일에 네 개의 조정된 NIP PR을 열었으며, 모두 동일한 저자 하에서 이미 출시 중인 calendar.formstr.app 구현을 참조합니다. PR #2350은 kind 84를 일반화된 “participant self-removal” 이벤트로 제안합니다: 모든 이벤트의 태그된 참가자는 e, a, k 태그를 통해 원본을 참조하는 kind 84를 게시하여 옵트 아웃을 신호할 수 있습니다. 릴레이는 제거를 존중하기 전에 kind 84 signer가 참조된 이벤트의 p 태그에 나타나는지 검증해야 하며, kind 5 삭제는 항상 우선합니다. 이 PR은 이전에 NIP-52 캘린더 컨텍스트 내에서만 설명된 패턴을 일반화하므로, kind 84는 저자가 아닌 사람이 모든 참가자 이벤트에서 철회하는 표준 방법이 됩니다.
PR #2351은 캘린더 스택의 기초입니다: 프라이빗 캘린더 이벤트(kinds 32678 시간 기반, 32681 일 이벤트, 32123 프라이빗 캘린더 리스트, 31926 바쁨 리스트, 1052 gift wrap, 52 rumor)를 위한 NIP-52E 및 반복 이벤트를 위한 NIP-52R. 아키텍처 코어에는 view-key 패턴이 있습니다: 무작위로 생성된 keypair가 NIP-44로 이벤트 콘텐츠를 암호화하고, 비밀 절반(nsec로 bech32 인코딩됨)이 각 참가자에게 gift-wrap됩니다. Signer는 공개 d 태그만 보유합니다; 나머지 모든 것은 암호화된 content에 있습니다. 이런 방식으로 identity에서 콘텐츠 암호화를 분리하는 것은 이벤트 편집이 수신자를 다시 키잉하지 않아도 됨을 의미합니다. NIP-52R은 기존 kinds 31923 및 31922에서 두 개의 선택적 태그를 정의하여 bare RFC 5545 RRULE 값을 사용하여 반복을 선언하며, RRULE가 있을 때 D day-index가 선택 사항이 됩니다. Forward secrecy는 명시적으로 부재합니다: 유출된 view 키는 동일한 d 태그 하의 이벤트의 모든 과거 및 미래 버전을 노출합니다.
PR #2352는 PR 설명이 “중앙 중개자가 없는 Calendly/Cal.com에 대한 드롭인 대안"이라고 부르는 분산 약속 스케줄링 사양으로 NIP-52E 위에 구축됩니다. Kind 31927은 암호화된 가용성 창이 있는 스케줄링 페이지를 광고합니다; kind 32680은 view 키에 대한 호스트 측 자체 암호화 복구 레코드입니다; kinds 1057 및 1058은 gift-wrapped 예약 요청 및 응답입니다. 영리한 메커니즘: booker는 요청을 보내기 전에 미래의 프라이빗 이벤트에 대한 d 태그와 view 키를 모두 생성하므로, booker는 올바른 키로 자신의 캘린더에 약속을 즉시 추가할 수 있으며 호스트는 키를 왕복시킬 필요가 없습니다. 예약 응답은 외부 wrap에 암호화되지 않은 status 태그를 포함하므로 릴레이는 복호화 없이 필터링할 수 있습니다.
참조 구현은 이미 calendar.formstr.app 및 Zapstore의 Calendar Android 앱에 라이브입니다. PR #2351은 PR #2027을 그 대신 닫아, 연초부터 열려 있던 이전 프라이빗 캘린더 제안을 통합합니다.
Payment Targets 및 Silent Payments
이번 주에 kind:30023 롱폼 문서에서 두 개의 NIP 제안이 더 순환되었습니다.
Payment Targets 제안(NIP-A3 / payto)은 RFC 8905 payto: URI에 매핑되는 하나 이상의 ["payto", "<type>", "<authority>"] 태그를 포함하는 replaceable kind 10133 이벤트를 정의합니다. 지원되는 유형에는 bitcoin, lightning, ethereum, monero, nano, cashme, revolut, venmo가 포함됩니다. 의도는 lud16 기반 NIP-57 zap을 보완하는(대체하지 않는) 다중 레일 팁 항아리를 표준화하는 것입니다. Amethyst v1.11.0은 첫 번째 구현자입니다; 병합된 PR #2953 및 #3009는 구독 및 관찰 표면을 출시하고, PR #3011은 PaymentTargetsEvent에 대한 UI를 연결합니다.
다른 저자로부터 두 개의 경쟁 Silent Payments 제안이 나왔습니다. 첫 번째 변형은 공개 additive tweak를 통해 nsec에서 BIP-352 silent payment 스캔 및 지출 키를 유도하므로, 모든 발신자는 설정 없이 npub에서 sp1q... 주소를 구성할 수 있습니다. 저자 경고는 사양에서 명시적입니다: “bscan과 bspend는 nsec와 정확히 동일한 주의를 기울여 취급되어야 합니다.” 왜냐하면 스캔 키가 nsec를 노출하기 때문입니다. 두 번째 변형은 반대 접근 방식을 취하여, 키가 Nostr identity와 독립적으로 유지되는 표준 BIP-352 silent payment 주소를 포함하는 sp_address 필드를 kind 0 프로필 메타데이터에 추가합니다. 변형 2가 구조적으로 더 안전합니다. 두 제안 모두 사려 깊은 리뷰 스레드를 끌었습니다; erskingardner(Marmot 리드)는 제안을 추적하는 trbouma gist에 자세한 comment를 게시했습니다. 그의 중심 우려는 변형 1이 nsec에 공개적으로 계산 가능한 tweak를 더한 것에서 스캔 private 키를 유도한다는 것이며, 이는 스캔 키를 보유한 누구든지(실제로 사용자가 위임해야 하는 제3자 스캔 서비스 포함) 해당 tweak를 빼서 전체 nsec를 복구할 수 있음을 의미합니다. 원격 서비스가 인바운드 결제를 스캔하도록 하는 동일한 키는 또한 그 서비스가 identity와 그로부터 파생된 모든 자금을 훔칠 수 있게 합니다.
NIP-34 git-over-Nostr 측에서 hzrd149는 schemata에 2개의 패치를 게시했습니다. gitworkshop.dev 자체는 두 개의 이슈 보고서를 끌었습니다: 하나는 NIP-46 원격 signer를 사용할 때 페이지 새로 고침에서 로그인 세션이 손실되는 것을 플래그하고, 다른 하나는 README 프리뷰에서 구별되는 링크 스타일링을 요청합니다.
여섯 번의 Nostr 5월
2026년 5월의 마지막 뉴스레터는 그 주의 릴리스에서 물러나 Nostr의 역사를 통해 5월의 달을 걷습니다. 각 해에는 다른 중력 중심이 있었습니다: 2021년은 단일 커밋이었고, 2022년은 NIPs 저장소 자체의 형성이었으며, 2023년은 프로토콜 사양 폭발이었고, 2024년은 통합 사이클이었으며, 2025년은 negentropy가 병합되고 Damus의 Notedeck이 Beta로 졸업한 때였고, 2026년은 이번과 이전 세 이슈에서 다룬 달입니다.
2021년 5월
Nostr는 6개월이 되었습니다. 유일한 Nostr 코드는 fiatjaf/nostr에 있었고 전체 달은 정확히 하나의 커밋을 생성했지만, 그 커밋은 프로토콜에서 가장 많이 사용되는 부분 중 하나가 되었습니다. 5월 22일에 fiatjaf는 NIP-02를 재활용하여 연락처 리스트 NIP으로 만들었습니다. 커밋 메시지는 “repurpose NIP-02 and add NIP authorship"이라고 읽으며, 명시적인 credit은 arcbtc(LNbits의 Ben Arc)의 PR #16에 있으며, 이는 2월 9일에 열리고 fiatjaf가 아이디어를 NIP-02에 접기 전날 닫혔습니다. arcbtc의 제안은 작았습니다: “릴레이에 팔로워 리스트 보내기"를 위한 kind로, “계정 복원 및 팔로우할 공개 키 추천에 유용할” 것입니다. fiatjaf는 이를 세 가지 목적을 동시에 수행하는 태그가 있는 단일 kind:3 이벤트로 일반화했습니다. 그것들은 팔로우 리스트(소셜 그래프), petname store(친구를 위한 로컬 별명), 릴레이 추천 소스(팔로우가 사용하는 릴레이)입니다. 저자별로 replaceable인 동일한 이벤트는 “이 사람이 누구를 팔로우하는가”, “그들을 뭐라고 부르는가”, “그들이 어디서 읽는가"에 대한 canonical 답이 되었습니다. 다음 5년 동안 구축된 모든 클라이언트는 kind:3을 읽습니다. 동일한 커밋에 추가된 관례, 즉 각 NIP이 저자를 이름 짓는다는 관례는 모든 사양이 이제 byline을 갖는 이유입니다.
2022년 5월
NIPs 저장소가 커뮤니티 프로젝트가 된 달. 5월 1일에 fiatjaf는 사양을 fiatjaf/nostr에서 전용 nostr-protocol/nips 저장소로 마이그레이션했고 5월 2일에 공식 수용 기준을 추가했습니다. 이틀 후, Robert C. Martin(Uncle Bob)은 첫 번째 외부 pull request인 PR #1을 열어 e 및 p 태그에 대한 스레딩 규칙을 제안했습니다. 이 PR은 원래 NIP-13으로 번호가 매겨졌다가 proof-of-work를 위한 공간을 만들기 위해 NIP-10으로 이름이 변경되었습니다. 처음 여섯 NIP 중 세 개는 Uncle Bob의 것입니다: NIP-10(스레딩 마커), NIP-14(Subject 태그), 그리고 kind:1을 canonical 짧은 텍스트 노트 kind로 확정한 5월 21일 커밋. 5월 5일에 William Casarin은 첫 NIP 커밋을 만들었습니다: NIP-13 Proof of Work 및 kind:2 recommend-relay 이벤트. 다음 날, fiatjaf는 NIP-07 window.nostr을 게시했는데, 이는 오늘날까지 사용되는 브라우저 확장 signer 인터페이스를 정의하는 20줄의 markdown이었습니다. David A. Harding의 NIP-05 CORS 경고와 NIP-01의 filter.limit이 같은 주에 도착했습니다. nostr-tools는 5월 8일에 첫 번째 브라우저 가져오기 가능 ESM 빌드를 출시했습니다. Semisol은 월말에 NIP-15(End Of Stored Events)와 NIP-16(이벤트 kind 범위)를 초안했으며, 이 문서들은 여전히 릴레이 동기화 시맨틱과 regular-vs-replaceable-vs-ephemeral 분류를 지배합니다.
2023년 5월
프로토콜 사양 폭발. 그 달에 64개의 NIP PR이 열렸으며, 다음 2년 동안 Nostr의 표면 영역을 정의한 여러 제안이 모두 31일 이내에 도착했고, Nostr가 지금까지 받은 가장 큰 자금 발표는 5월 4일에 OpenSats Jack Dorsey의 #startsmall에서 1천만 달러 grant로 도착했으며, 이는 이후 모든 Nostr grant 웨이브를 뒷받침한 자금이었습니다. NIP-47(Nostr Wallet Connect)이 5월 2일에 병합되어 Alby의 wallet-connect 사양을 메인 프로토콜에 가져왔습니다. 이틀 후 Vitor Pamplona가 kind:30311 방과 kind:1311 채팅 메시지가 있는 NIP-53 Live Activities를 제안했으며, 이는 뒤따르는 모든 Nostr 라이브스트리밍 표면의 기초입니다. Pablo Fernandez는 5월 5일에 NIP-84 Highlights를, 5월 14일에 NIP-89 Recommended Application Handlers를 열었습니다. v0l(Kieran Babich, Snort 저자)은 5월 8일에 NIP-98 HTTP Auth를 제안했으며, 이는 NIP-96과 Blossom 모두가 나중에 의존한 인증 프리미티브입니다. Jonathan Staab는 5월 15일에 NIP-32 Labels를 제안했고, NIP-30 Custom Emoji가 같은 날 병합되었습니다. Arthur Franca는 5월 21일에 NIP-96 HTTP File Storage Integration을 제안했습니다. 이틀 후, Vitor는 NIP-57에 zap 분할을 추가했고, verbiricha는 NIP-23에 kind:30024 롱폼 초안을 추가했으며, 이는 Habla, YakiHonne, Highlighter의 현대 Nostr 롱폼 저작 워크플로우의 기초가 된 사양입니다. fiatjaf는 5월 28일에 NIP-29 Simple Groups를 제안했으며, 이는 kind:9000에서 kind:9020까지의 조정 이벤트를 다루는 첫 번째 릴레이 관리 그룹 사양입니다. 이 달은 5월 31일에 Paul Miller가 NIP-44 대화를 여는 것으로 마감되었으며, 이는 NIP-04를 대체하기 위한 XChaCha20 기반 암호화 DM 설계입니다. 클라이언트 측은 그만큼 빠르게 움직였습니다: Damus는 5월 10일부터 5월 15일까지 NWC, zap pool, Pending Zaps를 출시했습니다; Snort는 zap pool과 L402 유료 미디어를 출시했습니다; Amethyst는 그 달을 통해 대략 30개의 버전 릴리스를 출시했으며, 5월 1일 v0.40.1부터 월말 v0.55.x 범위까지, v0.45.0의 zap 분할과 v0.46.0의 NIP-32 labels가 있었습니다; Primal Android 저장소는 5월 16일에 생성되었습니다; rust-nostr v0.22.0은 NIP-47과 NIP-58을 추가했습니다. 5월 1일에 strfry는 negentropy 통합을 출시했으며, 이는 나중에 NIP-77이 될 Doug Hoyte의 set-reconciliation 프로토콜의 첫 번째 릴레이 구현이었습니다. 이 달은 5월 30일 Forbes가 fiatjaf에 대한 롱폼 프로필을 게시하는 것으로 마감되었으며, 이는 Nostr의 익명 창시자에 대한 첫 번째 주류 언론 심층 조사 중 하나입니다.
2024년 5월
통합 사이클. 화려한 제안은 적고, 더 많은 출시. NIP-54 Decentralized Wikis가 5월 2일에 kind:30818 기사와 대소문자 정규화된 d 태그와 함께 병합되었습니다. 3일 후, NIP-56이 확장되어 남용 보고서가 콘텐츠 전용 카테고리와 함께 디지털 위협(malware, phishing)에 플래그를 지정할 수 있게 되었습니다. 5월 6일에 NIP-25 반응이 단순화되어 전체 답장 스레드를 e 태그로 포함하는 것을 중지했습니다. Arthur Franca는 5월 12일에 NIP-22 Comment를 제안하여 kind:1111을 도입하여 비 kind:1 이벤트(기사, 파일, 제품)에 대한 답장이 스레드에 대한 구조화된 방법을 얻도록 했습니다. 5월 19일에 fiatjaf는 NIP-46을 개편하여 NIP-04를 완전히 포기하고 모든 bunker 트래픽을 NIP-44 암호화로 전환했으며, 이는 이후 모든 bunker 구현을 형성한 사용 중단 이동입니다. 5월 20일에 NIP-71 Video Events가 kind:21 및 kind:22와 함께 병합되었고, NIP-10은 e 태그에 선택적 pubkey 인수를 추가하여 클라이언트가 참조된 이벤트를 먼저 가져오지 않고도 스레드 저자를 해결할 수 있도록 했습니다. Kieran Walsh의 NIP-35 Torrents가 5월 22일에 병합되었고, 5월 24일에 NIPs README는 오프 저장소 제안으로 CIP-01을 처음 참조하여 “여러 제안 장소 중 하나로서의 NIPs” 패턴의 시작을 알렸습니다. 5월 25일에 정리 PR이 다운스트림 구현이 이를 고정하기 전에 NIP-71에서 aes-256-gcm 태그를 제거했습니다. NIP-96은 5월 27일에 list files를 추가하고 변환 요구 사항을 삭제했습니다. 5월 28일에 Jonathan Staab는 초안이 졸업하기 전에 최소 두 개의 상호 운용 가능한 구현을 요구하도록 NIP 수용 기준을 높일 것을 제안했습니다. 클라이언트 측: Damus는 5월 9일-10일에 v1.7.2와 v1.8 및 full NIP-10 마커 처리가 있는 v1.9를 태그 지정했고, 푸시 알림에 NIP-98 인증을 도착시켰으며, 전체 NIP-10 마커 지원을 출시했습니다. Amethyst는 5월 14일에 NIP-17을 기본 DM 모드로 만들었고, NIP-65 outbox 모델 릴레이 관리를 구축했으며, NIP-96 서버 선택을 추가했고, NIP-06 BIP-32/BIP-39 키 유도를 출시했습니다. 5월 10일 Primal Android 0.99.2는 사용자 태깅과 외부 지갑 NWC를 추가했고, 0.99.4가 뒤따랐습니다. Pablo Fernandez는 5월 24-31일에 걸쳐 NDK 낙관적 업데이트 클러스터를 도착시켰습니다. Snort는 NIP-96 서버 선택을 추가했고, cashu-ts는 암호 프리미티브를 분리하여 @cashu/crypto로 만들었습니다.
2025년 5월
NIP-77(Negentropy Syncing)이 5월 27일에 병합된 달로, brute-force REQ 필터를 로그 비용 차이 계산으로 대체하는 wire 프로토콜에 대한 fiatjaf와 Doug Hoyte의 사양입니다. 이는 strfry가 2년 전에 릴레이 측 기능으로 출시한 것과 동일한 negentropy로, 이제 클라이언트-릴레이 프로토콜로 공식화되었으며 README 항목이 같은 날 도착했습니다. 그 전 주에는 NIP-23 롱폼이 5월 24일에 HTML 문서가 <link> 태그를 통해 Nostr 엔티티와 자신을 연관시키는 방법을 정의했으며, 이는 canonical 웹 사본 프리미티브입니다. NIP-25는 5월 22일에 reaction-target 릴레이 힌트를 추가하고 emoji-to-like/dislike 권장 사항을 삭제하여 이모지를 별개의 시맨틱 단위로 취급했습니다. NIP-52는 5월 14일에 단순화되어 클라이언트가 프로덕션에서 출시하고 있던 kind에 초점을 맞추었으며, 이 트림은 1년 후 Formstr 캘린더 확장을 더 깨끗하게 그래프트하도록 만들었습니다. 5월 9일에 Follow Packs(kind 39089 큐레이션된 팔로우 리스트)와 Favorite Relays(NIP-51 하의 새로운 replaceable 리스트)가 같은 날 README에 들어왔습니다. Marmot 프로토콜 아크는 아직 시작되지 않았습니다: whitenoise-rs 저장소만 존재했고(첫 커밋 2024년 9월 9일), 2025년 5월은 그 Svelte+Tauri 프로토타입 단계였으며, 5월 14일 커밋은 프로젝트가 현재 아키텍처로 피벗함에 따라 Tauri 특정 코드를 제거했습니다. 전용 MDK Rust 코어(2025년 9월 12일), Marmot 사양 저장소(2025년 9월 19일), Flutter UI(2025년 12월 2일)는 모두 그해 후반에 왔습니다. 클라이언트 측에서 Damus의 Notedeck v0.4.0이 5월 5일에 첫 Beta로 출시되어, 전체 텍스트 검색, Dave AI 어시스턴트, NWC를 통한 zap, GIF, 사용자 태깅, mute 리스트와 함께 Alpha에서 졸업했습니다. 이틀 후, hodlbod의 Flotilla 1.0.0이 Coracle 0.6.12와 함께 NIP-29 기반 그룹 채팅 클라이언트로 공개 출시 경계를 넘었으며, 이는 5월 14일 0.6.17까지 실행된 여섯 Coracle 릴리스 중 첫 번째였습니다. Amber v3.4.0은 5월 12일에 사용 중단된 Android Autofill 및 ClipboardManager API에서 벗어나 암호화된 공유 기본 설정에서 DataStore로 마이그레이션했습니다. 5월 20일 Primal Android 2.2.20은 Primal Premium을 위한 Redeem Code 흐름과 재설계된 이미지 갤러리를 추가했습니다. 5월 21일 nak v0.14.0은 Coracle, Flotilla, Notedeck 릴리스와 같은 주에 canonical CLI의 마이너를 컷팅했습니다. OpenSats는 5월 22일 Reynolds Foundation이 200만 달러를 기부했을 때 지금까지 가장 큰 비 Bitcoin 재무부 기부를 받았습니다.
2026년 5월
Newsletter #21, #22, #23 및 이번 호에서 다룬 달. 정의하는 스레드는 MLS-on-Nostr가 다중 클라이언트 프로덕션에 도달한 것입니다: MDK 0.8.0이 MIP-05 leaf-index 프리미티브와 주소 지정 가능한 key package를 출시했고, PR #306이 공유 UniFFI 표면을 통해 iOS와 Android 전반에 걸쳐 NIP-40 사라지는 메시지 검증을 추가한 것이 뒤따랐습니다. White Noise v2026.5.22+25는 확장 프로세스 내부에서 MLS 암호문을 복호화하여 브로커가 평문을 보지 않도록 하는 Notification Service Extension을 통해 iOS 푸시를 출시했으며, 두 개의 새로운 Marmot 클라이언트가 등장했습니다: Scramble(다중 기기 KeyPackage 슬롯이 있는 .NET/Avalonia 데스크톱 및 Android 클라이언트)과 Cordn(ContextVM 위에 그룹당 코디네이터를 사용하는 대안 MLS 아키텍처). Angor는 PR #860에서 암호화 메시징을 NIP-04에서 NIP-44로 마이그레이션하여 Paul Miller의 2023년 5월 NIP-44 제안으로 열린 사용 중단 아크를 닫았습니다. Formstr 팀은 5월 17일에 최근 기억에서 가장 큰 조정된 NIP 제출을 열었으며, 참가자 자체 제거를 위한 PR #2350, 프라이빗 캘린더 이벤트 및 반복(NIP-52E 및 NIP-52R)을 위한 PR #2351, 분산 약속 스케줄링을 위한 PR #2352와 함께, 모두 calendar.formstr.app이 이미 참조 구현을 출시하고 있습니다. Amethyst v1.11.0은 NIP-52 캘린더를 일급 타임라인 카테고리로 렌더링하고 온체인 Bitcoin zap을 분할 배포로 확장했습니다. NIP-77이 2025년 5월에 병합된 지 1년 후, 세 개의 독립적인 구현이 같은 창에서 negentropy 채택을 출시했습니다: Notedeck PR #1459는 giftwrap 및 스레드 백필을 위해 Damus의 데스크톱 클라이언트에 이를 연결했고, Vector v0.4.0은 원클릭 Tor 및 21개 도구 MCP 에이전트 표면과 함께 처음부터 다시 만든 vector-core 재작성의 일부로 full-negentropy MLS 동기화를 사용했으며, Citrine v3.0.0-pre1은 내장 Tor 및 다중 릴레이 집계와 함께 Android 네이티브 릴레이에 이를 추가했습니다. Mostro v0.17.4는 PR #738에서 Phase 3 slashed-bond 지불로 anti-abuse 본드 루프를 닫아, 프로토콜이 이전에 위협만 했던 것을 강제합니다. “NIP-04를 대체할까"에서 “NIP-44를 완전한 MLS 그룹 상태로 대체할까"까지 3년입니다.
논의하고 싶다면 Nostr에서 DM을 보내주세요.