Passwordless authentication for the web.
npm install magic-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
- 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.
Integrating your app with Magic will require our client-side NPM package:
``bashVia 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
Alternatively, you can load via CDN by adding a script tag to your app’s
:`html
`$3
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.
`ts
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
$3
These are packages _you_ can install to enable Magic JS SDK functionality for your client-side application.
| Package Name | Changelog | Description |
| ------------ | --------- | ----------- |
|
magic-sdk | CHANGELOG | Web/browser entry-point for Magic SDK. |
| @magic-sdk/react-native-bare | CHANGELOG | Bare React Native entry-point for Magic SDK. |
| @magic-sdk/react-native-expo | CHANGELOG | Expo React Native entry-point for Magic SDK. |Extensions
@magic-ext/* packages.$3
These are packages Magic JS SDK uses internally to work seamlessly across platforms.
| Package Name | Changelog | Description |
| ------------ | --------- | ----------- |
|
@magic-sdk/types | CHANGELOG | Core typings shared between JavaScript entry-points of Magic SDK. |
| @magic-sdk/pnp | CHANGELOG | A lightweight connector that wraps Magic JS authentication with a beautiful, functional out-of-the-box login form. |
| @magic-sdk/provider | CHANGELOG | Core business logic shared between JavaScript entry-points of Magic SDK. |
| @magic-sdk/commons | CHANGELOG | Exposes a listing of common public APIs from @magic-sdk/provider and @magic-sdk/types to the platform-specific entry points. |
| @magic-sdk/types | CHANGELOG | Core typings for Magic SDK packages. |🚦 Testing
Run tests for all packages
`bash
yarn test
`Test an individual package
`bash
PKG=magic-sdk yarn test
PKG=@magic-sdk/react-native-bare yarn test
PKG=@magic-sdk/react-native-expo yarn test
`Test specific files
`bash
yarn test /test/**/constructor.spec.ts
``