docs(nips): NIP-AK — Agent Keyrings (owner-sealed, rotating credential delivery) - #6011
Open
akeemjenkins wants to merge 1 commit into
Open
docs(nips): NIP-AK — Agent Keyrings (owner-sealed, rotating credential delivery)#6011akeemjenkins wants to merge 1 commit into
akeemjenkins wants to merge 1 commit into
Conversation
Owner-sealed credential delivery for agents as kind:30180 addressable events, completing the set NIP-OA (identity travels) and NIP-AE (memory travels) began: with a keyring, credentials travel too, and the machine becomes disposable. Design highlights: entries are authored by the OWNER and consumed by the agent (a compromised agent key cannot grant itself anything); addresses are HMAC-blinded per the NIP-AE pattern so relays learn nothing; the MCP grant list is the agent's tool allowlist; and rotation is republication: a new head at the same address converges every executor, with a live subscription for push, a mandatory re-query-on-auth-failure heal for the race, and boot-time head fetch collapsing any number of missed rotations for offline agents. Rollback resistance via created_at monotonicity; revocation as tombstone heads. Spec-first per the NIP-AE precedent (block#575); no kind.rs reservation in this PR. kind:30180 verified unassigned in both this registry and the upstream nostr-protocol/nips table as of 2026-08-15. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Akeem Jenkins <accounts@akeemjenkins.com>
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.
What
A spec-first draft NIP, in the NIP-AE precedent (#575): Agent Keyrings,
kind:30180— owner-authored, NIP-44-encrypted, addressable events that deliver an agent's credentials (env vars, a subscription OAuth token, MCP server grants, small credential files) wherever its harness runs.NIP-OA made identity travel. NIP-AE made memory travel. This proposes making the third machine-bound thing travel: with a keyring, a harness holding the agent's key can materialize its full working credential set on any executor (a laptop, a fleet container, a
buzz-backend-kubernetespod), and the machine becomes disposable.Design highlights
/loginin Claude Code on their laptop; an owner-side source watcher republishes the sealed head within seconds; every executor converges on push (a live keyring subscription on the same socket as mentions), a mandatory re-query-on-auth-failure rule heals the mid-turn race, and boot-time head fetch collapses any number of missed rotations for offline agents into one head. No catch-up protocol, no user ceremony.created_atmonotonicity for rollback resistance, tombstone heads for revocation, and a hard rule that the identity key never rides its own keyring.Kind number
30180, verified unassigned in this repo'skind.rs(30174–30179 are engrams, personas, teams, managed agents, team catalogs, private managed agents) and in the upstreamnostr-protocol/nipstable as of 2026-08-15. An earlier draft of this spec used 30176 and was renumbered after re-checking against currentmain— an accidental demonstration of why the registry-first rule in AGENTS.md earns its keep.Scope of this PR
Docs only — no
kind.rsreservation, no implementation. If the direction lands, the natural follow-ups are abuzz keyringCLI surface (pack/grant/rotate/revoke), the harness materialize + heal path inbuzz-acp, and the desktop keyring panel with source watchers. Happy to iterate on any of it here.🤖 Generated with Claude Code