Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coinbase/coinbase-wallet-sdk
An open protocol that lets users connect their mobile wallets to your DApp
https://github.com/coinbase/coinbase-wallet-sdk
coinbase ethereum ethereum-wallet
Last synced: 14 days ago
JSON representation
An open protocol that lets users connect their mobile wallets to your DApp
- Host: GitHub
- URL: https://github.com/coinbase/coinbase-wallet-sdk
- Owner: coinbase
- License: mit
- Created: 2019-05-01T02:05:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-17T02:36:25.000Z (27 days ago)
- Last Synced: 2024-10-19T23:13:35.755Z (24 days ago)
- Topics: coinbase, ethereum, ethereum-wallet
- Language: TypeScript
- Homepage: https://coinbase.github.io/coinbase-wallet-sdk/
- Size: 25 MB
- Stars: 1,457
- Watchers: 168
- Forks: 564
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Coinbase Wallet SDK
[![npm](https://img.shields.io/npm/v/@coinbase/wallet-sdk.svg)](https://www.npmjs.com/package/@coinbase/wallet-sdk)
## Coinbase Wallet SDK allows dapps to connect to Coinbase Wallet
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
> Migrating from v3 to v4? Please see our [v4 migration guide](https://www.smartwallet.dev/sdk/v3-to-v4-changes) for a full list of breaking changes.
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`