NIP-34 overview
NIP-34 defines how Git repositories and collaboration around them can be represented as Nostr events. It covers discovery and discussion; Git servers still store and transfer the repository's objects. See the protocol map for the hosting, publishing, and CI protocols built beside it.
Event map
| Event | Kind | Purpose |
|---|---|---|
| Repository announcement | 30617 | Identifier, metadata, maintainers, relays, and clone locations |
| Repository state | 30618 | Optional announcement of branch tips, tags, and HEAD |
| Patch | 1617 | A Git format-patch payload and its repository relationship |
| Pull request | 1618 | Proposed commits available from one or more clone locations |
| Pull request update | 1619 | A new tip for an existing pull request |
| Issue | 1621 | A repository conversation such as a bug or question |
| Status | 1630–1633 | Open, applied or resolved, closed, and draft states |
| User GRASP list | 10317 | A user's preferred GRASP service URLs |
Replies to issues, patches, and pull requests follow the NIP-22 comment model.
Repository coordinates
A repository announcement is an addressable event whose coordinate combines kind 30617, the announcement author's public key, and its d identifier. A nostr:// URL can carry that coordinate directly or express it as a maintainer plus repository identifier, with an optional relay hint for discovery.
The announcement can list multiple relay and clone URLs. The relay hint in a clone URL helps a client find the announcement; it is not the repository's central authority.
Maintainers
A proposed NIP-34 maintainer update adds explicit roles, acceptance, and role history. It was developed alongside ngit v3 and ngit-grasp v3, which implement the model, but it is expressed as protocol rules that other clients and services can adopt independently. The NIP-34 maintainers page explains the changes proposed in pull request #2324. You can read the full NIP-34 specification with that proposal applied, or the currently published NIP-34 without them.
Normative source
Implementation extensions
Many clients implement NIP-34 and may experiment with conventions outside the current specification. This site specifically tracks some additional conventions shared by ngit and GitWorkshop. They are collected in GitWorkshop's working NIP.md while they mature. Some entries describe client-specific or experimental behaviour.
The most established, non-experimental conventions may later move into this documentation, be proposed for inclusion in NIP-34 itself, or both.