← Back to NIP Index

NIP Process

NIP: 0 | Author: Nuwa community | Status: Living | Created: May 13, 2025


Abstract

This NIP defines the Nuwa Improvement Proposal (NIP) process. It outlines the stages a NIP goes through, the roles and responsibilities of participants, and the criteria for moving a NIP forward. The goal is to provide a clear, transparent, and community-driven framework for proposing, discussing, and integrating changes to the Nuwa Protocol and its ecosystem.

Motivation

A well-defined process for managing improvement proposals is crucial for the healthy evolution of the Nuwa Protocol. It ensures that:

Specification

NIP Types

NIPs are categorized into the following types:

NIP Statuses

A NIP progresses through the following statuses:

  1. Draft: The initial state of a NIP. A NIP is merged by NIP editors into the NIP repository when it is properly formatted and meets the basic requirements.
  2. Proposed: A NIP that is under active consideration by the community. This status indicates that the NIP is well-formed, the idea is clear, and it is ready for broader discussion and review.
  3. Active: A NIP that has been accepted for implementation. This means the core concepts have been approved, and a reference implementation is being developed or is already available.
  4. Final: A Standards Track NIP that has been implemented and adopted by the community. For a NIP to reach “Final” status, it must have a reference implementation and have been adopted by major clients or components of the Nuwa ecosystem.
  5. Living: A NIP that is continuously updated and maintained (e.g., NIP-0 itself, or NIPs defining core interfaces that may evolve).
  6. Stagnant: A NIP that has been inactive for a significant period (e.g., 6+ months) without progressing. It may be moved back to Draft or Withdrawn.
  7. Withdrawn: A NIP that has been withdrawn by its author(s).
  8. Rejected: A NIP that has been formally rejected by the NIP editors or community consensus after discussion.

NIP Workflow

  1. Idea: Propose your idea and discuss it with the Nuwa community (e.g., on a designated forum, mailing list, or GitHub discussions). This helps gauge interest and gather initial feedback.
  2. Drafting:
    • Fork the NIP repository.
    • Copy nip-template.md to NIPs/nip-XXXX.md (where XXXX is a number you will be assigned later).
    • Fill in the NIP. Pay attention to the NIP header fields.
    • Ensure the NIP is well-motivated, clearly specified, and considers backwards compatibility and security.
  3. Submission:
    • Submit a Pull Request (PR) to the NIPs repository.
    • The NIP editors will review the PR for formatting, clarity, and completeness. They will assign a NIP number.
    • The NIP editors may request revisions before merging the PR.
    • Once merged, the NIP is in Draft status.
  4. Discussion & Review:
    • The NIP author (or a champion) should actively solicit feedback and lead discussions.
    • The NIP may be updated based on community feedback.
    • If the NIP gains traction and addresses feedback appropriately, it can be moved to Proposed status by the NIP editors.
  5. Implementation (for Standards Track & relevant Meta NIPs):
    • A reference implementation should be developed.
    • Test cases are crucial.
    • Once a stable implementation exists and community consensus is strong, the NIP can be moved to Active.
  6. Adoption & Finalization (for Standards Track):
    • For a NIP to become Final, it must be adopted by the Nuwa ecosystem and demonstrate real-world use.
    • This typically involves inclusion in official releases or widespread usage.
  7. Maintenance (for Living NIPs):
    • Living NIPs are updated as needed to reflect the current state of the process or standard they define.

NIP Editors

NIP Editors are individuals responsible for the administrative and editorial aspects of the NIP process. Their responsibilities include:

The current NIP editors are:

NIP Template

All NIPs should follow the structure defined in nip-template.md. Key sections include:

Rationale

This NIP process is designed to be:

The roles and statuses are adapted from common practices in other successful open-source projects (e.g., Ethereum EIPs, Bitcoin BIPs, Python PEPs) to provide a familiar and effective framework.

Backwards Compatibility

This NIP defines a new process and does not directly impact existing protocol components. Therefore, no backwards compatibility issues are anticipated.

Security Considerations

Security considerations for the NIP process itself include:

Individual NIPs must address their own specific security implications as per the nip-template.md.

Copyright and related rights for this NIP are waived via CC0.