Mallows started out as a project to defy the norms of traditional profile picture NFTs that were exciting the crypto space. We saw that at their root, NFTs are ways to own and store data. And data is more than cool jpegs. It's audio, video, contracts, bytecode, programs, applications and more. So we were amongst the first in the space to put forth the concept of "bring your own app/algorithm" or "byoa" for short.
With byoa you can own an immutable application secured both on the ethereum blockchain and secured by the custody of your wallet, which you can then trust to bring with you anywhere you go within the "metaverse" that is wallet compatible. We explored this technology and future in depth in our byoa whitepaper.
In the original design of byoa seen above there was a smart contract registry that lived on L1 and allowed developers to register byoa applications which could then be minted by users as valid ERC-721 nfts and stored in the users wallets upon minting. The byoa sdk could then be embedded on a website and allow a user to connect their wallet and have the byoa application "installed" into the page - basically let it run. This worked, and it's very cool, and very extensible. However, there was one small problem that eventually became a big problem - gas fees.
As the popularity of L1 ethereum grew so did the price of ethereum and so did the gas fees. The combination of these two things made it very expensive to either register your own byoa application as a developer, or as user made it ever expensive to mint/install a byoa application into your wallet. It could easily be a few hundred US dollars to register an app and $100 USD to mint/install an app. While we had a technical solution and innovation with Mallows and byoa, we had a pricing and economics problem which leads to an adoption problem.
Enter Layer 2 and Starkware
We decided that the best approach for Mallows and byoa would be to re-architect around a Layer 2 scalability system. We would split the concerns into 3 primary areas: Security, Configuration, and Access.
Layer 1 Ethereum would be the Security layer that developers would still register immutable applications on. While there is still a cost involved, we believe that this cost is necessary for ensuring quality within the ecosystem. Public goods funding could also support developers where the cost was prohibitive but the application worthwhile. This high expense of L1 here is actually a benefit to the byoa ecosystem in helping to ensure (but not guarantee) quality apps are available.
Layer 2 StarkNet (via Starkware) would be where users would largely live as a Configuration layer. You would choose a registered application you wanted to install, and would install it into your StarkNet compatible wallet and all associated configuration with it. The cost becomes orders of magnitude cheaper and there is no longer a friction to adoption. And, because configuration is cheap as well, it allows apps to be developed to be more configurable by the users as opposed to one size fits all.
Lastly, the Access layer would be powered by byoa sdk and other open tools for interacting with byoa apps on both L1 and L2.
We've built a StarkNet contract that allows you to connect to it via your Argent Wallet and install any of the apps which currently live on L1. You install them based on the ID of the app, and from there can set arbitrary configuration parameters as desired. We provide an application for interacting with the contract. It is currently only available on the Goerli testnet while we add some additional features before going live into production.
We look forward to you using our Mallows / byoa l2.beta app store that allows gasless installation of byoa apps into your StarkNet compatible wallet!
How do I get started?
Install Argent wallet extension.
How can I contribute?
We are in the process of open sourcing all the contracts and dapps, even while in beta mode and welcome all contributions!
What if I have an issue or a question?
Please DM us (@MallowsXYZ) on Twitter, it's the best way to get in touch with us.