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

RFC: Coin vs Token #1623

Closed
leohhhn opened this issue Feb 2, 2024 · 5 comments · Fixed by #1853
Closed

RFC: Coin vs Token #1623

leohhhn opened this issue Feb 2, 2024 · 5 comments · Fixed by #1853
Assignees

Comments

@leohhhn
Copy link
Contributor

leohhhn commented Feb 2, 2024

Description

I am bringing this up after a conversation with @moul, discussing Effective Gno #1000. Essentially, the issue is how we refer and differentiate the following concepts: tokens, created by following the GRC20 (ERC20) spec, and tokens, issued by the native banker, which are (going to be) IBC-transferrable.

I propose that we call banker-issued ones (native) Coins, and GRC20/721 Tokens. Why?

  • We use std.Coin & std.Coins throughout the codebase,
  • Coins are unique by two factors: they can be issued by the banker, and can be IBC transferrable,
  • Tokens are a well-known term, and people usually associate them with the GRC20/721 standard (ie (non) fungible tokens).

If we don't do this, and still refer to Coins as tokens, we will end up with a weird & possibly confusing situation:

  • Native tokens = coins (in and outside of code).
  • (non-native/normal/...) Tokens = GRC20/721s.

The opposing point for this proposal is the fact that the Cosmos ecosystem uses the term native tokens, for ATOM, and other chains, ie like here. The way to match Cosmos would be to change Coins to Tokens in code & in the current docs.

What do you think?

@jefft0
Copy link
Contributor

jefft0 commented Feb 2, 2024

The "T" in "GNOT" means token, right? Is this also possibly confusing?

@leohhhn leohhhn self-assigned this Feb 2, 2024
@irreverentsimplicity
Copy link
Contributor

Just some thoughts: personally, when the word "native" is used, being it with "coins" or "tokens", I always understand that this is about the "layer 0". "Coins" vs "tokens", in general, doesn't seem much different to me, but a convention with "native coins" and "tokens" it does. The key part / word here is "native".

@moul
Copy link
Member

moul commented Feb 8, 2024

We'll merge the current effective gno (#1000) like this, and take time to decide, and then open a PR with the final decision.

@thehowl
Copy link
Member

thehowl commented Feb 8, 2024

I don't have a strong preference here; personally I see that the word "token" could easily encapsulate both, especially that with the "wrapping" system the two are essentially interchangeable, and then use "GRC20" and "Native" to specify them where needed.

@leohhhn
Copy link
Contributor Author

leohhhn commented Feb 27, 2024

Talking with @jaekwon, it seems that making the naming distinction between Coin & tokens is a good choice. The docs already reflect this, and I can make a PR to edit this in Effective Gno.

cc @moul

zivkovicmilos pushed a commit that referenced this issue Mar 29, 2024
<!-- please provide a detailed description of the changes made in this
pull request. -->

Following [this
discussion](#1623 (comment)),
this PR changes the reference from native tokens to coins in Effective
Gno.

Closes: #1623 

<details><summary>Contributors' checklist...</summary>

- [ ] Added new tests, or not needed, or not feasible
- [ ] Provided an example (e.g. screenshot) to aid review or the PR is
self-explanatory
- [ ] Updated the official documentation or not needed
- [ ] No breaking changes were made, or a `BREAKING CHANGE: xxx` message
was included in the description
- [ ] Added references to related issues and PRs
- [ ] Provided any useful hints for running manual tests
- [ ] Added new benchmarks to [generated
graphs](https://gnoland.github.io/benchmarks), if any. More info
[here](https://github.com/gnolang/gno/blob/master/.benchmarks/README.md).
</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants