Skip to main content
By logging in with Sei Global Wallet, you agree to our Terms of Use.
Sei Global Wallet is a cross-application embedded crypto wallet powered by Dynamic Global Wallets. It gives users a persistent wallet experience across any integrated dApp in the Sei ecosystem. Users can authenticate and interact with familiar login methods, such as Google, Twitter, or Telegram. They do not need a browser extension or prior crypto knowledge.
Other authentication methods are possible through Dynamic, such as existing wallet apps (for example, MetaMask). However, these methods are not currently enabled.

What is Sei Global Wallet?

Unlike traditional browser extension wallets, Sei Global Wallet is built directly into web applications. Users can authenticate with familiar methods, such as Google, Twitter, Telegram, or email. They do not need to download anything or know about crypto.

Why use Sei Global Wallet?

For users:
  • The wallet works directly in the browser, without extensions.
  • Users log in with Google, Twitter, Telegram, or email.
  • The same wallet works across all Sei ecosystem dApps.
  • The wallet is self-custodial: users keep full control of their keys.
For developers:
  • Integration takes one line: a single EIP-6963 import works with RainbowKit, ConnectKit, Web3-React, and other compatible libraries.
  • @sei-js/sei-global-wallet@2 is ESM-only and has no require() entry. Add the required consumer overrides before you install it.

How to create a Sei Global Wallet account

  1. Go to dashboard.sei.io or any Sei ecosystem dApp.
  2. Click Connect Wallet. Then select Sei Global Wallet.
  3. Choose your preferred login method (Google, X, Telegram, or Email).
  4. Complete the authentication flow.
  5. Your wallet is created automatically. You can use it across all integrated Sei dApps.

How to integrate Sei Global Wallet

Prerequisites

EIP-6963: A standard that lets multiple wallets coexist without conflicts. Instead of competing for window.ethereum, wallets announce themselves through events. Users can then choose which wallet to use. Dynamic: The infrastructure that powers Sei Global Wallet. It handles authentication, key management, and cross-app wallet persistence, and it keeps wallets non-custodial.

Installation

Add the required consumer overrides to your root manifest before you install. Dynamic Global Wallet Client pulls axios and uuid versions with known vulnerabilities. This package cannot push overrides into your app. The npm block pins axios to 1.18.0, uuid to 11.1.1, and ws to 8.21.0 under viem. The Bun block pins only axios and uuid. When Dynamic ships a release that fixes those pins, remove the overrides.
Install the Sei Global Wallet package:
or
Import the package to register the wallet:
@sei-js/sei-global-wallet@2 is ESM-only. The /eip6963 import still registers the provider. It also exports registerEIP6963Provider, unregisterEIP6963Provider, and eip6963ProviderInfo. Other entrypoints are /ethereum, /solana, and /zerodev.
Make sure that the provider stack of your dApp is configured correctly to interact with the wallet. Importing the package only registers the wallet for discovery. Most wallet connection libraries that support EIP-6963 detect the wallet automatically after the import.

Integration examples

These examples show how to integrate the preconfigured Sei Global Wallet package with different frameworks and wallet provider libraries.
Create a new Vite app:
Install dependencies:
Update App.tsx:
Run your app:
Create a new Vite app:
Install dependencies:
Update App.tsx:
Run your app:
Create a new Vite app:
Install dependencies:
Update App.tsx:
Run your app:
Create a new Vite app:
Install dependencies:
Update App.tsx:
Run your app:
Note: Replace "REPLACE-WITH-YOUR-ENVIRONMENT-ID" with your Dynamic environment ID from your Dynamic dashboard.
Create a new Next.js app:
Install dependencies:
layout.tsx:
lib/providers.tsx:
Note: Replace "REPLACE-WITH-YOUR-ENVIRONMENT-ID" with your Dynamic environment ID from your Dynamic dashboard.page.tsx:
Run your app:
If your project uses plain HTML and JavaScript without a build system, you can create a bundled version of Sei Global Wallet. You can then include it directly in your HTML pages.Create a bundle directory
Initialize an npm project
Install dependencies
Create a bundle source file Create bundle.js:
Update package.json Add this build script to your package.json file:
Build the bundle
This command creates sei-wallet-bundled.js.Use the bundle in your HTML projectCopy sei-wallet-bundled.js to your web project. Then load it in your HTML, as in this example:
Create a new Vite app:
Install dependencies:
Create a Web3Auth context (src/web3authContext.ts):
Update App.tsx:
Set up main.tsx with the Web3Auth provider:
Run your app:
Note: Replace the clientId in web3authContext.ts with your Web3Auth client ID from your Web3Auth dashboard.

Troubleshooting & FAQ

Troubleshooting & debugging tips

Common issues

Issue: Sei Global Wallet does not appear in the wallet list
Issue: TypeScript errors about window.ethereum
Issue: WalletConnect connection fails
Issue: Network not found in MetaMask

Debugging commands

Testing tips

  1. Test with multiple browsers to check cross-browser compatibility.
  2. If wallets do not appear, clear the browser cache.
  3. Check the browser console for EIP-6963 events and errors.
  4. Test connections to both Sei Testnet and Sei Mainnet.
  5. Verify that social login methods work across different authentication providers.

Security considerations

  • Sei Global Wallet is self-custodial: users control their private keys.
  • All communications between the dApp and the wallet are encrypted.
  • Multi-factor authentication is available for extra security.
  • Users can export their keys to other wallets, such as MetaMask.
  • Cure53 has audited the platform for security compliance.