If you'd like to build a dapp for Coinbase smart wallet using our v4 beta release, check out our step by step instructions to get started with Coinbase Wallet SDK v4 and wagmi.
-
Coinbase smart wallet (v4 only)
- EIP-4337 account abstraction using passkeys
- No passwords or PIN
- No seed phrase management
- No extension or app downloads
- Near instant onboarding
- Spend with Coinbase balance
- Gas sponsorship via paymasters
- Batch transactions
- Desktop and mobile compatible
- EIP-4337 account abstraction using passkeys
-
Coinbase Wallet mobile for Android and iOS
- 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
-
Coinbase Wallet extension for Chrome and Brave
- Desktop: Users can connect by clicking the connect with extension option.
Migrating from v3 to v4? Please see our v4 migration guide for a full list of breaking changes.
- This readme contains brief instructions to get up and running.
- Visit our public developer docs for more detail, including samples for integrating Coinbase Wallet using libraries like web3-react, web3modal, Web3-Onboard, and wagmi.
-
Check available versions:
# yarn yarn info @coinbase/wallet-sdk versions # npm npm view @coinbase/wallet-sdk versions
-
Install latest version:
# yarn yarn add @coinbase/wallet-sdk # npm npm install @coinbase/wallet-sdk
-
Check installed version:
# yarn yarn list @coinbase/wallet-sdk # npm npm list @coinbase/wallet-sdk
Upgrade Coinbase Wallet SDK using yarn or npm.
-
Compare installed version with latest:
# yarn yarn outdated @coinbase/wallet-sdk # npm npm outdated @coinbase/wallet-sdk
-
Update to latest:
# yarn yarn upgrade @coinbase/wallet-sdk --latest # npm npm update @coinbase/wallet-sdk
-
Initialize SDK
const sdk = new CoinbaseWalletSDK({ appName: 'SDK Playground', });
-
Make web3 Provider
const provider = sdk.makeWeb3Provider();
-
Request accounts to initialize connection to wallet
const addresses = provider.request('eth_requestAccounts');
-
Make more requests
provider.request('personal_sign', [ `0x${Buffer.from('test message', 'utf8').toString('hex')}`, addresses[0], ]);
See more example methods in apps/testapp/src/components/RpcMethods/method
-
Handle provider events
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); });
-
The Coinbase Wallet SDK test dapp can be viewed here https://coinbase.github.io/coinbase-wallet-sdk/.
-
To run it locally follow these steps:
- Fork this repo and clone it
- From the root dir run
yarn install
cd apps/testapp && yarn install
to install testapp dependencies- From the root dir run
yarn dev
- starts two dev servers in parallel:
@coinbase/wallet-sdk-testapp
@coinbase/wallet-sdk
- Visit localhost:3001 in your browser to view the testapp
- eth-rpc-errors under the MIT license