Playing with MultiversX blockchain

github x github

I'm always impressed when I go through documentation sites of all bigger and smaller blockchains ecosystems out there. A lot is going on in this area. New solutions, foundations, and great projects arose. Now we have not only the Ethereum ecosystem but a lot of great stuff outside it. And I think this is good.

In this article, I wrote down my thoughts about my first experiences with the MultiversX blockchain. I won't focus on blockchain technology much here but rather on tools and what I could learn after a weekend with MultiversX. These will be thoughts from the perspective of a JavaScript developer who isn't a Smart Contract coder (yet ;)).

What is MultiversX, and why is it interesting?

MultiversX is a Proof of Stake (Adaptive State Sharding and Secure Proof of Stake) blockchain that started around June 19, 2019 (according to its White Paper. Its native token/coin is EGLD.

I don't want to enter the path on why it is cheaper, faster, or in any way better than Ethereum because this isn't the point anyway. What matters, in the end, is the ecosystem, flexibility, and how many developers will use it. When I look into the docs, I search how fast I can learn to create something. I explore what the business partners are and what is already built. Technology is, of course, fundamental, but I am sure it is solid in all cases or most of them out there. There will probably be different solutions suitable for different needs.

I think that MultiversX has excellent marketing and social media communication. They also made a great mobile wallet xPortal. I was impressed that they were able to achieve a lot in a bit of time. As I write these words, the xExchange is almost finished and ready to be released. And this will be huge. DeFi is always a big motor for every blockchain out there. They already have full functionality, so it is possible to write Smart Contracts, build custom tokens, NFTs, etc. Great partners are already there too.

Techy stuff

MultiversX caught my attention when they released the first versions of their React Dapp components and boilerplate. It was a couple of weeks ago. I thought that it could be a perfect time to try it and see how it all connects.

Dapp library is a set of React components that incorporates MultiversX SDK for JavaScript, a powerful JavaScript toolset to interact with MultiversX blockchain, Smart Contracts, Wallets, APIs, etc. The only missing part here is good documentation. Hopefully, we will get it soon.

I always learn by building stuff, even if this won't ever be useful for anyone. In this case, I had the same approach. I decided to build an app that will allow the logged-in user to mint some NFTs on MultiversX's chain. Of course, everything on the testnet. This approach was great because I was able to build something without writing a single Smart Contract. Now, when I know what transactions I should make and how they should look, I can dig deeper and will for sure. So, let's see what I've got till now.

MultiversX NFT minting platform POC

After a weekend of hacking, I replicated some of the functionality you can find in MultiversX's web wallet. Listing transactions, minting NFT's and listing them.

You can find it here:

And here is a quick walk-through video:

So, in my opinion, MultiversX wins some points here. It is straightforward to grasp the tools and start building even if what I've made isn't complicated. Still, it was only one weekend.

My simple project is built using a couple of tools from React Dapp library. What is most important and saves a ton of work is ready to use Authentication flow. There are components like Unlock, Ledger and WalletConnect and also ready to use React Context to glue all.

Besides that, I also used some tools from @multiversx/sdk-core, basically to configure required transactions requests.

All other stuff is a standard React app.

Next steps in the learning path

I want to get my hands dirty with MultiversX's Smart Contracts, especially since I started to learn Rust. One writes Smart Contracts in MultiversX using Rust language, which is, in my opinion, the perfect choice. Many robust blockchains incorporate Rust too. Worth to mention: Polkadot Substrate, Solana, and CosmWasm tools.

There is also an excellent MultiversX IDE plugin for VS Code. It is something very similar to Remix. Of course not so advanced and not in the browser. I like the path the MultiversX team took. Most developers like me use VS Code, and plugins there are great. Especially that this IDE will install and configure all Python and Rust dependencies which are required and will do this in isolation so it won't mess with your current configuration.

You can watch an official guide here:

Summary

I think the MultiversX network is worth promoting, at least at the moment. Of course, not in the context of investment, but technology. I found a lot of great tooling, and I see that we can build a lot already, even if some work is needed, like good documentation.

I love their xPortal wallet. It looks sweet, and it is straightforward to use it. You can even stake your EGLD there. You can also keep ETH and BNB.

Soon there will be a lot of possibilities when xExchange runs. In plans, there is much more like domain name services and identity services. Sounds exciting and complete. Hey, there is even MultiversX DeFi browser extension.

I would love to find more time and dig deeper. Write some Smart Contracts. Play with testnet. I hope it will be possible very soon.

Besides MultiversX, I keep an eye on a couple of other new players in the area. Especially Solana, Avalanche, Algorand, Terra, Harmony One. Hopefully, I will be able to write down some thoughts about them too. And of course, I wait for Cardano and Polkadot to be complete, which are, in my opinion, main competitors for Ethereum if we can speak about competition in this context.

Regarding the platform I would like to keep working on it just for learning purposes. I plan to find out how to transform it into a full-featured minting platform that users will use to create NFTs, sell and send them to others.

If you have any other ideas, please let me know. Follow me on Twitter and GitHub.