Skip to content

Magic browser/React Native JavaScript SDK is your entry-point to integrating passwordless authentication inside your application.

License

Notifications You must be signed in to change notification settings

magiclabs/magic-js

Repository files navigation

Logo

Magic JavaScript SDK

<MagicLabs>

The Magic JavaScript SDK empowers developers to provide frictionless web3 onboarding to their end-users while preserving their security and privacy using non-custodial wallets.

License · Changelog · Contributing Guide

📖 Documentation

  • See the developer documentation to learn how you can master the Magic SDK in a matter of minutes.
  • See the @magic-sdk/react-native-bare README for Bare React Native package specific information.
  • See the @magic-sdk/react-native-expo README for Expo React Native package specific information.

⚡️ Quick Start

Installation

Integrating your app with Magic will require our client-side NPM package:

# Via NPM:
npm install --save magic-sdk # If you're targeting web browsers
npm install --save @magic-sdk/react-native-bare # If you're targeting Bare React Native
npm install --save @magic-sdk/react-native-expo # If you're targeting Expo React Native

# Via Yarn:
yarn add magic-sdk # If you're targeting web browsers
yarn add @magic-sdk/react-native-bare # If you're targeting Bare React Native
yarn add @magic-sdk/react-native-expo # If you're targeting Expo React Native

Alternatively, you can load via CDN by adding a script tag to your app’s <head>:

<script src="https://cdn.jsdelivr.net/npm/magic-sdk/dist/magic.js"></script>

Usage

Sign up or log in to the developer dashboard to receive API keys that will allow your application to interact with Magic's authentication APIs.

Then, you can start authenticating users with just one method! Magic works across all modern desktop, mobile Chrome, Safari and Firefox browsers.

import { Magic } from 'magic-sdk';
import Web3 from 'web3';

const magic = new Magic('YOUR_API_KEY', {
  network: 'goerli',
});

const web3 = new Web3(magic.rpcProvider);
const accounts = await magic.wallet.