Wallet / Auth·EVM · Solana · Bitcoin · Multi-chain
Particle Network
Wallet abstraction (social login + MPC) and chain abstraction (Universal Accounts) in one SDK. Lets users hold a single account that pays gas and holds balances across EVM, Solana, and Bitcoin without manual bridging.
- 01chain abstraction / Universal Accounts
- 02social login + MPC wallets
- 03EVM + Solana + Bitcoin in one account
- 04account abstraction (ERC-4337)
- 05gas-sponsored UX
- pnpm add @particle-network/connectkit viem@^2 @tanstack/react-query
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_PARTICLE_PROJECT_ID | Client | Particle project ID from the dashboard. |
| NEXT_PUBLIC_PARTICLE_CLIENT_KEY | Client | Particle client key from the dashboard (browser-safe). |
| NEXT_PUBLIC_PARTICLE_APP_ID | Client | Particle app ID from the dashboard. |
| PARTICLE_SERVER_KEY | Server | Particle server key for backend RPC and admin calls. Never expose to the browser. |
Use Particle Connect for unified social + wallet login with chain abstraction. Create a config in `Connectkit.tsx` via `createConfig({ projectId, clientKey, appId, chains, walletConnectors: [authWalletConnectors(), evmWalletConnectors(), solanaWalletConnectors()] })` from `@particle-network/connectkit`, then wrap the app in `<ConnectKitProvider config={config}>`. Trigger the modal with the `useConnectKit()` hook (`connect()`) and read state via `useAccount()`, `usePublicClient()`, `useWallets()`. For Universal Accounts (chain-abstracted balances), wrap with `<UniversalAccountProvider>` and use `useUniversalAccount()` to send a single tx that auto-routes assets across chains.
- ⚑All three keys (projectId, clientKey, appId) must come from the *same* project in the dashboard — mixing keys from different projects fails with cryptic signature errors.
- ⚑Universal Accounts are EVM-first; Solana/Bitcoin support is a separate connector and not all chain-abstraction routes are available cross-VM yet.
- ⚑Particle's smart-account flavor is configurable (SimpleAccount, BiconomyV2, Cyber, Light) — the resulting smart-wallet address differs per flavor, so picking the wrong one mid-project orphans user assets.
- ⚑Whitelist your domain in the dashboard; otherwise the connect modal silently fails on production deploys with no console error.
- ⚑Mobile WebView OAuth is restricted — use the React Native SDK or external-browser flow instead of embedding social login in a WebView.