-
Notifications
You must be signed in to change notification settings - Fork 137
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
Multi Token Contract Standard #246
Comments
Wait I need this and would love for this to come along! |
Hey guys, could you provide updates on the status of the Multi Token Standard? This is a very much useful feature to have for the Near dev toolkit ! Thanks ! :) |
Hi, @zcstarr, @riqi, @jriemann, @marco-sundsk, I want to take over authorship and push to finalize this spec and its standard implementation. |
Hi @mikedotexe, @volovyks, There are a few bugs in this NEP that I found when reviewing it with my friend @uncle-T0ny. We'd like to fix them and propose an implementation to be included in NEAR standards. |
@alexastrum It would be awesome if you could sum up what work is left to be done. I see this draft implementation for near-sdk-rs: near/near-sdk-rs#776 |
@
@alexastrum and @uncle-T0ny, would be great if you would post what you found as issues to the PR for the spec. or drop it here to open the convo up. I'd be curious to know what you hit. and would probably be in line with the new review process @frol ? The original PR by @jriemann was done, but was unable to be merged in due to lack of time for anyone to actually review it. |
The list of the issues that I found:
and in the current implementation owner_id (an account that granted approval) we get from env::predecessor_account_id(), which means the method can't be viewable. As a solution, we should update the spec, Proposals:
Based on near/near-sdk-rs#776 we're working on an updated version of the We would like to finalize this reference implementation and help the near community to receive the new standard. As soon as possible |
@alexastrum I think you can go ahead and prepare a PR, and this way we will continue the evolution of the standard. The best way to collaborate is to provide context and suggest solutions.
@near/wg-contract-standards will do the final review, but before we get there, the hope is to see a healthy discussion driven by the stakeholders of this standard. |
This PR near/near-sdk-rs#950 is based on near/near-sdk-rs#776 The improvements list (by commits): We used near/near-sdk-rs#776 but in our forked near-sdk-rs because we needed to use the up-to-date codebase.
Could you please give us some advice on how to continue the MT finalization in the best way? |
As part of our bridge using IBC, we definitely need this standard to be merged. @frol |
(I am cross-posting this message for visibility from here: #245 (comment)) Hey folks, I want to give an update here as it seems that the work regarding this NEP is not visible in this PR. Thanks to @uncle-T0ny, there is a solid PR with the implementation in near-sdk-rs (near/near-sdk-rs#950). The implementation was partially reviewed and @uncle-T0ny took it offline to test this implementation in his own contract before proceeding with submitting a NEP extension with the identified shortcomings to the current MT standard. Feel free to review the implementation and test it out! |
Excellent, we will be checking this out next quarter as we would like to help get this going and finalised. Will be playing around with it then. |
Now, we have a revision of this standard. This time, we focus on the combination of FT and NFT in those core functions cause we noticed some misunderstandings on FT and NFT workflow on near network in those interfaces. Beside that, we also make a supplement to the nep-0245.md to include all the extensions while leaving the one in specs untouched as a comparision base point, so that you could have a clear view about what have been changed in this revision.
Now, the plan is to have an agreement on nep-0245.md first, then the corresponding fix would be applied to those in specs. And the standard code implementation would be the last. |
Summary
A standard interface for a multi token standard that supports fungible, semi-fungible, and tokens of any type, allowing for ownership, transfer, and batch transfer of tokens generally regardless of specific type. This standard aims to make it possible to represent these multi tokens in a way that allows these tokens to be represented across chains.
Motivation
Having a single contract represent both NFTs and FTs can greatly improve efficiency as demonstrated by Enjin Coin. The ability to make batch requests with multiple asset classes can reduce a many transactions, transaction to a single transaction to trade around both NFTs and FTs that are a part of same token contract. Moreover, this flexibility has led to building proper infrastructure for ecosystems, that often have to issue many tokens under management such as games.
Finally on other chains, such as Ethereum it would be nice to be able to bridge a token contract from near to ETH or to other chains. Having a multi token standard that can represent many different classes of tokens is highly desirable
Background
Current NEP PR:
Prior art:
EIP-1155 : ERC: Multi Token Standard ethereum/EIPs#1155
This NEP derives some examples and format from: Fungible Token standard #21
Example of an NFT Series: https://github.com/near-apps/gnr8
Things from the NFT Discussions: Improved NFT Standard #171
Things from the NFT Discussions: https://gov.near.org/t/nft-standard-discussion/853
Discussions out of band:
WIP/impl:
Core Trait
Receiver Trait
Notes
Resolver Trait
Notes
Storage Management Trait
Notes
This is semi necessary for ft token types to be able to refund users for storage of many different token types like gold/silver... this might be slightly out of scope
Metadata Trait
PR #245
The text was updated successfully, but these errors were encountered: