Although there are many Metaverse platforms, we still don't have a convenient entry point to the Metaverse. We think of Metaverse as a new world and MetaGate is trying to be the gateway to that world.

What it does

Instead of using a simple tile-based map, we created a digital map based on the physical world's map where everything is selectable (from roads to parks, and even each individual building), and users can mint them as NFTs. Users can update the appearances of their properties. For instance, they can change the building's color or the road's name and these changes would apply immediately to the map. New names are searchable allowing other users to find other's properties on the map easily. In addition, each owner can add a "Theta Video" or a "Link to External Website" to their land. For instance, if a user has created a VR experience of their property, they can show a preview of that using the video and can link the VR experience via "Link to External Website". Users can also set a price for each of their properties to sell it.

How we built it

We already had our own map service by generating a digital map using a snapshot of the physical world's data. This way, since there's no third-party map service, users have the complete freedom of changing any data of their lands on MetaGate.

We also had a backend that is written in Golang for serving map tiles and caching data. We took advantage of using ElasticSearch for indexing and caching addresses and names to build Metagate's search engine.

For this hackathon, we created a DApp using React that integrates Theta video platform and enables users to buy/sell lands. Users can also set a price and change their lands' data and appearance.

We also wrote a smart contract for core functionalities of MetaGate like minting, setting prices, and purchasing. You can find it here. We also added a backend functionality to provide metadata of NFTs.

By integrating Theta into this platform, we were able to index the events from Theta blockchain. So we developed a trading history for each land that shows the buyer, the seller, the date of purchase, and the price of the land on that date. You can visit our GraphQL playground here.

And for the demo, we created a sample scene in Unity Engine and embed a video from Theta video platform in that scene.

Challenges we ran into

Since Theta Network is an EVM-compatible chain, It was pretty straightforward to integrate it into MetaGate. So we had the chance to invest more time working on UI/UX and ensuring that mainstream users know how to use the platform properly. Also, there were some security concerns regarding changing cache without having the authority of the land. We've solved it by sending a signature alongside each message to the cache server.

Accomplishments that we're proud of

We have a solid foundation for our future plans. We're proud that the performance and the structure of our platform are so good that we can add new features to it quickly. We're happy with the UI/UX of MetaGate. It's easy for even users who are not familiar with Metaverse concepts and NFTs to navigate in MetaGate and see other people's lands.

What we learned

It was our first time building a platform in Theta blockchain. We've learned a lot. From using solidity to write smart contracts to a deep understanding of how the graph node indexer works. There's still a lot to learn.

What's next for MetaGate

  • Enable users to rent a land
  • Creating a marketplace to buy/sell multiple lands in a single transaction with a discount
  • Auction
Share this project: