This repository is a monorepo of packages that extend WalletConnectSharp and brings WalletConnect to Unity.
| Package | Description | OpenUPM |
|---|---|---|
| Core | High-level, Unity-friendly extension of WalletConnectSharp - Automatic active session management - Option to resume session from storage - Deep linking support - IL2CPP support - Lightweight IJsonRpcConnection implementation- QR Code generation utility - API to load wallets data and visual assets |
|
| Modal | Simplest and most minimal way to connect your players with WalletConnect | |
| UI | This is a technical package that provides UI for WalletConnect Modal. It is not intended to be used directly, but rather as a dependency of WalletConnect Modal. |
- Unity Editor 2021.3 or above
- Android
- iOS
- macOS
- Windows
- WebGL (soon)
⚠️ This is beta software: This software is currently in beta and under development. Please proceed with caution, and open a new issue if you encounter a bug. Older versions of WalletConnectUnity are available under legacy/* branches ⚠️
Install via OpenUPM CLI
To install packages via OpenUPM, you need to have Node.js and openupm-cli installed. Once you have them installed, you can run the following commands:
- WalletConnect Modal:
openupm add com.walletconnect.modal
- WalletConnectUnity Core:
openupm add com.walletconnect.core
Install via Package Manager with OpenUPM
- Open
Advanced Project Settingsfrom the gear ⚙ menu located at the top right of the Package Manager’s toolbar - Add a new scoped registry with the following details:
- Name:
OpenUPM - URL:
https://package.openupm.com - Scope(s):
com.walletconnect
- Name:
- Press plus ➕ and then
Savebuttons - In the Package Manager windows open the add ➕ menu from the toolbar
- Select
Add package by name... - Enter the name of the package you want to install:
- WalletConnectUnity Modal:
com.walletconnect.modal - WalletConnectUnity Core:
com.walletconnect.core
- WalletConnectUnity Modal:
- Press
Addbutton
Install via Package Manager with Git URL
- Open the add ➕ menu in the Package Manager’s toolbar
- Select
Add package from git URL... - Enter the package URL. Note that when installing via a git URL, the package manager won't install git dependencies automatically. Follow the error messages from the console and add all necessary packages manually
- WalletConnectUnity Modal:
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.modal - WalletConnectUnity UI:
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.ui - WalletConnectUnity Core:
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.core
- WalletConnectUnity Modal:
- Press
Addbutton
It's possible to lock the version of the package by adding #{version} at the end of the git URL, where #{version} is the git tag of the version you want to use.
For example, to install version 1.0.0 of WalletConnectUnity Modal, use the following URL:
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.modal#modal/1.0.0
- Set up in project id and metadata
WalletConnectProjectConfigScriptableAsset (created automatically located atAssets/WalletConnectUnity/Resources/WalletConnectProjectConfig.asset, do NOT move it outside ofResourcesdirectory). - Initialize
WalletConnectand connect wallet:
// Initialize singleton
await WalletConnect.Instance.InitializeAsync();
// Or handle instancing manually
var walletConnectUnity = new WalletConnect();
await walletConnectUnity.InitializeAsync();
// Try resume last session
var sessionResumed = await WalletConnect.Instance.TryResumeSessionAsync();
if (!sessionResumed)
{
var connectedData = await WalletConnect.Instance.ConnectAsync(connectOptions);
// Use connectedData.Uri to generate QR code
// Wait for wallet approval
await connectedData.Approval;
} - Project Id - The id of your project. This will be used inside the relay server.
- Client Metadata
- Name - The name of your app. This will be used inside the authentication request.
- Description - The description of your app. This will be used inside the authentication request.
- Url - The url of your app. This will be used inside the authentication request.
- Icons - The icons of your app. This will be used inside the authentication request.
- Very Url - The verification URL of your app. Currently used but not enforced