-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add EIP: Semantic Soulbound Tokens #6239
Conversation
✅ All reviewers have approved. |
EIPS/eip-6239.md
Outdated
--- | ||
eip: 6239 | ||
title: Semantic Soulbound Tokens | ||
description: Adding RDF triples to EIP-721 and EIP-5192 metadata to capture the social meaning of the Token |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your wording implied (to me at least) that this standard extended either EIP-721 or EIP-5192. I think this is more clear:
description: Adding RDF triples to EIP-721 and EIP-5192 metadata to capture the social meaning of the Token | |
description: Adding RDF triples to EIP-5192 token metadata to capture social meaning |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
|
||
## Abstract | ||
|
||
This proposal extends [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) by introducing a standard for adding RDF triples to Soulbound Tokens (‘SBTs‘) metadata. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can tighten this up a bit:
This proposal extends [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) by introducing a standard for adding RDF triples to Soulbound Tokens (‘SBTs‘) metadata. | |
This proposal extends [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) by introducing Resource Description Framework (RDF) triples to Soulbound Tokens' (‘SBTs‘) metadata. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
|
||
This proposal extends [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) by introducing a standard for adding RDF triples to Soulbound Tokens (‘SBTs‘) metadata. | ||
|
||
Soulbound Token represents the commitments, credentials, and affiliations of accounts. Resource Description Framework (‘RDF’) is a standard data model developed by the World Wide Web Consortium (‘W3C’) and is used to represent information in a structured, machine-readable format in triples consisting of a subject, a predicate, and an object (the ‘RDF triple’). These triples can be combined and linked together to represent more complex information and relationships. Semantic SBTs are built on existing [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) standards to include RDF triples in metadata to capture and store the meaning of social metadata as a network of accounts and attributes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cutting a bit more to keep the abstract short:
Soulbound Token represents the commitments, credentials, and affiliations of accounts. Resource Description Framework (‘RDF’) is a standard data model developed by the World Wide Web Consortium (‘W3C’) and is used to represent information in a structured, machine-readable format in triples consisting of a subject, a predicate, and an object (the ‘RDF triple’). These triples can be combined and linked together to represent more complex information and relationships. Semantic SBTs are built on existing [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) standards to include RDF triples in metadata to capture and store the meaning of social metadata as a network of accounts and attributes. | |
A Soulbound Token represents the commitments, credentials, and affiliations of accounts. RDF is a standard data model developed by the World Wide Web Consortium (‘W3C’) and is used to represent information in a structured format. Semantic SBTs are built on existing [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) standards to include RDF triples in metadata to capture and store the meaning of social metadata as a network of accounts and attributes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
|
||
Soulbound Token represents the commitments, credentials, and affiliations of accounts. Resource Description Framework (‘RDF’) is a standard data model developed by the World Wide Web Consortium (‘W3C’) and is used to represent information in a structured, machine-readable format in triples consisting of a subject, a predicate, and an object (the ‘RDF triple’). These triples can be combined and linked together to represent more complex information and relationships. Semantic SBTs are built on existing [EIP-721](./eip-721.md) and [EIP-5192](./eip-5192.md) standards to include RDF triples in metadata to capture and store the meaning of social metadata as a network of accounts and attributes. | ||
|
||
Semantic SBT provides a foundation for publishing, linking, and integrating data from multiple sources, and enables the ability to query and retrieve information across these sources, using inference to uncover new insights from existing social relations. For example, form the on-chain united social graph, assign trusted contacts for social recovery, and supports fair governance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably move this paragraph to motivation, since it isn't really a technical summary of the proposal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved to motivation as suggested.
EIPS/eip-6239.md
Outdated
|
||
## Motivation | ||
|
||
While the existence of SBTs can create a decentralized social framework, there still needs to be a way to create the connectedness of SBTs through relationships on-chain. Current NFTs and SBTs are hosting data off-chain, some even on centralized servers, let alone the linking of social data. And to further fuel the boom of the SBTs ecosystem, we need a bottom-up and decentralized way to maintain people’s social identity related information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Current NFTs and SBTs are hosting data off-chain, some even on centralized servers, let alone the linking of social data.
I don't really understand what this sentence is trying to say. Would you mind rewording it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reworded as below to make it clear.
While the existence of SBTs can create a decentralized social framework, there still needs to specify a common data model to manage the social metadata on-chain in a trustless manner, describing social metadata in an interconnected way, make it easy to be exchanged, integrated and discovered. And to further fuel the boom of the SBTs ecosystem, we need a bottom-up and decentralized way to maintain people’s social identity related information.
EIPS/eip-6239.md
Outdated
```Solidity | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
```Solidity | |
```solidity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
```Solidity | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
```Solidity | |
```solidity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
```Solidity | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
```Solidity | |
```solidity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
EIPS/eip-6239.md
Outdated
* @param tokenId The identifier for the Semantic Soulbound Token. | ||
* @param rdfData RDF data is a collection of RDF statements that are used to represent information about resources. | ||
*/ | ||
function updateRDF(uint256 tokenId, RDFData memory rdfData) external; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RDFData
is not defined within the specification section. The specification section must contain sufficient information to implement the standard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Defined RDFData and give some example data structures.
RDFData is a set of RDF statements that are used to represent social information about wallet addresses in the graph model. An RDF statement is the statement made by an RDF triple in subject-predicate-object format.
RDFData allows customized data schema, and developers can define data structures according to their needs. Here we provide a generic example of the structure of RDFData, using string types to define subject, predicate, and object.
In most cases, one token points to one RDF triple, the data structure as example 1 is applied. For scenarios where multiple predicates describe the same subject, i.e.multiple triples, the data structure as example 2 is applied, defining the predicate and object using an array type.
Example 1: Single triple scenario
Describing Alice attended Devcon :
:Soul_Alice p:attended :Event_Devcon
In this case, :Soul_Alice is the subject, p:attended is the predicate, and :Event_Devcon is the object.
Example 2: Multiple triples scenario
Describing Alice's profile with two attributes, event and year:
:Soul_Alice p:attended :Event_Denv; p:createdAt :2022.
In this case, :Soul_Alice is the subject, p:attended p:createdAt are predicates, and :Event_Devcon :2022 are object.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned that if, hypothetically, I wanted to write a generic dapp that can show RDF data (and its updates), I wouldn't be able to decode these events for any arbitrary token, and I'd need to write a specific implementation for each token to deal with the different RDFData
encodings.
EIPS/eip-6239.md
Outdated
### Method Specification | ||
|
||
rdfOf (uint256 tokenId): Query the RDF data for the Semantic Soulbound Token by tokenId. The returned RDF data format conforms to the W3C RDF standard. RDF data is a collection of RDF statements that are used to represent information about resources. An RDF statement, also known as a triple, is a unit of information in the RDF data model. It consists of three parts: a subject, a predicate, and an object. | ||
|
||
updateRDF (uint256 tokenId, RDFData rdfData): This **OPTIONAL** method is used when it needs to update the RDF data for Semantic SBT. Use this method to find the RDF data for Semantic SBT by tokenId and perform the update. The input RDF data **MUST** conform to W3C RDF standards. When implementing this method, **SHALL** assign updaters as needed, for example, the token issuer can be assigned as an updater. When calling this method, the UpdateRDF event **MUST** be triggered to notify the listener for performing relevant business update. | ||
|
||
schemaURI(): This **OPTIONAL** method is used to query the URIs of the schema for the RDF data. RDF Schema is an extension of the basic RDF vocabulary and provides a data-modelling vocabulary for RDF data. It is **RECOMMENDED** to store the RDF Schema in decentralized storage such as Arweave or IPFS. The URIs are then stored in the contract and can be queried by this method. | ||
|
||
### Event Specification | ||
|
||
CreateRDF: When minting a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the created RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | ||
|
||
UpdateRDF: When updating RDF data for a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform update operations accordingly with the updated RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | ||
|
||
RemoveRDF: When burning or revoking a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the removed RDF data for the Semantic SBT. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of this seems like it should belong in the Specification section. The Specification section should describe the externally visible behaviour of implementations, while the Rationale section must describe individual technical choices made within the EIP itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved this part into the Specification section as suggested and updated the Rationale section.
EIPS/eip-6239.md
Outdated
* @param tokenId The identifier for the Semantic Soulbound Token. | ||
* @param rdfData RDF data is a collection of RDF statements that are used to represent information about resources. | ||
*/ | ||
function updateRDF(uint256 tokenId, RDFData memory rdfData) external; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned that if, hypothetically, I wanted to write a generic dapp that can show RDF data (and its updates), I wouldn't be able to decode these events for any arbitrary token, and I'd need to write a specific implementation for each token to deal with the different RDFData
encodings.
EIPS/eip-6239.md
Outdated
|
||
### Method Specification | ||
|
||
rdfOf (uint256 tokenId): Query the RDF data for the Semantic Soulbound Token by tokenId. The returned RDF data format conforms to the W3C RDF standard. RDF data is a collection of RDF statements that are used to represent information about resources. An RDF statement, also known as a triple, is a unit of information in the RDF data model. It consists of three parts: a subject, a predicate, and an object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rdfOf (uint256 tokenId): Query the RDF data for the Semantic Soulbound Token by tokenId. The returned RDF data format conforms to the W3C RDF standard. RDF data is a collection of RDF statements that are used to represent information about resources. An RDF statement, also known as a triple, is a unit of information in the RDF data model. It consists of three parts: a subject, a predicate, and an object. | |
`rdfOf (uint256 tokenId)`: Query the RDF data for the Semantic Soulbound Token by `tokenId`. The returned RDF data format conforms to the W3C RDF standard. RDF data is a collection of RDF statements that are used to represent information about resources. An RDF statement, also known as a triple, is a unit of information in the RDF data model. It consists of three parts: a subject, a predicate, and an object. |
EIPS/eip-6239.md
Outdated
|
||
rdfOf (uint256 tokenId): Query the RDF data for the Semantic Soulbound Token by tokenId. The returned RDF data format conforms to the W3C RDF standard. RDF data is a collection of RDF statements that are used to represent information about resources. An RDF statement, also known as a triple, is a unit of information in the RDF data model. It consists of three parts: a subject, a predicate, and an object. | ||
|
||
updateRDF (uint256 tokenId, RDFData rdfData): This **OPTIONAL** method is used when it needs to update the RDF data for Semantic SBT. Use this method to find the RDF data for Semantic SBT by tokenId and perform the update. The input RDF data **MUST** conform to W3C RDF standards. When implementing this method, **SHALL** assign updaters as needed, for example, the token issuer can be assigned as an updater. When calling this method, the UpdateRDF event **MUST** be triggered to notify the listener for performing relevant business update. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updateRDF (uint256 tokenId, RDFData rdfData): This **OPTIONAL** method is used when it needs to update the RDF data for Semantic SBT. Use this method to find the RDF data for Semantic SBT by tokenId and perform the update. The input RDF data **MUST** conform to W3C RDF standards. When implementing this method, **SHALL** assign updaters as needed, for example, the token issuer can be assigned as an updater. When calling this method, the UpdateRDF event **MUST** be triggered to notify the listener for performing relevant business update. | |
`updateRDF (uint256 tokenId, RDFData rdfData)`: This **OPTIONAL** method is used when it needs to update the RDF data for Semantic SBT. Use this method to find the RDF data for Semantic SBT by `tokenId` and perform the update. The input RDF data **MUST** conform to W3C RDF standards. When implementing this method, **SHALL** assign updaters as needed, for example, the token issuer can be assigned as an updater. When calling this method, the `UpdateRDF` event **MUST** be triggered to notify the listener for performing relevant business update. |
EIPS/eip-6239.md
Outdated
|
||
updateRDF (uint256 tokenId, RDFData rdfData): This **OPTIONAL** method is used when it needs to update the RDF data for Semantic SBT. Use this method to find the RDF data for Semantic SBT by tokenId and perform the update. The input RDF data **MUST** conform to W3C RDF standards. When implementing this method, **SHALL** assign updaters as needed, for example, the token issuer can be assigned as an updater. When calling this method, the UpdateRDF event **MUST** be triggered to notify the listener for performing relevant business update. | ||
|
||
schemaURI(): This **OPTIONAL** method is used to query the URIs of the schema for the RDF data. RDF Schema is an extension of the basic RDF vocabulary and provides a data-modelling vocabulary for RDF data. It is **RECOMMENDED** to store the RDF Schema in decentralized storage such as Arweave or IPFS. The URIs are then stored in the contract and can be queried by this method. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
schemaURI(): This **OPTIONAL** method is used to query the URIs of the schema for the RDF data. RDF Schema is an extension of the basic RDF vocabulary and provides a data-modelling vocabulary for RDF data. It is **RECOMMENDED** to store the RDF Schema in decentralized storage such as Arweave or IPFS. The URIs are then stored in the contract and can be queried by this method. | |
`schemaURI()`: This **OPTIONAL** method is used to query the URIs of the schema for the RDF data. RDF Schema is an extension of the basic RDF vocabulary and provides a data-modelling vocabulary for RDF data. It is **RECOMMENDED** to store the RDF Schema in decentralized storage such as Arweave or IPFS. The URIs are then stored in the contract and can be queried by this method. |
EIPS/eip-6239.md
Outdated
|
||
### Event Specification | ||
|
||
CreateRDF: When minting a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the created RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CreateRDF: When minting a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the created RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | |
`CreateRDF`: When minting a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the created RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
EIPS/eip-6239.md
Outdated
|
||
CreateRDF: When minting a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the created RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | ||
|
||
UpdateRDF: When updating RDF data for a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform update operations accordingly with the updated RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
UpdateRDF: When updating RDF data for a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform update operations accordingly with the updated RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | |
`UpdateRDF`: When updating RDF data for a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform update operations accordingly with the updated RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
EIPS/eip-6239.md
Outdated
|
||
UpdateRDF: When updating RDF data for a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform update operations accordingly with the updated RDF data. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | ||
|
||
RemoveRDF: When burning or revoking a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the removed RDF data for the Semantic SBT. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RemoveRDF: When burning or revoking a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the removed RDF data for the Semantic SBT. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. | |
`RemoveRDF`: When burning or revoking a Semantic Soulbound Token, this event **MUST** be triggered to notify the listener to perform operations with the removed RDF data for the Semantic SBT. When calling the event, the input RDF data **MUST** be RDF statements, which are units of information consisting of three parts: a subject, a predicate, and an object. |
EIPS/eip-6239.md
Outdated
|
||
## Rationale | ||
|
||
The Decentralized Social today is sufficiently under-specified, leaving many methods to be built to reach convergence and interoperability. Continued work for consensus on standard DeSoc methods is needed. In order to manage the huge dataset that will be generated in DeSoc, we need to model the data in an efficient way for better management, easier integration and faster analysis. We introduce the Semantic SBTs, which specify in a common graph data model,as the blockchain-based identity certifications and primitive building blocks in building the structure of Decentralized social to empower the building of social relations and reputations in DeSoc. Thus provides a way to build next-generation social networks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This reads more like Motivation-type content. The Rationale section should describe individual technical choices made within the proposal, while the Motivation should justify the existence of the EIP as a whole.
The commit f0746f4 (as a parent of fa5cedb) contains errors. |
EIPS/eip-6239.md
Outdated
|
||
RDF statements come in various formats, we have selected the six most commonly used formats: `nt(N-Triples)`,`ttl(Turtle)`,`rdf(RDF/XML)`,`rj(RDF/JSON)`,`nq(N-Quads)` and `trig(TriG)`. | ||
|
||
The complete format of an RDF statement: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The character :
isn't rendering correctly for me.
EIPS/eip-6239.md
Outdated
|
||
{}:OPTIONAL | ||
|
||
<>: MUST |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<>: MUST | |
In the following section, fragments surrounded by `<>` characters are REQUIRED. |
EIPS/eip-6239.md
Outdated
|
||
- `nt(n-triples)` | ||
|
||
[`nt`](http://www.w3.org/ns/formats/N-Triples) uses space to separate the subject, predicate, object of a triple, and a period . to indicate the end of a triple. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We currently do not allow links to the W3 standards organization. Once #6691 is merged, the bots will be updated to allow these links.
In the meantime, you could remove these links, or wait for that pull request to be merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have removed the links to W3C. Can you consider merging the request?
Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
EIPS/eip-6239.md
Outdated
} | ||
``` | ||
|
||
`ISemanticSBTUpdate` is an extension interface, that is **OPTIONAL** for this standard, used to update the RDF data for the Semantic Soulbound Token. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally speaking, functions that are called by the deployer of the contract don't need to be standardized, because the deployer of the contract has application specific knowledge about the implementation. For example the mint
and burn
functions of ERC-20 and ERC-721 tokens are part of those standards because that behaviour is specific to each implementation.
Similar logic applies here. ISemanticSBTUpdate
is specific to each implementation, and so shouldn't be part of the standard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SamWilsn Thank you for your suggestion, we have deleted ISemanticSBTUpdate in eip 6239.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All Reviewers Have Approved; Performing Automatic Merge...
When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: