From 88f8a7aa228ce62622787798dbc1c919d454a145 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Sat, 18 Apr 2026 15:55:18 +0100 Subject: [PATCH 1/8] EIP tags --- EIPS/eip-tags.md | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 EIPS/eip-tags.md diff --git a/EIPS/eip-tags.md b/EIPS/eip-tags.md new file mode 100644 index 00000000000000..ce542c7c721c5d --- /dev/null +++ b/EIPS/eip-tags.md @@ -0,0 +1,98 @@ +--- +title: EIP tagging +description: Acceptable tags for EIPs with descriptions +author: James Kempton (@SirSpudlington), et al. +discussions-to: https://ethereum-magicians.org/t/eip-tagging/28275 +status: Draft +type: Meta +created: 2026-04-18 +requires: 1 +tags: + - "meta:eip/tags" +--- + +## Tag structure + +EIP tags must follow the structure of `namespace:category[/subcategory]`. The `[/subcategory]` section of a tag is optional, and may be omitted if an EIP broadly covers a topic. +Tags should be appended on a per-tag basis, no two tags are mutually exclusive. + +## Acceptable tags + +The acceptable tags that may be found in an EIP are defined below. + +### The `el` namespace + +| Tag name | Description | +|-|-| +| `el:block` | Modifications to the structure, processing or handling of blocks. (Excluding EVM processing) | +| `el:cryptography` | Introduction or modification of any new cryptographic primitive or algorithms. | +| `el:data-availability` | Introduction or modification of any system with a primary purpose of providing data availability to external consumers outside of the EVM. | +| `el:evm` | Introduction or modification of the processing or structure of EVM bytecode. | +| `el:receipt` | Modifications to the structure or handling of transaction receipts. | +| `el:state` | Changes to how the state is structured or processed. | +| `el:transaction` | Modification or introduction of a transactions structure or processing **or** introduction of new transaction types. (Excluding EVM processing) | +| `el:validator` | Changes to how validators are processed on the execution layer. | + +### The `cl` namespace + +| Tag name | Description | +|-|-| +| `cl:cryptography` | Introduction or modification of any new cryptographic primitive or algorithms. | +| `cl:data-availability` | Introduction or modification of any system with a primary purpose of providing data availability to external consumers outside of the EVM. | +| `cl:finalization` | Changes to how blocks are finalized. | +| `cl:fork-choice` | Changes to how the the next correct block is selected. | +| `cl:light` | Systems that have a primary purpose of providing for light clients. | +| `cl:slot` | Modifications to the structure, timing, processing or handling of slots. | +| `cl:validator` | Changes to validator operation or processing. | + +### The `net` namespace + +| Tag name | Description | +|-|-| +| `net:transports` | Changes to how messages are passed between clients. | +| `net:discovery` | Changes to how clients discover and peer with each other. | +| `net:identification` | How peers may identify themselves to other peers. | +| `net:protocol` | Introduction or changes of specific protocols. | +| `net:protocol/execution` | Protocols for execution bound messages. | +| `net:protocol/sync` | Protocols that have a primary purpose of syncing with other peers. | +| `net:protocol/consensus` | Protocols for consensus bound messages. | +| `net:protocol/light-client` | Protocols that have a primary purpose of providing light clients with chain information. | +| `net:protocol/rpc` | Protocols for communication of chain data between clients | + + +### The `erc` namespace + + + + +### The `meta` namespace + +| Tag name | Description | +|-|-| +| `meta:eip/tags` | EIPs that modifies existing tags or how they are handled. | +| `meta:experimental` | EIPs that have functionality that does not fit into pre-existing tags. EIPs with this tag cannot finalize, tags should be created to replace this tag before finalization. | + + +## Tagging guidelines + +Introducing new tags must follow the below conditions: + +- Tags must be generic. Tags must not specify how something is done, just what is done. +- Tags should be short and human readable. +- Tags must map to one namespace +- Tags can only be created if they are: + - Blocking an EIP with the `meta:experimental` tag from finalizing + - Are currently present in the network +- Tags can only be removed if: + - All EIPs using the tag are Withdrawn or Stagnant. + - The tag does not have a reasonable implementation within a major client + + + +## Example tags + +The tags for [EIP-2718](./eip-2718.md) would be `el:transaction` and `el:receipt`. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). \ No newline at end of file From abe4794c825962a22edfe7db8b4b6f74c8e62cc3 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Sat, 18 Apr 2026 17:15:07 +0100 Subject: [PATCH 2/8] Add real tag --- EIPS/eip-tags.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EIPS/eip-tags.md b/EIPS/eip-tags.md index ce542c7c721c5d..b2802d24d99299 100644 --- a/EIPS/eip-tags.md +++ b/EIPS/eip-tags.md @@ -28,6 +28,8 @@ The acceptable tags that may be found in an EIP are defined below. | `el:cryptography` | Introduction or modification of any new cryptographic primitive or algorithms. | | `el:data-availability` | Introduction or modification of any system with a primary purpose of providing data availability to external consumers outside of the EVM. | | `el:evm` | Introduction or modification of the processing or structure of EVM bytecode. | +| `el:evm/opcode` | Introduction or modification of specific EVM opcodes. | +| `el:evm/precompile` | Introduction or modification of precompiled contracts. | | `el:receipt` | Modifications to the structure or handling of transaction receipts. | | `el:state` | Changes to how the state is structured or processed. | | `el:transaction` | Modification or introduction of a transactions structure or processing **or** introduction of new transaction types. (Excluding EVM processing) | From 7626ae198a326af81c70b786f5ea1706fa2ef2b0 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Sat, 18 Apr 2026 18:39:33 +0100 Subject: [PATCH 3/8] Change up some things --- EIPS/eip-tags.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-tags.md b/EIPS/eip-tags.md index b2802d24d99299..38c698978cbd75 100644 --- a/EIPS/eip-tags.md +++ b/EIPS/eip-tags.md @@ -84,7 +84,7 @@ Introducing new tags must follow the below conditions: - Tags must map to one namespace - Tags can only be created if they are: - Blocking an EIP with the `meta:experimental` tag from finalizing - - Are currently present in the network + - Or have a reasonable implementation within a major client - Tags can only be removed if: - All EIPs using the tag are Withdrawn or Stagnant. - The tag does not have a reasonable implementation within a major client From 6ad09f0c85267dea0ebef74848fa78c8e5ca3702 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Mon, 20 Apr 2026 09:14:24 +0100 Subject: [PATCH 4/8] Minor tweaks + how to add new tags --- EIPS/{eip-tags.md => eip-8235.md} | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) rename EIPS/{eip-tags.md => eip-8235.md} (79%) diff --git a/EIPS/eip-tags.md b/EIPS/eip-8235.md similarity index 79% rename from EIPS/eip-tags.md rename to EIPS/eip-8235.md index 38c698978cbd75..8a0e2cfcdb72bc 100644 --- a/EIPS/eip-tags.md +++ b/EIPS/eip-8235.md @@ -1,8 +1,9 @@ --- +eip: 8235 title: EIP tagging description: Acceptable tags for EIPs with descriptions author: James Kempton (@SirSpudlington), et al. -discussions-to: https://ethereum-magicians.org/t/eip-tagging/28275 +discussions-to: https://ethereum-magicians.org/t/meta-eip-8235-eip-tagging/28275 status: Draft type: Meta created: 2026-04-18 @@ -16,7 +17,9 @@ tags: EIP tags must follow the structure of `namespace:category[/subcategory]`. The `[/subcategory]` section of a tag is optional, and may be omitted if an EIP broadly covers a topic. Tags should be appended on a per-tag basis, no two tags are mutually exclusive. -## Acceptable tags +Core EIPs must include the minimal number of tags that can fully cover the proposal. Tags are optional for non-core EIPs but if included, must be comprehensive and minimal. + +## Predefined tags The acceptable tags that may be found in an EIP are defined below. @@ -33,7 +36,9 @@ The acceptable tags that may be found in an EIP are defined below. | `el:receipt` | Modifications to the structure or handling of transaction receipts. | | `el:state` | Changes to how the state is structured or processed. | | `el:transaction` | Modification or introduction of a transactions structure or processing **or** introduction of new transaction types. (Excluding EVM processing) | +| `el:transaction/type` | Introduction of new transaction types. (Excluding EVM processing) | | `el:validator` | Changes to how validators are processed on the execution layer. | + ### The `cl` namespace @@ -46,6 +51,7 @@ The acceptable tags that may be found in an EIP are defined below. | `cl:light` | Systems that have a primary purpose of providing for light clients. | | `cl:slot` | Modifications to the structure, timing, processing or handling of slots. | | `cl:validator` | Changes to validator operation or processing. | + ### The `net` namespace @@ -62,16 +68,11 @@ The acceptable tags that may be found in an EIP are defined below. | `net:protocol/rpc` | Protocols for communication of chain data between clients | -### The `erc` namespace - - - - ### The `meta` namespace | Tag name | Description | |-|-| -| `meta:eip/tags` | EIPs that modifies existing tags or how they are handled. | +| `meta:eip/tags` | EIPs that modifies existing or introduces new tags. | | `meta:experimental` | EIPs that have functionality that does not fit into pre-existing tags. EIPs with this tag cannot finalize, tags should be created to replace this tag before finalization. | @@ -89,7 +90,16 @@ Introducing new tags must follow the below conditions: - All EIPs using the tag are Withdrawn or Stagnant. - The tag does not have a reasonable implementation within a major client - + + +Introduction of additional tags must be within the EIP that initially defines the functionality of that tag. + +The EIP: +- Should define the additional tags within the specification section of the EIP +- Must provide a definition of the tags for future usage. +- Must be tagged with `meta:eip/tags` + +Introduction of new tags also requires at least 2 editors to achieve consensus with no objections, it is highly recommended that draft EIPs do not introduce new tags but use the `meta:experimental` tag until the EIP is finalized. ## Example tags From ebc441292dda71b62924069eafb9745ed43e8d12 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Mon, 20 Apr 2026 09:15:29 +0100 Subject: [PATCH 5/8] Make the linter happy --- EIPS/eip-8235.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-8235.md b/EIPS/eip-8235.md index 8a0e2cfcdb72bc..645da6e3b2e34d 100644 --- a/EIPS/eip-8235.md +++ b/EIPS/eip-8235.md @@ -95,6 +95,7 @@ Introducing new tags must follow the below conditions: Introduction of additional tags must be within the EIP that initially defines the functionality of that tag. The EIP: + - Should define the additional tags within the specification section of the EIP - Must provide a definition of the tags for future usage. - Must be tagged with `meta:eip/tags` @@ -107,4 +108,4 @@ The tags for [EIP-2718](./eip-2718.md) would be `el:transaction` and `el:receipt ## Copyright -Copyright and related rights waived via [CC0](../LICENSE.md). \ No newline at end of file +Copyright and related rights waived via [CC0](../LICENSE.md). From 0da41d20ba9664b21b606c8f148d21f764f238ce Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Mon, 20 Apr 2026 10:07:06 +0100 Subject: [PATCH 6/8] Add correct sections --- EIPS/eip-8235.md | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/EIPS/eip-8235.md b/EIPS/eip-8235.md index 645da6e3b2e34d..c97cab8e581388 100644 --- a/EIPS/eip-8235.md +++ b/EIPS/eip-8235.md @@ -1,7 +1,7 @@ --- eip: 8235 title: EIP tagging -description: Acceptable tags for EIPs with descriptions +description: Adds required tags for EIPs author: James Kempton (@SirSpudlington), et al. discussions-to: https://ethereum-magicians.org/t/meta-eip-8235-eip-tagging/28275 status: Draft @@ -12,18 +12,26 @@ tags: - "meta:eip/tags" --- -## Tag structure +## Abstract + +Introduce a was to tag EIPs with well-known specifics on what the EIP affects and defines governance rules on the addition and removal of these tags. + +## Specification + +### Tag structure EIP tags must follow the structure of `namespace:category[/subcategory]`. The `[/subcategory]` section of a tag is optional, and may be omitted if an EIP broadly covers a topic. Tags should be appended on a per-tag basis, no two tags are mutually exclusive. Core EIPs must include the minimal number of tags that can fully cover the proposal. Tags are optional for non-core EIPs but if included, must be comprehensive and minimal. -## Predefined tags +EIPs must define tags within the EIP preamble under the `tags` key. + +### Predefined tags The acceptable tags that may be found in an EIP are defined below. -### The `el` namespace +#### The `el` namespace | Tag name | Description | |-|-| @@ -40,7 +48,7 @@ The acceptable tags that may be found in an EIP are defined below. | `el:validator` | Changes to how validators are processed on the execution layer. | -### The `cl` namespace +#### The `cl` namespace | Tag name | Description | |-|-| @@ -53,7 +61,7 @@ The acceptable tags that may be found in an EIP are defined below. | `cl:validator` | Changes to validator operation or processing. | -### The `net` namespace +#### The `net` namespace | Tag name | Description | |-|-| @@ -68,7 +76,7 @@ The acceptable tags that may be found in an EIP are defined below. | `net:protocol/rpc` | Protocols for communication of chain data between clients | -### The `meta` namespace +#### The `meta` namespace | Tag name | Description | |-|-| @@ -76,7 +84,7 @@ The acceptable tags that may be found in an EIP are defined below. | `meta:experimental` | EIPs that have functionality that does not fit into pre-existing tags. EIPs with this tag cannot finalize, tags should be created to replace this tag before finalization. | -## Tagging guidelines +### Tagging guidelines Introducing new tags must follow the below conditions: @@ -102,10 +110,18 @@ The EIP: Introduction of new tags also requires at least 2 editors to achieve consensus with no objections, it is highly recommended that draft EIPs do not introduce new tags but use the `meta:experimental` tag until the EIP is finalized. -## Example tags +### Example tags The tags for [EIP-2718](./eip-2718.md) would be `el:transaction` and `el:receipt`. +## Rationale + + + +## Security Considerations + +No security issues found. + ## Copyright Copyright and related rights waived via [CC0](../LICENSE.md). From 848b5da743ebb84834b72530f0bc6c36d313e27d Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Fri, 22 May 2026 12:39:13 +0100 Subject: [PATCH 7/8] Remove tags to make the walidator happy --- EIPS/eip-8235.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/EIPS/eip-8235.md b/EIPS/eip-8235.md index c97cab8e581388..0f1bbd8ab3609a 100644 --- a/EIPS/eip-8235.md +++ b/EIPS/eip-8235.md @@ -8,8 +8,6 @@ status: Draft type: Meta created: 2026-04-18 requires: 1 -tags: - - "meta:eip/tags" --- ## Abstract From 4f5fc0e22bcce8475b0abbd24cb3fd29bd526052 Mon Sep 17 00:00:00 2001 From: SirSpudlington <73645805+SirSpudlington@users.noreply.github.com> Date: Tue, 2 Jun 2026 21:04:15 +0100 Subject: [PATCH 8/8] Update to be an EIP-1 update. --- EIPS/eip-1.md | 12 ++++++++ EIPS/eip-8235.md | 76 +++++++++++++++++++++++------------------------- eip-template.md | 1 + 3 files changed, 50 insertions(+), 39 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index 9391094092c3a6..aa39a3ca848c69 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -140,6 +140,8 @@ Each EIP must begin with an [RFC 822](https://www.ietf.org/rfc/rfc822.txt) style `requires`: *EIP number(s)* (Optional field) +`tags`: *List of EIP tags* (Optional field, only required for core EIPs to finalize) + `withdrawal-reason`: *A sentence explaining why the EIP was withdrawn.* (Optional field, only needed when status is `Withdrawn`) Headers that permit lists must separate elements with commas. @@ -192,6 +194,16 @@ EIPs may have a `requires` header, indicating the EIP numbers that this EIP depe A `requires` dependency is created when the current EIP cannot be understood or implemented without a concept or technical element from another EIP. Merely mentioning another EIP does not necessarily create such a dependency. +### `tags` header + +The `tags` header is for tags that describe the scope of the EIP. If defined, tags MUST be minimal and MUST comprehensively cover all aspects of the EIP. + +Tags MUST be defined on all core EIPs for them to finalize but are also RECOMMENDED on all EIPs. + +Draft EIPs SHOULD use the `meta:experimental` instead of defining new tags. + +The list of acceptable tags and the process governing modifications to the list is described in [EIP-8235](./eip-8235.md). + ## Linking to External Resources Other than the specific exceptions listed below, links to external resources **SHOULD NOT** be included. External resources may disappear, move, or change unexpectedly. diff --git a/EIPS/eip-8235.md b/EIPS/eip-8235.md index 0f1bbd8ab3609a..ec8635a1fe0a27 100644 --- a/EIPS/eip-8235.md +++ b/EIPS/eip-8235.md @@ -1,7 +1,7 @@ --- eip: 8235 title: EIP tagging -description: Adds required tags for EIPs +description: Requirements and governance process for the modification of EIP tags and the list of well-defined tags. author: James Kempton (@SirSpudlington), et al. discussions-to: https://ethereum-magicians.org/t/meta-eip-8235-eip-tagging/28275 status: Draft @@ -12,22 +12,51 @@ requires: 1 ## Abstract -Introduce a was to tag EIPs with well-known specifics on what the EIP affects and defines governance rules on the addition and removal of these tags. +This document defines the set of well-known tags that EIPs may use to categorize themselves. The process and governance rules for appending to this list are also defined within this document ## Specification +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). + ### Tag structure -EIP tags must follow the structure of `namespace:category[/subcategory]`. The `[/subcategory]` section of a tag is optional, and may be omitted if an EIP broadly covers a topic. -Tags should be appended on a per-tag basis, no two tags are mutually exclusive. +EIP tags must follow the structure of `namespace:category[/subcategory]` with the `[/subcategory]` section of a tag +being optional if an EIP covers the majority of the parent tag. + +### Tag requirements + +All defined tags MUST adhere to the following conditions: + +- Tags MUST be generic. They MUST NOT specify how something is done, they can only specify the outcome of the proposal. +- Tags MUST belong to exactly one namespace, if a tag could span multiple namespaces it SHOULD be duplicated per namespace. +- Tags MUST be accompanied by a definition of the tag's scope. Tag definitions MUST NOT introduce ambiguity with existing tags. +- Tags SHALL be short and human readable. +- Tags SHALL be mutually exclusive of each other. Tags should not depend on any other tag than its parent tag. + + +### Creation of new tags + +Newly proposed tags MUST satisfy at least one of the following conditions: + +- The tag is required to allow EIP with the `meta:experimental` tag to finalize +- The tag describes behaviour that is present within a reasonable implementation of protocol + +Should editor consensus be reached that a proposed tag meets the above requirements, the tag name and definition +MUST be appended to this document's [Defined Tags](#defined-tags) section. + +### Removal of existing tags + +If any defined tag fails to satisfy any of the requirements for creation, it MUST +be removed from this document. It MAY be added again if it once again meets the +creation requirements. -Core EIPs must include the minimal number of tags that can fully cover the proposal. Tags are optional for non-core EIPs but if included, must be comprehensive and minimal. +Final, Withdrawn or Stagnant EIPs MUST NOT be modified if a dependent tag ceases to exist. -EIPs must define tags within the EIP preamble under the `tags` key. +All other EIPs MUST remove any references to removed tags before they can finalize. -### Predefined tags +### Defined tags -The acceptable tags that may be found in an EIP are defined below. +The currently defined tags that are permitted in an EIP are defined below. #### The `el` namespace @@ -78,40 +107,9 @@ The acceptable tags that may be found in an EIP are defined below. | Tag name | Description | |-|-| -| `meta:eip/tags` | EIPs that modifies existing or introduces new tags. | | `meta:experimental` | EIPs that have functionality that does not fit into pre-existing tags. EIPs with this tag cannot finalize, tags should be created to replace this tag before finalization. | -### Tagging guidelines - -Introducing new tags must follow the below conditions: - -- Tags must be generic. Tags must not specify how something is done, just what is done. -- Tags should be short and human readable. -- Tags must map to one namespace -- Tags can only be created if they are: - - Blocking an EIP with the `meta:experimental` tag from finalizing - - Or have a reasonable implementation within a major client -- Tags can only be removed if: - - All EIPs using the tag are Withdrawn or Stagnant. - - The tag does not have a reasonable implementation within a major client - - - -Introduction of additional tags must be within the EIP that initially defines the functionality of that tag. - -The EIP: - -- Should define the additional tags within the specification section of the EIP -- Must provide a definition of the tags for future usage. -- Must be tagged with `meta:eip/tags` - -Introduction of new tags also requires at least 2 editors to achieve consensus with no objections, it is highly recommended that draft EIPs do not introduce new tags but use the `meta:experimental` tag until the EIP is finalized. - -### Example tags - -The tags for [EIP-2718](./eip-2718.md) would be `el:transaction` and `el:receipt`. - ## Rationale diff --git a/eip-template.md b/eip-template.md index 4a1806af828421..eb2ff4912ac3e8 100644 --- a/eip-template.md +++ b/eip-template.md @@ -8,6 +8,7 @@ type: category: # Only required for Standards Track. Otherwise, remove this field. created: requires: # Only required when you reference an EIP in the `Specification` section. Otherwise, remove this field. +tags: # EIP tags, optional for non-core EIPs ---