Annexure: Emergence Technology
Last updated
Last updated
Abstract. The Emergence Protocol is a set of tools developed for game engines and standards to empower the vision of a shared and open metaverse, governed by its community, through the OMD. The Protocol consists of several foundational layers including the EmergenceTM SDK which provides low and high-level code access to the required functions to interact with EVM networks and wallets. From authenticating your users with digital signatures, which enables a new form of universal authentication, up to reading and writing to smart contracts. EmergenceTM also provides a suite of technologies that provides Interoperability of assets across any gamespace. As well as the tools to tie Utility to any asset, even after mint.
We have developed tools to access EVM networks in a safe way while also laying down the mould to build a global network of gamers without a central party authority.
Traditionally, the authentication method for any digital system requires storing a password in the endpoint, this way a server will know if a client knows his secret, and thus giving him access to any form of identity.
Using elliptic curve point manipulation, we can derive a value from a private key, which is not reversible. This way we can create signatures that are safe and tamperproof. The functions that derive the values are called “trapdoor functions”.
Digital signatures allow a new way of thinking about authentication; the user is now the only agent with a copy of the secret (private key), and is known by the world by his address (public key).
Within the EmergenceTM SDK, we provide examples of authenticating users for different use cases: a request to sign an EVM transaction; or the generation of a token by signing a message for allowing access to off-chain services. The latter is inspired by https://eips.ethereum.org/EIPS/eip-4361 which is an on-going work.
In order for a software application to interact with the Ethereum blockchain (by reading blockchain data and/or sending transactions to the network), it must connect to an Ethereum node.
For this purpose, every Ethereum client implements a JSON-RPC specification, so there is a uniform set of methods that applications can rely on.
JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. Primarily the specification defines several data structures and the rules around their processing. It is transport agnostic in that the concepts can be used within the same process, over sockets, over HTTP, or in many various message passing environments.
EVM integration libraries provide a modular way of interacting with smart contracts and integrating with clients (nodes) on the Ethereum Network.
Most popular integration libraries for each language:
There is still not an integration library developed for C++. So instead, we developed a custom solution which is multiplatform and runs on a local server integration as well as a cloud based solution; this allows Unreal Engine developers to perform all the basic tasks related to the EVM network; including reading and writing from smart contracts, fetching balance from any address, the EmergenceTM SDK also supports establishing WalletConnect sessions. We have provided examples to use our singleton for all of the basic tasks, including operations for minting tokens; displaying balances, and so on.
Modern EVM integration libraries like Web3.js and ethers provide access to injected web browser based wallets, like Metamask, but when it comes to desktop applications there is not an existing injected wallet solution; that’s why we integrated WalletConnect into a singleton that runs as a local server to allow users to safely connect their wallets to desktop applications without ever having to input their private key or seed phrase. Access to this singleton is provided through different SDK’s, available for Unreal Engine, and Unity.
We also provide a module for creating and managing ‘local’ wallets; including creation of Keystores (https://goethereumbook.org/GLOSSARY.html#keystore) which are convenient for accessing the EVM network from a server instance of the game. This also gives the possibility to create and manage EVM wallets for end users if needed. As opposed to WalletConnect, or injected wallet solutions, this also gives game developers access to sensitive information of the wallet, that’s why we only recommend using this module for server instances or temporary wallets for gamers if needed.
Our current stack for the integration library is based on NEthereum. In the case of the Unreal engine we are forced to run a Web3 instance in a local server; in the case of Unity, it can run stand-alone; we have plans to develop a C++ integration library so it can run natively on the client.
The EmergenceTM SDK initially supports concurrent EVM network instances, this allows game developers to read from one network and write to another. We are additionally working on supporting non-evm based networks, such as the Root Network and Solana, and will continue to expand our technology to support additional networks across our technology suite.
The Emergence SDK will provide access to off-chain services with wallet-based authentication, this includes but is not limited to:
Management of personas for handling user profiles and their avatars
Emergence Indexer: Query the blockchain for assets owned by a single account (erc-20, erc-721, erc-1155). We have also indexed all 3d assets that we found publicly on the Ethereum & Polygon networks, to expose these assets to work interoperably across any Emergence built gamespace.
Interoperable Asset System: Provide standards, templates and APIs so any Asset can hold utility and work interoperability across gamespace worlds.
Dynamic Metadata: Provide ability to tie off-chain information to NFTs or Emergence Interoperable Assets, so additional information can be tied and written back to NFTs that weren’t part of its original metadata design
Marketplace: A web-based based marketplace for NFTs as well as SDK APIs inside the Emergence SDK to equally provide marketplace functionality to developers
All of the mentioned services will be easily accessible through our user interface developed for both Unreal and Unity.
Personas are digital identities; they portray a name, a profile picture and a Bio. Through our services game developers are able to pull data from these personas; using the end-user wallet as a query parameter. This allows it to carry a single identity across multiple games.
Avatars are a way of representing a character in the digital world; they normally come in the form of 2d or 3d meshes. End-users will have the possibility to assign one avatar to each persona.
The indexer is a tool for querying the blockchain in a fast and modular way. It provides access to wallet assets and custom filters for game developers. The indexer services will be provide to Emergence SDK Developers, to our Marketplace and other Web Cloud Services, as well via the Emergence Services, where partners and other companies have expressed interest in gaining access to our Interoperable Assets and Indexer data. The indexer backend walks and crawls each block, then stores the data in a Database. While the APIs and Services built into our Emergence Services library, provides access to blockchain information in a fast, modular and standardised manner.
Interoperable Asset System
The Interoperable Asset System, provides standards that include templates with traits and dynamic metadata, so any asset can be used interoperably across game spaces, and so game developers can interact through read/write to these assets and store information about how assets have been used inside their game worlds.
Dynamic Metadata System
NFTs by design are limited today, where baking in utility and information after an NFT launched just isn't possible. The Dynamic Metadata System allows users and developers to treat any NFT like a Gameplay Object, by being able to read/write linked-off chain data, to any NFT. So that actions, narrative moments, gameplay decisions (for example) can be tied to any given NFT.
This is Season One of a ten year vision.