A recap of the 4th Composables Call: announcements, additions and changes to ERC-998, Ethereum Magicians Berlin, DappCon Berlin, Nifty Hong Kong, Composables-998 (MIT) license, Composable DApps, what next for the ERC-998 standard?
Background and Recap (skip if you’re familiar with ERC-998):
Introducing Crypto Composables
Crypto Composables ERC-998 Update 😊
Crypto Composables ERC-998 Update #2
Crypto Composables ERC-998 — Update 3: First Contact
Crypto Composables ERC-998 — Update 4: “The Namening”
There have been some exciting and significant changes to ERC-998 since the last update from Matt Lockyer. The last month also saw a number of incredible international conferences like Ethereum Magicians Berlin, DappCon Berlin, and Nifty Hong Kong. The NFT and composables community is positive and alive with optimism as DApp use cases are being created. The first DApp implementing ERC-998, mokens.io, launched on the mainnet. DApps are beginning to experiment with ERC-998 for use cases in gaming and high fashion leasing. With each new use case comes new questions and opportunities to strengthen the ERC-998 code. Questions such as gas costs for composing and decomposing, multi-token minting, and air-drops were all areas that were mentioned for further exploration.
Attendees of Call #4:
- Alex | OpenSea
- Hsummers (Haley)
- Mattlock (Matt)
- Mudgen (Nick)
- Nathalie-ckc (Nathalie)
- PhABC (Philip)
- Trung | Axie Infinity (Trung)
The 4th composables call started with an exciting announcement from Matt Lockyer: ERC-998 has been implemented on the mainnet with mokens.io! Nick Mudge’s incredible work made for the DApp’s successful launch on August 4th, 2018.
Matt Lockyer had another announcement, he will be involved as a champion to get funding for EIPs like this and will move to more back channeling so those from our community take the forefront. As such, Matt introduced Haley Summers as the moderator for the remainder of the call. Haley has been blogging and community building for mokens.io.
Additions and Changes to the ERC-998 Standard
The biggest change to ERC-998 recently was the addition of the interface “ERC998ERC20BottomUp”. This interface extends the ERC-20 and ERC-223 standards to enable ERC-20 tokens to be owned by ERC721 tokens. This addition was made by Jordan Schalm.
Other changes to the ERC-998 Standard:
- The “_fromTokenId” parameter was added to transferChild/safeTransferChild functions.
- The section “Explicit Transfer Parameters” was added to the standard. This section explains why from/to parameters are used in every transfer function.
- The section “transferFrom/safeTransferFrom Functions Do Not Transfer Tokens Owned By Tokens” was added to the standard.
- The authentication part of the standard was improved by removing the authentication of “immediateOwners”, and only authenticating “rootOwners”.
- The functions “ownerOfChild” and “tokenOwnerOf” now return the ERC998 magic value. This was done to make traversing a tree of composables more efficient.
Matt was in Berlin for Fellowship of Ethereum Magicians Berlin, where he was able to meet folks from Gollum, Status, and Nick Dodson from ENF. It was noted that the current process for doing token standards is not well documented. There is a need for better documentation so a wider non-technical community can understand that an ERC is not a standard yet. It was also noted that funding for EIPs bounties and for security would incentivise the community to get more involved. Projects could pool funds and work on something together. There is an expressed desire for teams to collaborate on token standards.
Rings (Scrolls on Github) were also discussed at length. You can sign up at ethereum-magicians.org and participate in the discussions (no special invite required). There can be some overlap between the rings:
- Wallet rings for better UI/UX to help people manage their assets.
- Token rings for those working on token standards was discussed with 0x and John Choy from Ethereum Foundation about how something DAO-like could be set up to fund this work.
- Ethereum Signal ring to signal good projects and education in this space.
Matt was also able attend DAppcon in Berlin. Scaling, plasma, and sharding were all hot topics of conversation. We are looking forward to watching “Future of blockchain, what could go wrong?” from DAppcon when the video is available.
This event was put on by Kinetic Capital & Decentraland. Word on the streat is that there was a lot of great hacking! It was noted that the NFT space is not growing as fast as people like. Partially due to the fact that there is still a lot of difficulty for people to get into crypto.
Trung’s teammates from Axie Infinity gave presentation talking about FT & NFT use in the space. They have had some talks with people in the NFT space and people are moving on from just representing things with NFTs to more interesting applications. For example: NFT progression (increasing NFTs’ value over time), composables (E.g. leveling up), and also atomic exchanges.
For more on Nifty Hong Kong, check out Brian Flynn covered in last week’s edition of NFTy news.
Composables-998 (MIT) license
https://github.com/mattlockyer/composables-998 now has a license (MIT), to help both users and contributors. Having an open source license is important because it lets everyone know how they can use the code in the Github repo and protects contributors to the code. So, if those unknowns were holding you back, now you can have more peace of mind using the code in your project or submitting a pull request!
The MIT license is a very common simple open source permissive license. The conditions only require preserving copyright and license notices. Users are made aware that the software is provided “as is” and code authors are protected from liability. Github gives a nice summary of what MIT license is at the top of this page https://github.com/mattlockyer/composables-998/blob/master/LICENSE.txt
Mokens.io — This DApp launched to the Ethereum Mainnet over the weekend. The Mokens contract was designed to help people create useful and desirable crypto-collectibles. The mokens.io web interface simplifies the process for making non-fungible tokens (NFTs) and composable NFTs (cNFTs). Similar to how Cryptokitties was released much earlier before ERC-721 was finalized, mokens.io promotes a working implementation of the ERC-998 spec.
CryptoRome — This DApp is using ERC-998 for composing lands that people own in CryptoRome (using the bottom-up composable approach). Larger land units (ex. Cities) are composed from smaller land units (ex. Towns and Villages), all of which are ERC-721 tokens. Composed land units can be transferred or sold to other players as-is, or decomposed back to the underlying land assets by the player.
“We are now realizing the potential of the ERC-998 approach. Using the bottom-up approach for our land gives us future flexibility we didn’t have before (we already are have some interesting ideas).” @Droopy | CryptoRome
Mintable.app — This Dapp, on the Rinkeby Testnet, allows for you to create your own customized ERC-721 tokens. This DApp is a general manager for ERC-721 like My Ether Wallet. There are new games coming out all the time, but currently no general area to browse all these assets to sell and trade them. Mintable strives to solve this problem. A powerful feature down the line would have a user interface that can display the tree structure for a composables. Currently this is just a MVP and testing for the smart contracts, with the real front-end product being worked on currently and coming soon.
Insure-Raxx Tokens — This development phase DApp is implementing ERC-998 for assembling fashion looks that will allow for the renting and trading of expensive high end collectable sneakers through a curated registry. This will allow kick collectors to keep a record of authenticity and appraisal value to be insured. Insure-Raxx Tokens hold both the ball of insurance and the certificate of authenticity with the reputation IDs of their high end sneaker collections.
Other cool mentions from Matt:
- User feeds: A social layer on top of digital scarcity that is needed to prove before speaking as the social avatar. Hard core decentralists might question trusting user feeds. Patryk from Token Talk has written about it.
- 360 degree VR video of a guy explaining NFTs included ERC-998 at a Meetup type event! Talked about a house owning appliances.
- Ariani — for luxury goods
- Missingno. Post from Centrifuge
We welcome folks to write about what’s going on in composables & invite people to NFTy Magicians! Let us know what you are working on! We’d love to hear from you!
Q&A: What’s Next for the ERC-998 Standard?
Question: @Jwaup,“What needs to be done to get ERC-998 to last call phase?”
Nick: ERC-998 could still change at this stage. Currently, feedback, general agreement, greater adoption for what has been proposed is needed. Nick recommends that people try ERC-998 out as it is, even though it might change (try on test net), so that we can know how it’s going.
Matt: mokens.io, like Cryptokitties, was released much earlier before ERC-721 was finalized. It’s success was communicated through blogging on Medium. Another project may then show other ways of doing things, based on use cases we haven’t considered yet
Question: @Trung,“Gas limit for ERC-998 contract with libraries?
Nick: I ran into that with Mokens: ERC-721 has functions, ERC-998 has functions, and you have your own custom functions. Then you get a big contract (over 8M gas block size limit), or over the contract size limit, about 24KB. The solution was to split Mokens into 2 contracts: One main contract implements some functions and uses delegate call in Solidity to delegate some calls to the second contract. It is working well and the source code for Mokens is online if you want to check it out.
Question: @Trung,”If want to interact with ERC-998, could be costly to transfer tokens often. May have many interactions with composable.”
Matt: Think it’s about gas cost to manage parent-child relationships (composing/decomposing).
Nick: In tests, it hasn’t been too much to transfer 1 token into another token. Maybe if you had a composable with 200 children, then that could be costly to decompose. Depends on how many you want to take out. Enumeration is optional, so could get rid of that to reduce some gas cost
Question: @PhABC (Philip): If you’re trying to bundle things that will be bundled for a single transfer, then might as well transfer independently?
Nick: Agree, for that case. If you will do multiple transfers for a composable, then that’s where you’ll save gas with a composable. Also, having the container might work/not work for your application.
Question: @Spaded: “Obfuscating code or bulk airdrop tokens. Is it feasible to put in bulk (e.g. 1000 assets in 1 container) then give container a 1 time command to execute an air drop?”
Nick: Agree, there are more things that can be unlocked, but not sure of all the possibilities. Hope people will blog about it. Something like that sounds possible.
Matt: Check out @rickmoo, who did the Merkle airdrop. Batch operations are cool to check out.