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 EIP: Non-Sellable Tokens #6774

Closed
wants to merge 10 commits into from

Conversation

RaphaelHardFork
Copy link

An extension of EIP-721 to replace transfers methods by a barter mecanism to prevent speculation and create non-sellable token (NST).

@eth-bot eth-bot changed the title Add EIP: non-sellable tokens Add EIP: Non-Sellable Tokens Mar 24, 2023
@eth-bot
Copy link
Collaborator

eth-bot commented Mar 24, 2023

🛑 eip-review-bot failed for an unknown reason. Please see logs for more details, and report this issue at the eip-review-bot repository.

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Mar 24, 2023
@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-erc w-ci Waiting on CI to pass labels Mar 24, 2023
@@ -0,0 +1,262 @@
---
eip: <to be assigned>
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
eip: <to be assigned>
eip: 6774

ERC numbers are generally the PR number

---
eip: <to be assigned>
title: Non-Sellable Tokens
description: Prevent speculation on NFTs by replacing transfers by a barter mecanism
Copy link
Contributor

Choose a reason for hiding this comment

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

typo

Suggested change
description: Prevent speculation on NFTs by replacing transfers by a barter mecanism
description: Prevent speculation on NFTs by replacing transfers by a barter mechanism

@RaphaelHardFork RaphaelHardFork changed the title Add EIP: Non-Sellable Tokens Add EIP-6774: Non-Sellable Tokens Mar 25, 2023
@eth-bot eth-bot changed the title Add EIP-6774: Non-Sellable Tokens Add EIP: Non-Sellable Tokens Mar 25, 2023
@github-actions github-actions bot added w-ci Waiting on CI to pass and removed w-ci Waiting on CI to pass labels Mar 25, 2023
@github-actions
Copy link

The commit 8bac7d6 (as a parent of 3bf2e80) contains errors.
Please inspect the Run Summary for details.

EIPS/eip-6774.md Outdated Show resolved Hide resolved
EIPS/eip-6774.md Outdated Show resolved Hide resolved
EIPS/eip-6774.md Outdated Show resolved Hide resolved
RaphaelHardFork and others added 3 commits April 17, 2023 16:03
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>

## Abstract

This EIP is an extension of [ERC-721](./eip-721.md) to create non-sellable tokens (NST). It proposes a strong restriction on transfers in order to prevent speculation on token price while maintaining the possibility of transfers, transfers are performed in a barter way (send to receive or receive to send) in an ecosystem controlled by the creator.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd appreciate a tiny bit of technical detail about how this proposal prevents selling.


## Motivation

Interest for soulbound tokens (SBT) in the Ethereum community still growing since the V. Buterin idea publication (Soulbound, 2022-01-26), highlighting the non-transferability (non-)features to prevent, _in fine_, speculation of the token. While a lot of propositions emerged for implementation of SBT, the non-transferability is often too restrictive and requires a certain level of centralization, especially when users want to transfer a SBT between two owned accounts. Thus SBTs are way more fitted for account-bounded properties such as reputation, voting rights, privileges, ...
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove external links (yes, references by title and date are still external references 😉)


## Motivation

Interest for soulbound tokens (SBT) in the Ethereum community still growing since the V. Buterin idea publication (Soulbound, 2022-01-26), highlighting the non-transferability (non-)features to prevent, _in fine_, speculation of the token. While a lot of propositions emerged for implementation of SBT, the non-transferability is often too restrictive and requires a certain level of centralization, especially when users want to transfer a SBT between two owned accounts. Thus SBTs are way more fitted for account-bounded properties such as reputation, voting rights, privileges, ...
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
Interest for soulbound tokens (SBT) in the Ethereum community still growing since the V. Buterin idea publication (Soulbound, 2022-01-26), highlighting the non-transferability (non-)features to prevent, _in fine_, speculation of the token. While a lot of propositions emerged for implementation of SBT, the non-transferability is often too restrictive and requires a certain level of centralization, especially when users want to transfer a SBT between two owned accounts. Thus SBTs are way more fitted for account-bounded properties such as reputation, voting rights, privileges, ...
Interest for soulbound tokens (SBT) in the Ethereum community still growing since the V. Buterin idea publication (Soulbound, 2022-01-26), highlighting the non-transferability (non-)features to prevent, _in fine_, speculation of the token. While a lot of propositions emerged for implementation of SBT, the non-transferability is often too restrictive and requires a certain level of centralization, especially when users want to transfer a SBT between two owned accounts. Thus SBTs are way more fitted for account-bounded properties such as reputation, voting rights, and privileges.


Interest for soulbound tokens (SBT) in the Ethereum community still growing since the V. Buterin idea publication (Soulbound, 2022-01-26), highlighting the non-transferability (non-)features to prevent, _in fine_, speculation of the token. While a lot of propositions emerged for implementation of SBT, the non-transferability is often too restrictive and requires a certain level of centralization, especially when users want to transfer a SBT between two owned accounts. Thus SBTs are way more fitted for account-bounded properties such as reputation, voting rights, privileges, ...

In case of transferable items which cannot be sellable, SBTs can fit, but they require a strong level of centralization as transfer are restricted by the token creator (or the community in case of DAO managed SBT). Here some examples of possibles NSTs:
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
In case of transferable items which cannot be sellable, SBTs can fit, but they require a strong level of centralization as transfer are restricted by the token creator (or the community in case of DAO managed SBT). Here some examples of possibles NSTs:
In case of transferable items which cannot be sold, SBTs can fit, but they require a strong level of centralization as transfer are restricted by the token creator (or the community in case of DAO managed SBT). Here some examples of possible NSTs:

1. UserA signs a message taking up the terms of the barter
2. UserB accepts and concludes the barter by calling the `barter` function

```mermaid
Copy link
Contributor

Choose a reason for hiding this comment

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

I can't promise this will render into anything useful. If it doesn't, please replace it with a rendered diagram (preferably SVG.)


The value equivalence is so maintained by tokens creators as a whitelist, keeping these authorisations at the contract level is important and would help create a network of barterable NSTs.

Based on value equivalence we leverage the game theory to enforce the non-sellability instead of stronger restrictions or centralization which would lead to higher code complexity and poor interoperability. Indeed, the strong counterpart at the transfer made NSTs highly illiquid to be subject to a sale on a marketplace or by OTC agreement.
Copy link
Contributor

Choose a reason for hiding this comment

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

Abbreviations should be expanded the first time they are used.


## Reference Implementation

[Implementations examples](../assets/eip-6774/) have been designed for this proposal.
Copy link
Contributor

Choose a reason for hiding this comment

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

Unfortunately our renderer doesn't like linking to directories, so you'll need to link to a specific file. One option that works fairly well for big reference implementations is creating a README.md and linking to that.


## Tests

Tests are written using [Foundry](https://book.getfoundry.sh/getting-started/installation), here is the list of tests:
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove external links.

@@ -0,0 +1,391 @@
// SPDX-License-Identifier: UNLICENSED
Copy link
Contributor

Choose a reason for hiding this comment

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

Please replace with an open source license, preferably CC0-1.0

@@ -0,0 +1,172 @@
// SPDX-License-Identifier: UNLICENSED
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here.

@github-actions
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.

@github-actions github-actions bot added the w-stale Waiting on activity label Sep 14, 2023
@SamWilsn
Copy link
Contributor

I am closing this pull request because we are in the process of separating EIPs and ERCs into distinct repositories. Unfortunately, as far as we are aware, GitHub does not provide any tools to ease this migration, so every pull request will need to be re-opened manually.

As this is a PR to create / modify an ERC, I will kindly ask you to redirect this to the new repository at ethereum/ERCs. We have prepared a guide to help with the process.

If there is relevant history here, please link to this PR from the new pull request.

On behalf of the EIP Editors, I apologize for this inconvenience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-erc w-stale Waiting on activity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants