Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 64 additions & 21 deletions CHIPs/chip-0001.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Status | Living
Category | Process
Sub-Category | Procedural
Created | 2021-11-24
Updated | 2024-02-29
Updated | 2025-09-29

# CHia Improvement Proposals (CHIPs)

Expand Down Expand Up @@ -89,10 +89,28 @@ Each CHIP will be recorded publicly, as text files on a versioned repository. Th
Sub-categories of Standards Track CHIPs include:

* **Core** -- Changes to the block structure, transaction validity rules (including digital signatures), VDF implementation, plot sizes or structure, etc. Some, but not all, Core CHIPs will require a code fork. Therefore, these are the most difficult CHIPs for which to gain consensus acceptance from the community.
* **Network** -- Changes to the peer-to-peer network protocol. For example, additional specifications for sending messages or storing data.
* **Interface** -- Changes to the JSON or RPC specifications, as well as changes to method-level naming standards.
* **Chialisp** -- Includes any changes to the Chialisp language, and any implementations thereof. Proposals to add new operators, modify libraries, and modify package formats would each fit into this sub-category. Note that new Chialisp puzzles (with the exception of those that propose new primitives) typically fit under the Informational category.
* **Primitive** -- Proposals of new primitives on Chia's blockchain. _Primitives_ in this context are base-level standards (not derived from existing standards). Typically, primitives provide a technical foundation upon which applications may be developed. Examples in Chia include Singletons, CATs, and Offers.
* For example:
* [CHIP-12](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0012.md) (Decrease Plot Filter)
* [CHIP-22](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0022.md) (Enhanced Harvester Protocol)
* [CHIP-48](https://github.com/Chia-Network/chips/pull/160) (New Proof of Space)
* [CHIP-49](https://github.com/Chia-Network/chips/pull/161) (Proof Format Fork Timelines)
* **Network** -- Changes to the peer-to-peer network protocol.
* For example:
* [CHIP-26](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0026.md) (Wallet Sync Protocol)
* **CLVM** -- Includes any changes to the CLVM, and any implementations thereof. Proposals to add new CLVM operators or Chialisp conditions, modify libraries, and modify package formats would each fit into this sub-category. Note that new Chialisp puzzles (with the exception of those that propose new primitives) typically fit under the Informational category.
* For example:
* [CHIP-11](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0011.md) (BLS/SECP CLVM Operators and SOFTFORK Condition)
* [CHIP-14](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0014.md) (ASSERT_BEFORE_* Conditions)
* [CHIP-25](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0025.md) (Message Conditions)
* [CHIP-36](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0036.md) (keccak256 Operator)
* **Primitive** -- Proposals of new primitives on Chia's blockchain. _Primitives_ in this context are base-level standards (not derived from existing standards). Typically, primitives provide a technical foundation upon which applications may be developed.
* For example:
* [CHIP-4](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0004.md) (DID1 Standard)
* [CHIP-5](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0005.md) (NFT1 Standard)
* [CHIP-38](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0038.md) (Revocable CATs)
* [CHIP-43](https://github.com/Chia-Network/chips/pull/145) (Meta Inner Puzzle Spec)
* [CHIP-44](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0044.md) (Clawback Standard v2)
* [CHIP-45](https://github.com/Chia-Network/chips/pull/152) (Option Contracts)

---

Expand All @@ -103,23 +121,48 @@ Sub-categories of Standards Track CHIPs include:
Sub-categories of Process CHIPs include:

* **Procedural** -- A modification to the way in which processes are implemented or decisions are made regarding anything Chia-related.
* **Tooling** -- Changes to any tool outside of Chia's protocols.
* **Environment** -- Any changes to the environment used in Chia's development or implementation.
* For example:
* [CHIP-2](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0002.md) (dApp protocol)
* **Tooling** -- Changes to any tool outside of Chia's consensus and core protocols.
* For example:
* [CHIP-15](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0015.md) (NFT Metadata Extension)
* [CHIP-27](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0027.md) (Signer Wallet Protocol APIs)
* [CHIP-28](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0028.md) (Blind Signer Translation)
* [CHIP-29](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0029.md) (Signer Protocol Serialization)
* [CHIP-30](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0030.md) (Wallet Signer BLOB Subdivision)
* [CHIP-31](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0031.md) (Wallet Signer QR Transportation)
* **Other** -- Changes that don't fit into the other sub-categories.
* For example:
* [CHIP-7](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0007.md) (Off-chain metadata format for NFT1)
* [CHIP-46](https://github.com/Chia-Network/chips/pull/151/files) (Handling Dishonest NFT Offers)

---

### Informational

Informational CHIPs are general guidelines that do not propose new features or changes. These CHIPs do not require consensus from the community, so users are free to ignore them.
Informational CHIPs are general guidelines that do not propose consensus forks. Ecosystem applications frequently (but not always) will want to implement them.

Sub-categories of Informational CHIPs include:

* **Design** -- Changes to any naming conventions or semantics used within Chia's ecosystem. For example, renaming Coloured Coins to CATs.
* **Design** -- Changes to any naming conventions or semantics used within Chia's ecosystem.
* For example:
* Renaming Coloured Coins to CATs
* **Guideline** -- Recommendations to Chia's broader community regarding the development process.
* For example:
* [CHIP-9](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0009.md) (Name Service)
* [CHIP-20](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0020.md) (Wallet Hinted Coin Discovery)
* [CHIP-47](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0047.md) (NFC Offer Data)
* **Informative** -- Additional information related to Chia's processes or procedures.
* **Chialisp Puzzle** -- New Chialisp puzzles that are intended to be shared among the community, but which do not propose a new primitive.
* **Other** -- Changes that don't fit into the other sub-categories.
* For example:
* [CHIP-33](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0033.md) (Additional Partial Headers)
* **Puzzle** -- New puzzles (written in any language that compiles down to CLVM) that are intended to be shared among the community, but which do not propose a new primitive.
* For example:
* [CHIP-8](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0008.md) (Splitter Puzzle)
* [CHIP-21](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0021.md) (NFT Fusion Puzzle)
* [CHIP-35](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0035.md) (DataLayer Delegation Capabilities)
* [CHIP-37](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0037.md) (EIP-712 Wallet Puzzle)
* [CHIP-40](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0040.md) (everything_with_singleton TAIL)
* [CHIP-41](https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0041.md) (Streaming Puzzle)

## CHIP workflow

Expand Down Expand Up @@ -178,7 +221,7 @@ If you feel that your CHIP is ready to be moved to _Review_, it is up to you to

### Review

After a sufficient period in _Draft_ (which can vary significantly between CHIPs), when consensus has been reached and all dissenting opinions have been fully addressed, you may request your CHIP's Editor to move your CHIP into _Review_.
After a sufficient period in _Draft_ (which can vary significantly between CHIPs), when all dissenting opinions have been fully addressed, and a reference implementation (if applicable) is available, you may request your CHIP's Editor to move your CHIP into _Review_.

At this point, you must ask your peers to review your CHIP. Note that it is entirely up to you, as the Chip's author, to solicit these reviews. A lack of reviews will not be taken as a consensus agreement of your proposal. In fact, if your CHIP does not receive any reviews, this is an indication that it will not achieve broad adoption within the community, and therefore is not yet ready to be finalized. If your CHIP receives a sufficient number of negative reviews such that the Editor believes that a broad swath of the community disagrees with it, the Editor will move it back into _Draft_. Additionally, if you make any significant changes to your CHIP during this period (anything beyond spelling/grammatical corrections or minor clarifications), the Editor will also move it back into _Draft_.

Expand All @@ -192,7 +235,7 @@ If there is general consensus during this phase, the CHIP's Editor will move the

A limited number of CHIPs may be allowed to pass directly from _Idea_ to _Review (Fast Track)_. This phase will be used for proposals that have already received widespread consensus within the community.

>NOTE: As of early 2022, many changes are being implemented quite rapidly. Therefore, this phase is needed to allow for quick iteration and implementation of new ideas. In the future, once Chia and its ecosystem have matured, fast-tracking may be undertaken less often. It could also be completely removed as an option.
>NOTE: In the future, once Chia and its ecosystem have matured, fast-tracking may be undertaken less often. It could also be completely removed as an option.

Please get permission from a CHIP Editor before attempting to move your CHIP to this phase. After you have obtained this permission, fill out the standard [template](/chip-template.md) and submit it as a pull request in the [CHIPs GitHub repository](https://github.com/Chia-Network/chips/CHIPs "CHIPs GitHub repository"). Your CHIP file should be formatted in markdown, and it should be named using this convention: `chip-<your name>-<your proposal>`.

Expand Down Expand Up @@ -248,14 +291,14 @@ Additionally, informal reviews and comments are welcome in the #chia_dev channel

### CHIP editors

Name | Keybase Handle | Discord Handle | GitHub Profile
:-----------------|:-------------------------------------------|:----------------|:--------------
Bram Cohen | [@bramcohen](https://keybase.io/bramcohen) | bram_cohen | [bramcohen](https://github.com/bramcohen)
Gene Hoffman, Jr. | [@hoffmang](https://keybase.io/hoffmang) | hoffmang | [hoffmang9](https://github.com/hoffmang9)
Dan Perry | [@dan_perry](https://keybase.io/dan_perry) | danperry | [danieljperry](https://github.com/danieljperry)
Freddie Coleman | [@fcoleman](https://keybase.io/fcoleman) | freddiec12_381 | [freddiecoleman](https://github.com/freddiecoleman)
Will Riches | [@riches](https://keybase.io/riches) | wriches | [wriches](https://github.com/wriches)
Andreas Greimel | [@acevail](https://keybase.io/acevail) | acevail | [greimela](https://github.com/greimela)
Name | Keybase Handle | Discord Handle | GitHub Profile
:-----------------|:---------------------------------------------|:----------------|:--------------
Dan Perry | [@dan_perry](https://keybase.io/dan_perry) | danperry | [danieljperry](https://github.com/danieljperry)
Freddie Coleman | [@fcoleman](https://keybase.io/fcoleman) | freddiec12_381 | [freddiecoleman](https://github.com/freddiecoleman)
Andreas Greimel | [@acevail](https://keybase.io/acevail) | acevail | [greimela](https://github.com/greimela)
Jude Allred | [@judeallred](https://keybase.io/judeallred) | - | [judeallred](https://github.com/judeallred)
Brandon Haggstrom | [@rigidity](https://keybase.io/rigidity) | rigidity | [rigidity](https://github.com/rigidity)
Brandt Holmes | [@bholmes22](https://keybase.io/bholmes22) | clyd3wallace22 | [brandth22](https://github.com/BrandtH22)

### CHIP Editor responsibilities and workflow
When a pull request is created for a new CHIP, an Editor must review the template for:
Expand Down