Skip to content

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 ​

EventKindPurpose
Repository announcement30617Identifier, metadata, maintainers, relays, and clone locations
Repository state30618Optional announcement of branch tips, tags, and HEAD
Patch1617A Git format-patch payload and its repository relationship
Pull request1618Proposed commits available from one or more clone locations
Pull request update1619A new tip for an existing pull request
Issue1621A repository conversation such as a bug or question
Status1630–1633Open, applied or resolved, closed, and draft states
User GRASP list10317A 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.