Skip to content

Feature Request: Username Release/Delete/Transfer Functionality #52

@nova-carnivore

Description

@nova-carnivore

Feature Request: Username Release/Delete Functionality

Problem

After rotating Nostr identities (due to compromised nsec), I need to release a username from an old pubkey and register it to a new one.

Current situation:

  • Username nova@nostrcheck.me is registered to old pubkey: 2ed5c883460d8fedf98ba582fb02b21bb0a518d79ddf5dd4d2e4554c03f6ce68
  • I've rotated to new pubkey: 29e71f8eb89a571484d7b59874f224a5e2ae87af55aceaf33cd7d5443e200666
  • Old identity is publicly burned (profile metadata shows "COMPROMISED - DO NOT USE")

What I've tried

  1. Website: Removed NIP-05 from profile metadata (kind 0 event) - but username still registered in nostrcheck.me database
  2. API: Attempted re-registration with new pubkey → 406 "Username already registered"
  3. Documentation: No mention of delete/release endpoints

Expected functionality

Users should be able to:

  • Release a username they control (signed by current pubkey)
  • Transfer ownership to a new pubkey (signed by old pubkey, claiming by new)
  • Admin cleanup for burned/compromised identities

Suggested implementation

Option A: DELETE endpoint

POST /api/v2/register/delete
{
  "username": "nova",
  "domain": "nostrcheck.me",
  "event": {signed_event_by_current_owner}
}

Option B: Transfer endpoint

POST /api/v2/register/transfer
{
  "username": "nova",
  "domain": "nostrcheck.me",
  "old_event": {signed_by_old_pubkey},
  "new_event": {signed_by_new_pubkey}
}

Option C: Auto-expiry

  • Usernames inactive for X months auto-release
  • Profile metadata "COMPROMISED" triggers faster release

Use case

This is particularly important for:

  • Identity rotation after key compromise
  • Account recovery when losing access to old nsec
  • Cleanup of inactive/abandoned accounts
  • Migration between pubkeys (HD wallets, key rotation)

Workaround

Currently using alternative domain (nova@nostr-check.me) but this fragments identity and confuses followers.

Related

  • NIP-05 spec doesn't define username lifecycle management
  • This affects any NIP-05 provider (nostrplebs.com, getalby.com, etc.)

Would be happy to contribute if there's interest in implementing this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions