Giter Site home page Giter Site logo

jacekdaa / coinbase-wallet-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from coinbase/coinbase-wallet-sdk

0.0 0.0 0.0 24.39 MB

An open protocol that lets users connect their mobile wallets to your DApp

Home Page: https://coinbase.github.io/coinbase-wallet-sdk/

License: MIT License

Shell 0.38% JavaScript 6.67% TypeScript 90.39% SCSS 2.56%

coinbase-wallet-sdk's Introduction

Coinbase Wallet SDK

npm npm

If you'd like to build a dapp for Coinbase smart wallet using our latest beta, check out our step by step instructions to build a dapp for Coinbase smart wallet using Coinbase Wallet SDK v4 beta and wagmi.

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

  1. 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
  2. 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
  3. Coinbase Wallet extension for Chrome and Brave

    • Desktop: Users can connect by clicking the connect with extension option.

Installing and Upgrading

Migrating from v3 to v4? Please see our v4 migration guide for a full list of breaking changes.

Installing Wallet SDK

  1. Check available versions:

      # yarn
      yarn info @coinbase/wallet-sdk versions
    
      # npm
      npm view @coinbase/wallet-sdk versions
  2. Install latest version:

    # yarn
    yarn add @coinbase/wallet-sdk
    
    # npm
    npm install @coinbase/wallet-sdk
  3. Check installed version:

    # 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:

    # yarn
    yarn outdated @coinbase/wallet-sdk
    
    # npm
    npm outdated @coinbase/wallet-sdk
  2. Update to latest:

    # yarn
    yarn upgrade @coinbase/wallet-sdk --latest
    
    # npm
    npm update @coinbase/wallet-sdk

Basic Usage

  1. Initialize SDK

    const sdk = new CoinbaseWalletSDK({
      appName: 'SDK Playground',
    });
  2. Make web3 Provider

    const provider = sdk.makeWeb3Provider();
  3. Request accounts to initialize connection to wallet

    const addresses = provider.request('eth_requestAccounts');
  4. 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

  5. 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);
    });

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
    2. From the root dir run yarn install
    3. cd apps/testapp && yarn install to install testapp dependencies
    4. From the root dir run yarn dev
    • starts two dev servers in parallel:
      • @coinbase/wallet-sdk-testapp
      • @coinbase/wallet-sdk
    1. Visit localhost:3001 in your browser to view the testapp

Attributions

coinbase-wallet-sdk's People

Contributors

aarsenault avatar amitgoelny avatar andrewgold avatar arjun-dureja avatar bangtoven avatar brendanww avatar brianchitester avatar cb-jake avatar cb-kfroemming avatar cb-pedro-rosario avatar dependabot[bot] avatar erin-at-work avatar fan-zhang-sv avatar gareys-cb avatar gbarr01 avatar github-actions[bot] avatar hieronymus777 avatar jakepanitz avatar jeongmincho avatar ljharb avatar lukasrosario avatar natereiners avatar pedrorosarioo avatar petejkim avatar ryantimesten avatar shanamatthews avatar spencerstock avatar vishnumad avatar vladimirmikulic avatar willn-cb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.