Understanding WalletConnect

Mobile Curiosity

What is WalletConnect?

How it all works?

  1. Client
  2. Bridge Server
  3. Push Server

Establishing Connection

Source (Wallet Connect Docs)
  1. The dApp wants to connect and posts a SessionRequest → Bridge Server.
  2. dApp uses the WalletConnect Standard URI format (EIP-1328) for an encrypted payload → Bridge Server.
  3. Wallet read the URI through QR Code / deep linking and decrypts the connection request payload → Bridge Server
  4. Bridge Server → Wallet displays to request details to the user. Either approved or rejected. If rejected, an error message is thrown.
  5. If approved, the dApp will receive the information regarding chainId and account.

Interfacing with other JSON-RPC Calls

Source (Wallet Connect Docs)

Libraries / Implementations

WalletConnect Infrastructure / Importance

Source: Nichanan Kesonpat (1kx)

Current Github

  • WalletConnectKotlinV2
  • WalletConnectSwiftV2
  • Walletconnect-monorepo
  • Gotrue
  • Scarlet
  • Kotlin-walletconnect-lib
  • Walletconnect-utils
  • Web3modal
  • WalletConnectUnity
  • WalletConnectSwift


  • Chain agnostic interface
  • Multi-chain support
  • Pairing and session separation
  • JSON-RPC permissions
  • Improved session management
  • Decentralized message relaying

Future of WalletConnect



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store