invites: NIP-86 membership claims share existing invitations - #21
Merged
Conversation
Standard listclaims, createclaim and deleteclaim reuse the invite store, member permissions, quotas, expiry and audit. Existing ownership and invite APIs retain their behavior. Pinned proposal documentation and integration tests cover management, visibility and joining through every admission path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
NIP-43 clients need standard management methods for caller-chosen membership invitations. bind.ws already has invites and a member tree, but exposes only its custom invite management API. This implements NIPs proposal #2408 at revision
dcf5af03aacd5ca9c70c51448e32f60477f6ac34(checked 2026-09-04).Change
listclaims([])returns usable code strings;createclaim([code])anddeleteclaim([code])returntrueon success.createinvite,listinvites,revokeinvite, NIP-43/NIP-29/HTTP joins and relay ownershipclaimretain their behavior. No database migration or broader permission redesign.This PR is independent of the parallel NIP-AD and NIP-9a changes, with no required merge order and no NIP-11 edits. README, HTTP docs and exposure tests may need ordinary conflict resolution when combined. The upstream proposal remains open; its unspecified expiry/code constraints follow existing bind.ws behavior.
Testing Completed
npm run typecheck: passes TypeScript, generated-file, console, celld and template configuration checks.npm test: 44 files, 219 tests pass.Responsible AI disclosure
Implemented with Codex assistance, including subagent test work and independent review. Changes were checked locally with the project validation commands. No merge or deployment is included.