Wallet Connect & Access

Diving into Web3 and the Wallet Connect Feature

Ethereum, Blocking and Gaming Overview

In order for an 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.

There is still not an integration library developed for C++. So we developed a custom solution which is multiplatform and runs both on a cloud server integration or a local server integration. The EVMServer plugin. This allows game 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 and establishing WalletConnect sessions.

You can choose to switch between the local server adaptor for EVM compatablity or our cloud solution which is multiplatform. The limitation with the cloud solution is that it only supports WalletConnect as a method of transaction and message signing. Whereas with the local server solution; you can manage wallets locally and programmatically.

Wallet Connect

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! We provide creators with the easy to user blueprints and code to leverage this. As well as the Emergence UI Overlay, so users can easily scan a QR and connect their wallets to your game.

Here you can see get a glance at what your user will see when you activate WalletConnect in your game world.

Here is how to get started with Wallet Connect for your game! Unreal - Getting Started With Emergence

Local Wallets

Wallets are one of the pillars of blockchain technology. A wallet is essentially a Keypair. The Keypair consists of a private key, and a derived public key.

The Emergence SDK supports WalletConnect; this means that your users can 'connect' their favorite wallets to your game in a secure way so you can request them to perform actions like sign messages and/or transactions to then broadcast them to a network.

But, what if we want to perform write actions from our Game Server Instance in a programmatic way? This is why we provide a module to manage Local Wallets. This includes creation, encryption and naming of wallets. These are stored and encrypted using the Keystores Standard, to then perform actions like signing messages and transactions without an explicit authorization by the user. Keystores are convenient for accessing the EVM network from a Server instance of the game.

This 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 build a custom EVM C++ Integration Library for Unreal users in future months.

You can see more about our Keystore Local Wallet APIs here. Tutorial Coming Soon.

Last updated