We have several exciting project developments to share with you! The whole team has been hard at work, making progress in every corner of Decentraland’s toolset ranging from new features in the Marketplace to performance boosts in the SDK.

Specifically, we’ll update you on the status of the Agora voting dApp, the Marketplace’s new API, the latest advances in LAND Estates, and the latest round of SDK updates.

First, let’s talk about NIFTY.

NIFTY Conference

Decentraland is incredibly excited to be co-sponsoring the NIFTY Conference in Hong Kong from July 24 to July 26!

We’ll be spending three days with some of the top leaders in Blockchain gaming and NFTs, discussing (and demonstrating) the future of what can be built using blockchain tech in the entertainment and gaming spaces.

We’ll also be hosting a hackathon dedicated to blockchain gaming on the afternoon of the 25th! The prizes amount to $7,000 USD, $3,000 USD, and $1,000 USD for the first, second, and third place projects, respectively. We can’t wait to see what the competitors create.

To get your tickets and to apply to the hackathon, visit nifty.gg. You’ll also find more details about the calendar of events, venue, and introductions for each of the keynote speakers.

We hope to see you there!

Agora Voting dApp

We are designing Decentraland to be a community-driven platform. Individuals, professional teams, and districts are all coming together to build a shared, virtual space.

In order to reach our full potential as a community, we need to be able to make collective decisions in a fair and democratic way. That’s why we’re building Agora, a decentralized voting platform dedicated to the issues and decisions in Decentraland.

We’re almost done. We just completed all of the backend development, and are now working on the final front-end UI/UX development.

Agora will serve as a place where users can put forward questions and decisions to be voted on by the community. Questions and decisions will appear as polls, and individuals will be able to vote in these polls by submitting ERC20 or ERC721 tokens. All votes are signed using wallet addresses.

The very first use case for Agora will be the Community Districts, which are currently in the process of selecting their leadership teams and their startup plans. We hope that Agora will provide a simple and secure platform for these types of District governance decisions.

Marketplace

Our dApps team has been making rapid improvements in the Marketplace. The latest version 0.10.0 includes some notable improvements in the usability, speed, and reliability of the Marketplace.

Marketplace API

The team has released a very cool web API allowing anyone to pull data and images from the Marketplace.

Curious to see which contributions came from a specific wallet address? Want to generate a PNG image of a section of the Genesis City Map? Check out our API Docs to get started.

LAND Estates

The implementation of LAND Estates is almost complete! We know that you have been asking for a way to combine parcels of LAND, making it easier to deploy larger scenes or even just to buy and sell multiple parcels in one go.

Well, we’ve finished the front-end development and UI/UX work for the management of Estates. All that we have left to do is add the ability to publish an Estate to the Marketplace. Stay tuned — we’ll let you know as soon as Estates are up and running.

SDK

The World Team has recently released version 4.0.0 of the SDK, which includes several significant changes. Most notably, the team has completed the migration from Three.js to Babylon.js as the JavaScript framework used to render 3D content.

To install the latest updates in the SDK and CLI, simply open your terminal or command prompt and run:

npm update -g decentraland

You’ll find an improved developer preview client, plus some changes in the way materials, coordinates, and user positions are handled.

Let’s dig into some of the details.

Materials

Previously, materials were specified as a component of an entity:

< scene id = "old_scene" > < sphere material = "map: some/url.png; alphaTest: 0.5" /> </ scene >

This was problematic by leading to unnecessary materials duplication (and subsequently messy garbage collection). It was also unnecessarily verbose.

We’ve fixed this by turning materials into entities in their own right:

< scene id = "new_scene" > < material id = "reusable_material" albedo - color = "some/url.png" roughness = "0.5" /> < sphere material = "#reusable_material" /> </ scene >

Coordinate System

In the last version of the SDK, finding the position of the user within a scene required a call to await getMyPositionInEstate() . This was cumbersome and time consuming. Now all you have to do is subscribe to the positionChanged event:

import { createElement , ScriptableScene } from ' metaverse-api ' export default class BoxFollower extends ScriptableScene { state = { position : { x : 0 , y : 0 , z : 0 } } async sceneDidMount () { this . eventSubscriber . on ( ' positionChanged ' , e => { this . setState ({ position : e . position }) }) } async render () { return ( < scene > < box position = { this . state . position } ignoreCollisions /> </ scene > ) } }

For a complete rundown of the rest of the changes added in version 4.0.0, check out our release notes.