# @coinbase/wallet-sdk

> Coinbase Wallet JavaScript SDK

Latest version **4.3.7** (published 2025-07-18) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @coinbase/wallet-sdk
pnpm add @coinbase/wallet-sdk
yarn add @coinbase/wallet-sdk
bun add @coinbase/wallet-sdk
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 4.3.7 |
| Published | 2025-07-18 |
| First published | 2022-03-01 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 426.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1762 |
| Author | Coinbase, Inc. |
| Maintainers | coinbase-owner, coinbase-npm |
| Keywords | coinbase, coinbasewallet, eth, ethereum, wallet, walletlink, web3 |

## Links

- npm: https://www.npmjs.com/package/@coinbase/wallet-sdk
- Repository: https://github.com/coinbase/coinbase-wallet-sdk
- Homepage: https://github.com/coinbase/coinbase-wallet-sdk#readme
- Issues: https://github.com/coinbase/coinbase-wallet-sdk/issues
- npm.io page: https://npm.io/package/@coinbase/wallet-sdk

## Dependencies (5)

- [clsx](https://npm.io/package/clsx.md) ^1.2.1
- [viem](https://npm.io/package/viem.md) ^2.27.2
- [preact](https://npm.io/package/preact.md) ^10.24.2
- [@noble/hashes](https://npm.io/package/@noble/hashes.md) ^1.4.0
- [eventemitter3](https://npm.io/package/eventemitter3.md) ^5.0.1

## Recent versions

- 4.3.7 (latest) — 2025-07-18
- 4.0.0-canary.20250708193645 (canary) — 2025-07-08
- 4.3.6 — 2025-07-14
- 4.3.5 — 2025-07-11
- 4.4.0-canary.20250625163917 — 2025-06-25
- 4.4.0-canary.20250617162757 — 2025-06-17
- 4.4.0-canary.20250611180009 — 2025-06-11
- 4.4.0-canary.20250610191714 — 2025-06-10
- 4.4.0-canary.20250609213145 — 2025-06-09
- 4.3.4 — 2025-06-06
- 4.4.0-canary.20250604195640 — 2025-06-04
- 4.4.0-canary.20250604 — 2025-06-04
- 4.3.3 — 2025-06-04
- 4.4.0-canary.20250602 — 2025-06-02
- 4.4.0-canary.20250506 — 2025-05-06
- … 88 more at https://npm.io/package/@coinbase/wallet-sdk/versions

## README

# Coinbase Wallet SDK

## Coinbase Wallet SDK lets developers connect their dapps to Coinbase Wallet in the following ways:

1. [Coinbase Smart Wallet](https://keys.coinbase.com/onboarding)
   - [Docs](https://www.smartwallet.dev/)
1. Coinbase Wallet mobile for [Android](https://play.google.com/store/apps/details?id=org.toshi&referrer=utm_source%3DWallet_LP) and [iOS](https://apps.apple.com/app/apple-store/id1278383455?pt=118788940&ct=Wallet_LP&mt=8)
   - Desktop: Users can connect to your dapp by scanning a QR code
   - Mobile: Users can connect to your mobile dapp through a deeplink to the dapp browser
1. Coinbase Wallet extension for [Chrome](https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad?hl=en) and [Brave](https://chromewebstore.google.com/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad?hl=en)
   - Desktop: Users can connect by clicking the connect with extension option.

### Installing Wallet SDK

1. Check available versions:

   ```shell
     # yarn
     yarn info @coinbase/wallet-sdk versions

     # npm
     npm view @coinbase/wallet-sdk versions
   ```

2. Install latest version:

   ```shell
   # yarn
   yarn add @coinbase/wallet-sdk

   # npm
   npm install @coinbase/wallet-sdk
   ```

3. Check installed version:

   ```shell
   # yarn
   yarn list @coinbase/wallet-sdk

   # npm
   npm list @coinbase/wallet-sdk
   ```

### Upgrading Wallet SDK

Upgrade Coinbase Wallet SDK using yarn or npm.

#### yarn/npm

1. Compare installed version with latest:

   ```shell
   # yarn
   yarn outdated @coinbase/wallet-sdk

   # npm
   npm outdated @coinbase/wallet-sdk
   ```

2. Update to latest:

   ```shell
   # yarn
   yarn upgrade @coinbase/wallet-sdk --latest

   # npm
   npm update @coinbase/wallet-sdk
   ```

### Basic Usage

1. Initialize SDK

   ```js
   const sdk = new CoinbaseWalletSDK({
     appName: 'SDK Playground',
   });
   ```

2. Make web3 Provider

   ```js
   const provider = sdk.makeWeb3Provider();
   ```

3. Request accounts to initialize connection to wallet

   ```js
   const addresses = provider.request({
     method: 'eth_requestAccounts',
   });
   ```

4. Make more requests

   ```js
   provider.request('personal_sign', [
     `0x${Buffer.from('test message', 'utf8').toString('hex')}`,
     addresses[0],
   ]);
   ```

5. Handle provider events

   ```js
   provider.on('connect', (info) => {
     setConnect(info);
   });

   provider.on('disconnect', (error) => {
     setDisconnect({ code: error.code, message: error.message });
   });

   provider.on('accountsChanged', (accounts) => {
     setAccountsChanged(accounts);
   });

   provider.on('chainChanged', (chainId) => {
     setChainChanged(chainId);
   });

   provider.on('message', (message) => {
     setMessage(message);
   });
   ```

### Developing locally and running the test dapp

- The Coinbase Wallet SDK test dapp can be viewed here https://coinbase.github.io/coinbase-wallet-sdk/.
- To run it locally follow these steps:

  1. Fork this repo and clone it
  1. From the root dir run `yarn install`
  1. From the root dir run `yarn dev`

---
_Source: https://npm.io/package/@coinbase/wallet-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
