NIP-26, or “Delegated Event Signing,” is a proposal for how events on the Nostr protocol can be delegated and signed by other keypairs. This feature introduces a new tag called “delegation,” which allows a user’s public key to authorize other keypairs to generate events on their behalf.
One application of this proposal is to abstract away the use of a user’s “root” keypair when interacting with clients. For example, a user could generate new keypairs for each client they use and authorize those keypairs to generate events on behalf of their root pubkey, which could then be stored in cold storage for added security.
The delegation tag includes the public key of the delegator, a conditions query string, and a 64-byte Schnorr signature of the SHA256 hash of the delegation token. The delegation token itself is a 64-byte Schnorr signature of the SHA256 hash of a string that includes the pubkey of the publisher (delegatee) and the conditions query string.
One example use case for NIP-26 is to allow a user to delegate event signing to a client, while keeping their root keypair securely stored. This could be useful for a user who wants to use multiple clients but doesn’t want to expose their root keypair to each one. This would have prevented a lot of the issues we’ve seen with anigma since those keys could have been dropped.
In addition to benefiting individual users, NIP-26 could also enhance the overall security and censorship-resistance of the Nostr protocol. By allowing users to delegate event signing to other keypairs, it becomes more difficult for malicious actors to censor or tamper with events on the network. Overall, NIP-26 is a valuable addition to the Nostr protocol that brings added security and flexibility to the way events are signed and managed. It allows users to delegate event signing to non-vital private keys that can be used more freely.