WalletConnect Support
The Verida Wallet supports WalletConnect (v2) to connect crypto wallets with dApps. It enables seamless integration and communication between applications and supported blockchains.
Currently, the following blockchains and networks are supported:
- Ethereum Mainnet (mainnet) - ChainID
eip155:1
- Ethereum Sepolia (testnet) - ChainID
eip155:11155111
- Polygon PoS (mainnet) - ChainID
eip155:137
- Polygon Mumbai (testnet) - ChainID
eip155:80001
- NEAR Testnet - ChainID
near:testnet
- NEAR Mainnet - ChainID
near:mainnet
Verida Connect and WalletConnect Integration
Verida Connect facilitates the connection between the application and the Verida Network, offering powerful storage capabilities. By integrating WalletConnect, Verida Connect enables a unified authentication flow for users, streamlining the process.
When users authorize a connection to your application in the Verida Wallet, they will also be prompted to establish a WalletConnect connection simultaneously.
API
To combine Verida Connect and WalletConnect, you need to specify the walletConnect
configuration when creating a VaultAccount
instance. The walletConnect
configuration requires the following property:
uri
: (required) URI of the WalletConnect request
Example
Consider the following example code, which demonstrates the integration of WalletConnect with Verida Connect:
// Example simplified for brevity
import AuthClient, { generateNonce } from "@walletconnect/auth-client";
// Initialise the AuthClient
const walletConnectClient = await AuthClient.init({
projectId: process.env.PROJECT_ID,
relayUrl: process.env.RELAY_URL,
// ...
// Refer to the WalletConnect AuthClient documentation for the full required configuration
});
// Set the listeners on the client
walletConnectClient.on("auth_response", () => {
// logic to handle the response event
})
// Build the request URI
const walletConnectUri = await walletConnectClient.request({
chainId: "eip155:5", // The Verida Wallet will reject blockchain network that are not supported
// ...
// Refer to the WalletConnect AuthClient documentation for the full required configuration
})
// Configure the `VaultAccount` instance with WalletConnect
const account = new VaultAccount({
walletConnect: {
uri: walletConnectUri,
},
// ...
// Refer to the Verida Connect documentation for the full configuration
});
// Trigger the connection with Verida Connect
const context = await Network.connect({
account: account,
// ...
// Refer to the Verida Connect documentation for the full configuration
});
Refer to the WalletConnect documentation and for using the AuthClient
in your application.
For further guidance on using the AuthClient
in your application, consult the WalletConnect documentation and review the provided examples.