Magic JavaScript SDK
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:
npm install --save magic-sdk
npm install --save @magic-sdk/react-native-bare
npm install --save @magic-sdk/react-native-expo
yarn add magic-sdk
yarn add @magic-sdk/react-native-bare
yarn add @magic-sdk/react-native-expo
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.connectWithUI();
📦 Package Ecosystem
Entry points
These are packages you can install to enable Magic JS SDK functionality for your client-side application.
Extensions
Extend Magic JS SDK functionality for your use-case through @magic-ext/*
packages.
Internals
These are packages Magic JS SDK uses internally to work seamlessly across platforms.
🚦 Testing
Run tests for all packages
yarn test
Test an individual package
PKG=magic-sdk yarn test
PKG=@magic-sdk/react-native-bare yarn test
PKG=@magic-sdk/react-native-expo yarn test
Test specific files
yarn test /test/**/constructor.spec.ts