NIPs by PolleramaCommunity NIPs, surfaced by trustConnect
npub1kg4sdvz3l4f...

BUD Blob Ownership

Published Mar 12, 2026
kind 24242

BUD-XX

Blob Ownership

draft optional

Defines a decentralized ownership model for blobs where multiple pubkeys can be owners, anyone can become an owner, and blobs may be deleted when no owners remain.

Overview

This BUD introduces the concept of blob ownership. A blob can have multiple owners, and the blob's existence is tied to having at least one owner. This enables use cases such as:

  • Immutable uploads: Uploader designates recipients as owners, uploader cannot delete alone.
  • Shared custody: Multiple parties share responsibility for a blob.
  • Community resources: Anyone can "adopt" a blob by becoming an owner.

Ownership Model

  • A blob MAY have multiple owners.
  • Anyone can become an owner of any blob by claiming ownership.
  • An owner MAY remove themselves from the owner list.
  • No one can remove another pubkey from the owner list.

Endpoints

PUT /owner - Add Owners

Servers implementing this BUD MUST accept PUT requests to the /owner endpoint to add owners of a blob.

Authorization

Requests MUST include a valid Nostr authorization token as defined in [BUD-11](./11.md):

  • The t tag MUST be set to claim.
  • One or more p tags MUST be present, each containing a pubkey to add as owner.

DELETE /owner - Release Ownership (self-removal)

Servers implementing this BUD MUST accept DELETE requests to the /owner endpoint for an owner to remove themselves from the owner list.

Authorization

Requests MUST include a valid Nostr authorization token as defined in [BUD-11](./11.md):

  • The t tag MUST be set to unclaim.

Interaction with BUD-02

The DELETE /<sha256> endpoint behaves differently based on the number of owners:

  • Multiple owners: The request MUST be treated as an unclaim, only the signer is removed from the owner list, the blob is not deleted.
  • Single or no owner: The request MAY delete the blob.

Use Cases

Recipient only can delete

1. Alice (X) uploads blob with initial owner: Bob (Y)
2. Alice is NOT an owner → cannot delete
3. Bob is the only owner → can delete