Introduction
WalletConnect Sign is a remote signer protocol to communicate securely between web3 wallets and dapps. The protocol establishes a remote pairing between two apps and/or devices using a Relay server to relay payloads. These payloads are symmetrically encrypted through a shared key between the two peers. The pairing is initiated by one peer displaying a QR Code or deep link with a standard WalletConnect URI and is established when the counter-party approves this pairing request.
Don't have a project ID?
Head over to Reown Cloud and create a new project now!
Installation
- Web
- iOS
- Android
- Flutter
- Unity
- .NET
- npm
- Yarn
- Bun
- pnpm
npm install @walletconnect/sign-client
yarn add @walletconnect/sign-client
bun add @walletconnect/sign-client
pnpm add @walletconnect/sign-client
For Node.js, the WalletConnect SignClient additionally requires lokijs
to manage storage internally.
- npm
- Yarn
- Bun
- pnpm
npm install --save @walletconnect/sign-client lokijs@1.x
yarn add @walletconnect/sign-client lokijs@1.x
bun add --save @walletconnect/sign-client lokijs@1.x
pnpm add @walletconnect/sign-client lokijs@1.x
- SwiftPackageManager
- Cocoapods
You can add a WalletConnect SDK to your project with Swift Package Manager. In order to do that:
- Open XCode
- Go to File -> Add Packages
- Paste the repo GitHub URL: https://github.com/reown-com/reown-swift
- Tap Add Package
- Select WalletConnect check mark
- Update Cocoapods spec repos. Type in terminal
pod repo update
- Initialize Podfile if needed with
pod init
- Add pod to your Podfile:
pod 'WalletConnectSwiftV2'
- Install pods with
pod install
If you encounter any problems during package installation, you can specify the exact path to the repository
pod 'WalletConnectSwiftV2', :git => 'https://github.com/reown-com/reown-swift.git', :tag => '1.0.5'
Kotlin implementation of WalletConnect v2 Sign protocol for Android applications. This SDK is developed in Kotlin and usable in both Java and Kotlin files.
- Android Core
- Sign
Requirements
- Android min SDK 23
- Java 11
Installation
root/build.gradle.kts:
allprojects {
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
}
}
app/build.gradle.kts
implementation("com.walletconnect:android-core:release_version")
implementation("com.walletconnect:sign:release_version")
Install the WalletConnect client package.
flutter pub add walletconnect_flutter_v2
Platform Specific Setup
Depending on your platform, you will have to add different permissions to get the package to work.
MacOS
Add the following to your DebugProfile.entitlements
and Release.entitlements
files so that it can connect to the WebSocket server.
<key>com.apple.security.network.client</key>
<true/>
Install via Packages
Install the WalletConnect Sign Client package via Nuget.
dotnet add package WalletConnect.Sign
WalletConnectUnity.Core is a Unity package that provides a client implementation of the WalletConnect v2 protocol. It is built on top of the WalletConnectSharp.Sign library, which provides the core functionality for the WalletConnect protocol.
Prerequisites
- Unity 2021.3 or above
- IL2CPP code stripping level: Minimal (or lower)
Package Installation
- OpenUPM CLI
- Package Manager with OpenUPM
- Package Manager with Git URL
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:
openupm add com.walletconnect.core
- Open
Advanced Project Settings
from 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
Save
buttons - In the Package Manager windows open the add ➕ menu from the toolbar
- Select
Add package by name...
- Enter the package name:
com.walletconnect.core
- Press
Add
button
- Open the add ➕ menu in the Package Manager’s toolbar
- Select
Add package from git URL...
- Enter the package URL:
WalletConnectUnity Core
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.core
- Press
Add
button
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.1
of WalletConnectUnity Modal, use the following URL:
https://github.com/WalletConnect/WalletConnectUnity.git?path=Packages/com.walletconnect.core#core/1.0.1
WebGL
Due to WebGL's single-threaded nature, certain asynchronous operations like Task.Run
, Task.ContinueWith
, Task.Delay
, and ConfigureAwait(false)
are not natively supported.
To enable these operations in WebGL builds, an additional third-party package, WebGLThreadingPatcher, is required. This package modifies the Unity WebGL build to delegate work to the SynchronizationContext
, allowing these operations to be executed on the same thread without blocking the main application. Please note that all tasks are still executed on a single thread, and any blocking calls will freeze the entire application.
The WebGLThreadingPatcher package can be added via git URL:
https://github.com/VolodymyrBS/WebGLThreadingPatcher.git