Slush
Slush is the official Sui wallet built by Mysten Labs, available as a Chrome browser extension, an iOS app, an Android app, and a web app at slush.app.
Slush basics
Slush Wallet gives users two ways to create and access an account:
-
Social login uses zero-knowledge login (zkLogin) to derive a Sui address from an OAuth credential (Google, Apple, Facebook, or Twitch). No recovery passphrase is required. This is the recommended login method for users who are new to wallets, because key management is fully abstracted.
-
Recovery passphrase creates a standard self-custodial account. The user holds the private key locally and is responsible for backing up the recovery passphrase. This is the recommended path for users who want full, independent control of their keys.
Both account types are supported simultaneously. A single Slush Wallet can hold both social-login and passphrase-based accounts.
Additional features available in Slush Wallet include:
- Slush Links: Send tokens or NFTs to anyone through a shareable link or QR code, with no recipient address required.
- Staking: Delegate SUI to a validator and earn staking rewards directly from the wallet.
- Swaps: Exchange tokens in-app without leaving the wallet.
- App browser: Browse and connect to Sui apps from inside the mobile app.
Slush Wallet SDK
The @mysten/slush-wallet SDK lets you add Slush Wallet support to your own wallet interface or app. The Slush browser extension and native mobile app work automatically through the Wallet Standard and do not require this SDK. The SDK is only required if you want to support the Slush web app as a connection option.
Install
pnpm install @mysten/slush-wallet
Register the Slush web wallet
Call registerSlushWallet once, as early as possible in your application's lifecycle. This registers the Slush web wallet with the Wallet Standard so it appears in your existing wallet connection UI.
packages/slush-wallet/src/wallet/index.ts. You probably need to run `pnpm prebuild` and restart the site.Supported features
The Slush wallet supports the following Wallet Standard features:
signTransactionsignAndExecuteTransactionsignPersonalMessage
Detect the Slush wallet
To check whether the connected wallet is Slush Wallet, compare the wallet name against the SLUSH_WALLET_NAME constant.
packages/slush-wallet/src/wallet/index.ts. You probably need to run `pnpm prebuild` and restart the site.Sui dApp Kit integration
The Sui dApp Kit provides built-in opt-in support for Slush Wallet. Pass slushWalletConfig to createDAppKit to enable it. The name field is required and is shown to the user during the connection flow.
packages/dapp-kit-next/packages/dapp-kit-react/src/components/DAppKitProvider.tsx. You probably need to run `pnpm prebuild` and restart the site.Users who have the Slush browser extension installed see only the extension in the connection modal. Users without the extension connect through the Slush web app instead.
Deep linking
Deep linking lets external apps, websites, and services open Slush Wallet directly to a specific screen or trigger a specific action, such as a token swap, a payment, or an app browser session. Slush supports universal links via the my.slush.app domain and custom URL scheme links via slush://. Deep linking is not supported for the Slush browser extension.
For the full route reference, parameter tables, platform-specific implementation examples, and troubleshooting guidance, refer to the Slush Wallet SDK docs on deep linking.