Starknet Improvement Proposals (SNIPs)

Last edit

Contributors

Starknet Improvement Proposals (SNIPs) are design documents that describe new features, improvements, and standards for the Starknet community. They include a detailed technical specification and rationale for the proposed changes and serve as the source of truth for the community.

Importance of SNIPs

SNIPs are important for the development and improvement of the Starknet ecosystem. Here are some of the reasons:

  • Structured Development: SNIPs provide a formal and organized process for proposing new features, improvements, and standards, ensuring thorough review and discussion before implementation.

  • Community Involvement: They encourage active participation from the Starknet community by allowing anyone to propose and discuss changes, leading to more robust and well-rounded development.

  • Transparency: The SNIP process promotes transparency in decision-making, with all the proposals and discussions publicly documented and accessible.

  • Quality Assurance: The review process for SNIPs checks for technical soundness, feasibility, and alignment with Starknet’s goals. This helps maintain the quality and reliability of new features and improvements.

  • Documentation and Standardization: SNIPs are comprehensive documentation of all proposed and implemented changes, making integration easier for developers.

  • Future Planning: SNIPs help shape the future of Starknet by providing a clear roadmap of proposed improvements and features, aligning and prioritizing development efforts with Starknet’s vision.

To explore existing SNIPs, stay updated on ongoing proposals, and submit your own, visit the Starknet SNIPs repository and Community Forum.

Writing a SNIP

Writing a SNIP involves following our guidelines to ensure your proposal is well-structured, clear, and ready for community review. The SNIP process is based on the Ethereum Improvement Proposals (EIPs) process. Here’s how to get started:

  1. Review and familiarize yourself with SNIP-1

  2. Fork the SNIPs repository

  3. Use the SNIP template to create your SNIP.

  4. Submit a pull request (PR) to the SNIPs repository when your draft is complete.

Your first PR should be a draft of the final SNIP and must meet all formatting criteria, especially the correct metadata in the header. An editor reviews the PR, assigns it a number, and then merges it. Make sure you include a discussions-to header with the URL to a forum or GitHub issue for community discussions.

Before you start writing your SNIP, it can be helpful to review well-crafted proposals from other ecosystems as they can provide insights into the structure, clarity, and detail needed to make your proposal effective.

It can also be helpful to engage with the community to receive feedback before formalizing your idea into a SNIP.

SNIP life cycle

To understand the stages your SNIP goes through from idea to finalization, check out the SNIP Life Cycle. The life cycle includes stages such as Draft, Review, Last Call, and Final, as shown in the diagram below:

SNIP life cycle overview

SNIP editors

SNIP editors are community members or StarkWare staff overseeing the administrative process of SNIPs. Their responsibilities include:

  • Ensuring correct formatting of submitted SNIPs

  • Maintaining the SNIPs repository

  • Reviewing SNIPs for technical soundness and feasibility

  • Gathering opinions from StarkWare core teams for protocol changes

For more details, see the SNIP Editor Responsibilities. The current SNIP editors (with their GitHub handles) are:

Contributing and support

Contributions are essential to the Starknet community, fostering learning, inspiration, and innovation. Your involvement benefits everyone and is greatly appreciated. Everyone is welcome to create a SNIP. Here’s how you can contribute and get support:

  • Create a SNIP: Anyone can propose a SNIP. Ensure it follows the guidelines in SNIP-1.

  • Engage with the Community: As the author, engage in discussions on the Community Forum and the Starknet Discord.

  • Seek Feedback: Ask for feedback from the community on the forum, Discord, or GitHub issues to refine your proposal.

  • Promote SNIPs: Tweet about and write articles on SNIPs you find interesting to raise awareness and encourage discussion.

Thank you for contributing! Your participation helps strengthen and grow the Starknet community and network.