Files
explorer-monorepo/docs/specs/actions/wallet-connectivity.md

2.6 KiB

Wallet Connectivity Specification

Overview

This document specifies wallet connectivity options including WalletConnect v2, hardware wallet support, and embedded wallet architecture.

WalletConnect v2 Integration

Implementation

Library: @walletconnect/web3wallet or @web3modal/wagmi

Features:

  • Multi-wallet support
  • Session management
  • Chain switching
  • Transaction signing
  • Message signing

Connection Flow

  1. User initiates connection
  2. QR code displayed or deep link generated
  3. User approves in wallet app
  4. Session established
  5. Ready for transactions

Session Management

Storage: Persist sessions in localStorage Expiration: Handle session expiration gracefully Reconnection: Auto-reconnect on page reload

Hardware Wallet Support

Supported Wallets

Ledger: Via Ledger Live or browser extension Trezor: Via Trezor Connect Other: Via Web3 provider standard

Integration

Method: Use Web3 provider interface Security: Never expose private keys UX: Clear instructions for hardware wallet usage

Embedded Wallet

Architecture

Options:

  1. Non-Custodial: User controls keys (Web3Auth, Magic)
  2. Custodial: Platform manages keys (Fireblocks, Circle)

Recommendation: Start with non-custodial, add custodial for banking features

Non-Custodial Embedded Wallet

Technology: Web3Auth or similar Features:

  • Social login (Google, Twitter, etc.)
  • Passwordless authentication
  • Key management via MPC or smart contract wallets
  • Recovery options

Custodial Embedded Wallet

Use Cases: Banking features requiring custody Requirements:

  • Regulatory compliance
  • Secure key storage (HSM)
  • Insurance
  • Audit trails

Policy Gating: Only enable for users meeting compliance requirements

Key Management

Non-Custodial Keys

Storage: User's device or MPC network Recovery: Social recovery or seed phrase Security: Never transmitted to server

Custodial Keys

Storage: Hardware Security Module (HSM) Access: Multi-signature approval Audit: All key operations logged

API Integration

Wallet Connection

Methods:

  • connect(): Initiate connection
  • disconnect(): Close connection
  • getAccount(): Get connected account
  • switchChain(): Switch to different chain

Transaction Signing

Flow:

  1. Build transaction
  2. Request user approval
  3. Sign transaction
  4. Broadcast transaction
  5. Monitor confirmation

References

  • Swap Engine: See swap-engine.md
  • Bridge Engine: See bridge-engine.md
  • Security: See ../security/security-architecture.md