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

Eip micropayments standard for nfts and multi tokens #4393

Conversation

julesl23
Copy link
Contributor

Hi,

Please find my new submission for an EIP. My email address is [email protected] if you wish to contact me via email.

Kind regards,
Jules Lai

@eth-bot eth-bot enabled auto-merge (squash) October 25, 2021 22:02
@eth-bot
Copy link
Collaborator

eth-bot commented Oct 25, 2021

All tests passed; auto-merging...

(pass) EIPS/eip-micropayments_standard_for_nfts_and_multi_tokens.md

  • file EIPS/eip-micropayments_standard_for_nfts_and_multi_tokens.md is not a valid filename, but this error has been ignored due to editor approvals

auto-merge was automatically disabled October 25, 2021 22:59

Head branch was pushed to by a user without write access

@eth-bot eth-bot enabled auto-merge (squash) October 25, 2021 23:00
auto-merge was automatically disabled October 27, 2021 01:14

Head branch was pushed to by a user without write access

@eth-bot eth-bot enabled auto-merge (squash) October 27, 2021 01:14
@poojaranjan
Copy link
Contributor

  • Please add a one-line description of the EIP in the "description header" field and remove the "Simple Summary" section.
  • Add "Copyright"
  • "References" isn't a standard field.

EIP# will be provided by an EIP editor after review.

auto-merge was automatically disabled October 29, 2021 17:10

Head branch was pushed to by a user without write access

@eth-bot eth-bot enabled auto-merge (squash) October 29, 2021 17:10
@poojaranjan
Copy link
Contributor

@julesl23
A "New topic" can be created at Fellowship of Ethereum Magicians (FEM) to discuss this proposal and collect community feedback.
You may also add the FEM link to the "discussion to" section in the proposal.

auto-merge was automatically disabled October 29, 2021 18:25

Head branch was pushed to by a user without write access

@eth-bot eth-bot enabled auto-merge (squash) October 29, 2021 18:26
@julesl23
Copy link
Contributor Author

@poojaranjan
Thanks, I added the FEM link to the proposal.

@poojaranjan
Copy link
Contributor

@julesl23
Thanks for making the changes.
It will be reviewed by EIP editors and will be merged with the main repo if approved.

@alita-moore
I don't see any editor being pinged in this pull request. Can you check the bot for any possible bug?

@alita-moore
Copy link
Contributor

@poojaranjan this is intended behavior when a file is not named correctly. What behavior would you prefer? Also please open a issue in eth-bot 😊

@julesl23
Copy link
Contributor Author

@poojaranjan this is intended behavior when a file is not named correctly. What behavior would you prefer? Also please open a issue in eth-bot 😊

@alita-moore
Opened an issue for the EIP file name problem. Not sure if I opened it correctly though

@@ -0,0 +1,310 @@
---
eip: <to be assigned>
Copy link
Member

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: 4393

eip: <to be assigned>
title: Micropayments Standard for NFTs and Multi Tokens
description: A standard interface for tip tokens that allows tipping to holders of NFTs and multi tokens
author: Jules Lai (@julesl23), aka Julian Bushell
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
author: Jules Lai (@julesl23), aka Julian Bushell
author: Jules Lai (@julesl23)

Copy link
Contributor

Choose a reason for hiding this comment

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

Alternatively you can do Julian Bushell (@jules123). It is the author's choice what name they wish to go by.

type: Standards Track
category: ERC
created: 2021-10-24
requires: 721, 1155, 165
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
requires: 721, 1155, 165
requires: 165, 721, 1155


## Abstract

For the purpose of this proposal, a micropayment is termed as a financial transaction that involves usually a small sum of money, called "tips", that are sent for specific [ERC-721](https://eips.ethereum.org/EIPS/eip-721) NFTs and [ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) multi tokens as rewards to their holders. A holder (also referred to as controller) is used here as a more generic term for owner in a semantic sense, as NFTs may represent non-digital assets, such as services etc.
Copy link
Member

Choose a reason for hiding this comment

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

Please use relative links of the form [EIP-X](./eip-X.md)


For the purpose of this proposal, a micropayment is termed as a financial transaction that involves usually a small sum of money, called "tips", that are sent for specific [ERC-721](https://eips.ethereum.org/EIPS/eip-721) NFTs and [ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) multi tokens as rewards to their holders. A holder (also referred to as controller) is used here as a more generic term for owner in a semantic sense, as NFTs may represent non-digital assets, such as services etc.

This standard proposal outlines a generalised way to allow tipping via implementation of an ITipToken interface. The interface is intentionally kept to a minimum in order to allow for maximum use cases.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This standard proposal outlines a generalised way to allow tipping via implementation of an ITipToken interface. The interface is intentionally kept to a minimum in order to allow for maximum use cases.
This standard proposal outlines a generalised way to allow tipping via implementation of an `ITipToken` interface. The interface is intentionally kept to a minimum in order to allow for maximum use cases.


## Motivation

A cheap way to send tips to any type of NFT or multi token. This can be achieved by gas optimising the tip token contract and sending the tips in batches using the tipBatch function from the interface.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
A cheap way to send tips to any type of NFT or multi token. This can be achieved by gas optimising the tip token contract and sending the tips in batches using the tipBatch function from the interface.
A cheap way to send tips to any type of NFT or multi token. This can be achieved by gas optimising the tip token contract and sending the tips in batches using the `tipBatch` function from the interface.

Please wrap code text in backticks.


### Tip Token transfer and value calculations

Tip token values are exchanged with ERC20 deposits and vice-versa. It is left to the tip token implementer to decide on the price of a tip token and hence how much tip to mint in exchange for the ERC20 deposited.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Tip token values are exchanged with ERC20 deposits and vice-versa. It is left to the tip token implementer to decide on the price of a tip token and hence how much tip to mint in exchange for the ERC20 deposited.
Tip token values are exchanged with ERC-20 deposits and vice-versa. It is left to the tip token implementer to decide on the price of a tip token and hence how much tip to mint in exchange for the ERC-20 deposited.

Copy link
Member

Choose a reason for hiding this comment

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

Please update all occurrences of unhyphenated ERC/EIPs.

@@ -0,0 +1,2 @@
EIP proposal "Micropayments Standard for NFTs and Multi Tokens" example implementation.
Copy link
Member

Choose a reason for hiding this comment

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

Please remove this file.

@@ -0,0 +1,2 @@
EIP proposal "Micropayments Standard for NFTs and Multi Tokens" example implementation.
Copy link
Member

Choose a reason for hiding this comment

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

Please remove this file.

auto-merge was automatically disabled October 30, 2021 08:57

Head branch was pushed to by a user without write access

@eth-bot eth-bot enabled auto-merge (squash) October 30, 2021 08:57
/// @author Jules Lai
/// @notice An implementation for a standard interface for tip tokens that allows tipping to holders of NFTs and multi tokens
/// @dev Allows tipping for ERC-721 and ERC-1155 multi tokens. Their holders receive the rewards of ERC20 compatible deposits
contract TipToken is ITipToken, ERC20, Ownable {
Copy link
Member

Choose a reason for hiding this comment

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

This is an implementation. Standards should not provide implementations, but interfaces.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is an implementation. Standards should not provide implementations, but interfaces.

I removed the implementation and added in 'Reference Implementation' section of proposal a link to my public repo for example implementation and tests

Comment on lines 306 to 309
## Reference Implementation

A [reference/example implementation and tests](https://github.com/julesl23/eip_msnmt) in the GitHub repository that can use be used to assist in implementing this specification.

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
## Reference Implementation
A [reference/example implementation and tests](https://github.com/julesl23/eip_msnmt) in the GitHub repository that can use be used to assist in implementing this specification.

External links should not be included in EIPs. Either include an inline reference implementation, or files in ../assets/eip-4393/x.sol. Alternatively, this is an optional section and can simply be left out if that makes the most sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

External links should not be included in EIPs. Either include an inline reference implementation, or files in ../assets/eip-4393/x.sol. Alternatively, this is an optional section and can simply be left out if that makes the most sense.

All sorted in the latest commit. Let me know if there is anything else I need to do.

…xample implementation to help clarify Specification section in response to @MicahZoltu comment.
@alita-moore alita-moore reopened this Nov 22, 2021
@julesl23
Copy link
Contributor Author

Hi, issue #4398 has been closed. Am I now waiting on editor approval for merge to move the PR to draft phase? Or is there anything else for me to do at this stage?

@alita-moore alita-moore reopened this Nov 30, 2021
@alita-moore
Copy link
Contributor

@julesl23 you'll need to assign the eip an eip number which will be provided by the editors

@alita-moore
Copy link
Contributor

A critical exception has occurred (cc @alita-moore):
Message: not found

😑
I'm not near my computer for the next few days so I'll address this then.

@MicahZoltu
Copy link
Contributor

Blocked by CI:

./EIPS/eip-micropayments_standard_for_nfts_and_multi_tokens.md:105: everytime ==> every time
./EIPS/eip-micropayments_standard_for_nfts_and_multi_tokens.md:218: idential ==> identical

Once that is resolved you'll need to wait for an editor to approve it (lightclient or axic most likely).


## Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Implied via EIP-1

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Smart contracts implementing the ERC-xxxx standard MUST implement all of the functions in the ERC-xxxx interface. MUST also emit the events specified in the interface so that a complete state of the tip token contract can be derived from the events emitted alone.
Copy link
Member

Choose a reason for hiding this comment

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

Need to replace EIP-xxxx -- usually prefer to not refer to the EIP itself by its own number. Instead say "this EIP" or a something similar.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@julesl23
Copy link
Contributor Author

Hi, please let me know if there is anything else before approval/review. Thanks

@alita-moore
Copy link
Contributor

"pull request not in correct state to enable automerge" from enable-auto-merge

@alita-moore alita-moore reopened this Dec 21, 2021
@eth-bot eth-bot enabled auto-merge (squash) December 21, 2021 17:23
@eth-bot eth-bot merged commit 7c53a6b into ethereum:master Dec 21, 2021
PhABC pushed a commit to PhABC/EIPs that referenced this pull request Jan 25, 2022
* New submission for EIP proposal Micropayments Standard for NFTs and Multi Tokens

* Added github username to author

* Corrected EIP md file name to eip-###.md

* Tidied up; removed the ignore files

* Made changes to conform to the eip-template.md

* Added FEM link to the discussion-to section in the proposal

* Made the changes suggested by @lightclient

* Added support for shared holders of multi tokens

* In assets folder, changed to include only .sol files

* Added text to proposal to explain how tips help to create a level playing field

* Removed implementation as requested by @axic

* Removed optional Reference Implementation section and added snippet example implementation to help clarify Specification section in response to @MicahZoltu comment.

* Corrected couple of typos as pointed out by @MicahZoltu

* Made the changes requested by @lightclient, such as a more concise abstract
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants