Hi all I wanted to start a conversation and gather interest for developing a multi-token standard contract. This would be very similar to the NFT and FT standards that have been developed. The principle motivation would be to be able to give wallet devs, and smart contract developers a standard to build contracts that support different asset classes and that can be batch swapped. This would have a similar impact to erc-1155 and the Ethereum ecosystem.
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 transaciton to a single transaction to trade around both NFTs and FTs that are a part of same token contract.
We already have a standard for NFTs and FTs and have tackled the perhaps trickest issue which is account storage management. This seems like a nice next logical step towards building a great ecosystem that supports the many uses cases of multi-token smart contracts.
Taking a nod from @mattlockyear I’ll lay out the same sort of ground logic that was involved in the NFT Standard discussions.
Soft consensus here on the interface and high level architecture, then a migration to Github for impls.
Rules of Engagement(shamelessly cribbed from the NFT Standard discussion):
- Bring all ideas to the table
- Look at existing patterns and solutions
- choose/generate a solution that satisifies the Near ecosystem needs
Here’s what we don’t want
- promoting a particular approach
- not listening to others
- trying to “own” the standard
- starting my own standard
EIP-1155 : ERC: Multi Token Standard · Issue #1155 · ethereum/EIPs · GitHub
Example of an NFT Series : GitHub - near-apps/gnr8
Things from the NFT Discussions: Improved NFT Standard · Discussion #171 · near/NEPs · GitHub
Things from the NFT Discussions: NFT Standard Discussion
Standard interface for a MultiToken Standard
Deal with storage should we follow the same pattern in NFT and FT standards?
Keep the interface the same or at least 1-1 corresponding with erc-1155 for bridging ?
Suggested architecture and reference implementation that tackles how to:
deal with token type assets FT, NFT, … ?
deal with unique identifiers for token ids across classes/namespacing ?
deal with wallets
These are just a few questions to get the mind going, feel free to comment and drop thoughts and concerns, or things you’d like to see.