Skip to content
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 ERC: Smart Contract Identifiers and Metadata Extension #265

Closed
wants to merge 41 commits into from

Conversation

SaulBuilds
Copy link

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:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Feb 17, 2024

File ERCS/erc-7625.md

Requires 1 more reviewers from @axic, @g11tech, @SamWilsn, @xinbenlv

@github-actions github-actions bot added the w-ci label Feb 17, 2024
@SaulBuilds SaulBuilds closed this Feb 17, 2024
@SaulBuilds SaulBuilds reopened this Feb 17, 2024
@github-actions github-actions bot removed the w-ci label Feb 17, 2024
@eip-review-bot eip-review-bot changed the title EIP-321:(ERC Proposal) tokenization of Smart Contracts with 'ContractId' and metadata Add ERC: Smart Contract Id's and Metadata Extension Feb 17, 2024
@eip-review-bot eip-review-bot enabled auto-merge (squash) February 17, 2024 11:09
Copy link
Collaborator

@eip-review-bot eip-review-bot left a 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...

eip-review-bot
eip-review-bot previously approved these changes Feb 17, 2024
Copy link
Collaborator

@eip-review-bot eip-review-bot left a 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...

@github-actions github-actions bot added the w-ci label Feb 17, 2024
auto-merge was automatically disabled February 17, 2024 11:14

Head branch was pushed to by a user without write access

@SaulBuilds SaulBuilds closed this Feb 17, 2024
@SaulBuilds SaulBuilds reopened this Feb 17, 2024
@github-actions github-actions bot removed the w-ci label Feb 17, 2024
@eip-review-bot eip-review-bot enabled auto-merge (squash) February 17, 2024 11:15
Copy link
Collaborator

@eip-review-bot eip-review-bot left a 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...

eip-review-bot
eip-review-bot previously approved these changes Feb 17, 2024
Copy link
Collaborator

@eip-review-bot eip-review-bot left a 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...

auto-merge was automatically disabled February 17, 2024 11:20

Head branch was pushed to by a user without write access

@eip-review-bot eip-review-bot enabled auto-merge (squash) February 17, 2024 11:21
eip-review-bot
eip-review-bot previously approved these changes Feb 17, 2024
Copy link
Collaborator

@eip-review-bot eip-review-bot left a 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...

auto-merge was automatically disabled February 17, 2024 11:21

Head branch was pushed to by a user without write access

@github-actions github-actions bot removed the w-ci label Feb 19, 2024
@github-actions github-actions bot added the w-ci label Feb 19, 2024
@github-actions github-actions bot removed the w-ci label Feb 20, 2024
@SaulBuilds SaulBuilds marked this pull request as ready for review February 20, 2024 04:53
@SaulBuilds
Copy link
Author

I made some improvements to the code and the description and fixed the issues raised regarding the numbering of the proposal as well as the link to the ethereum-magicians forum.

let me know if anything else needs to be done to merge and continue the process. Thanks

@SaulBuilds SaulBuilds requested a review from abcoathup February 21, 2024 03:52
ERCS/erc-7625.md Outdated Show resolved Hide resolved
---
eip: 7625
title: Smart Contract Id's and Metadata Extension
description: Proposes an interface for contractId's and metadata at the smart contract level.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your description doesn't add any new information that wasn't in the title, plus all ERCs are proposing something, and most are describing interfaces. In short, you have a lot of fluff in your description.


## Abstract

This document outlines a proposed framework aimed at enhancing the Ethereum ecosystem's smart contract factories and the handling of Smart Contract Transfers and data. By adopting principles akin to those used for non-fungible tokens (NFTs), this framework intends to manage the lifecycle of smart contracts from their deployment to their integration into digital marketplaces. It introduces a method for tokenizing or ‘mobilizing’ smart contracts, associating them with unique identifiers and metadata. This initiative is designed to improve the discoverability, manageability, and interoperability of smart contracts, creating a a more secure ownership transfer and seamless dApp interactions. Ultimately, the framework seeks to further the tokenization of assets and build a more connected and efficient Ethereum ecosystem.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have a lot of fluff in here too. For example:

This document outlines a proposed framework aimed at enhancing the Ethereum ecosystem's smart contract [...]

None of these words explain anything about your proposal.

Your abstract should be brief but have enough detail for the reader to get a technical overview of how your proposal achieves its goals.

Comment on lines +21 to +41
Integrating the concept of smart contracts as mintable or registerable tokens with unique identifiers (contractIds) can greatly enhance the functionality and efficiency of various applications, from art drops to supply chain management and legal contracts. There are a broad set of novel use cases that would create the value to make the gas cost of contract creation reasonable on mainnet and more than feasible on layer2 infrastrucure where gas is cheaper per block.

Here’s a deeper look into these use cases and applications, the aim is to highlight the motivations for different devs to implement contractIds and the creation of both fungible and Non-fungible versions of smart contracts:

### Enhanced Functionality for Art Drops:
- **Unique Art Experiences**: Utilizing contractIds, artists can create unique, serialized art drops where each piece or collection is associated with a distinct contract. This not only authenticates the art but also enables special functionalities such as unlocking private content, redeemable experiences, or evolving art based on ownership history.
- **Community Engagement**: ContractIds can facilitate community-driven features, such as voting rights on future projects or decentralized curation of art exhibitions, by leveraging the non-fungible nature of the contracts to represent membership or participation rights.

### Ease of Tracking in Supply Chain:
- **Provenance and Authenticity**: Each item in the supply chain can be associated with a unique contractId, enabling transparent tracking of its origin, manufacturing process, and distribution journey. This not only assures consumers of the product's authenticity but also simplifies recall processes if needed.
- **Efficient Logistics**: By tokenizing assets as fungible or non-fungible tokens based on their nature, companies can automate and streamline logistics operations, from inventory management to shipping and receiving, leveraging smart contracts for real-time updates and actions.

### Pre-packaged Legal Contracts:
- **Automated Legal Agreements**: Legal documents such as leases, loan agreements, or incorporation papers can be standardized and sold as pre-packaged smart contracts. Each contractId represents a unique agreement, customizable through a set of parameters defined at the time of purchase or activation.
- **Seamless Integration into Business Processes**: Businesses can integrate these tokenized legal contracts into their operations, automating processes such as contract execution, compliance checks, and renewals. The fungible or non-fungible nature of these contracts, coupled with unique contractIds, ensures easy management and verification across stakeholders.

### General Implications:
- **Non-Fungible Smart Contracts for Unique Assets**: Utilizing NFTs for unique assets or rights (e.g., one-of-a-kind artworks, real estate, or intellectual property) provides a clear, immutable record of ownership and transaction history, enhancing trust and liquidity in these markets.
- **Fungible Smart Contracts for Divisible Assets**: Fungible tokens, managed through smart contracts with specific contractIds, are ideal for assets that require divisibility and uniformity, such as shares in a company, commodities, or digital currencies. This facilitates ease of trading and integration into financial systems.

By tying every asset, right, or agreement back to a unique or fungible smart contract managed through specific contractIds, the proposed framework significantly enhances the functionality, security, and efficiency of digital and physical asset management. This approach not only simplifies the tracking and transfer of assets across various domains but also opens up new avenues for innovation, customization, and engagement in digital marketplaces and beyond.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of these points apply equally to ERC-721 or ERC-20 tokens. Nothing in this section sells the idea of contract identifiers over already existing solutions.

Your motivation section should explain why someone should use this proposal, not the general idea of tokens.


This contract factory framework proposes a structured system for the tokenization and management of smart contracts within the Ethereum ecosystem. This system introduces a set of interfaces and functionalities designed to standardize the assignment of unique identifiers (contractIds) to smart contracts and to manage associated metadata, enabling enhanced interoperability, management, and discoverability of smart contracts.

###Interface
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
###Interface
### Interface

Contracts wishing to receive contractIds must implement the `ierc-7625Receiver` interface and handle incoming transfers in a manner that aligns with their specific application requirements.

```solidity
//SPDX-License-Identifier: MIT
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code within the document itself must be licensed as CC0-1.0. I allow MIT licensed code in the assets directory if need be.

```
## Rationale

The framework/interface provides a structured approach to smart contract tokenization and metadata management, aiming to enhance the Ethereum ecosystem's composability and interaction with the client side, creating more efficiency in the application layer. By facilitating the assignment of unique identifiers and linking contracts with metadata, the framework improves smart contracts' discoverability and interoperability. The specification of a metadata schema and URI offers a flexible means to enrich contract utility and integration capabilities.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all reads like Motivation. The Rationale section should be used to explain choices made within the document, while the Motivation section justifies the whole document. My favourite analogy is:

Motivation: We need to build a shed because...
Rationale: We chose to paint the shed red because...


## Backwards Compatibility

this framework introduces functionalities that complement the existing Ethereum ecosystem without necessitating modifications to current smart contract implementations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
this framework introduces functionalities that complement the existing Ethereum ecosystem without necessitating modifications to current smart contract implementations.
This framework introduces functionalities that complement the existing Ethereum ecosystem without necessitating modifications to current smart contract implementations.

The reference implementation provided demonstrate the application of tokenizing and giving identifiers that can be used in collections of assets, contract owners can participate in creating and managing tokenized smart contracts with unique identifiers and metadata.

```solidity
// SPDX-License-Identifier: MIT
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same license concern.


## Copyright

Copyright and related rights waived via CC0.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the exact waiver from the template.

thanks I can dig this lol.

Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com>
@eip-review-bot eip-review-bot changed the title Add ERC: Smart Contract Id's and Metadata Extension Add ERC: Smart Contract Identifiers and Metadata Extension May 24, 2024
@github-actions github-actions bot added the w-ci label May 24, 2024
Copy link

The commit 2a3e284 (as a parent of 3024604) contains errors.
Please inspect the Run Summary for details.

Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@SamWilsn
Copy link
Contributor

Stale?

@SamWilsn SamWilsn closed this Dec 12, 2024
@SaulBuilds
Copy link
Author

SaulBuilds commented Dec 13, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants