# @magic-ext/cosmos

> magic cosmos extension

Latest version **28.12.0** (published 2026-09-01) · MIT license · 1.2K weekly downloads

## Install

```sh
npm install @magic-ext/cosmos
pnpm add @magic-ext/cosmos
yarn add @magic-ext/cosmos
bun add @magic-ext/cosmos
```

## Health

**Score 80/100 (A)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

## Facts

| | |
|---|---|
| Version | 28.12.0 |
| Published | 2026-09-01 |
| First published | 2021-04-28 |
| Weekly downloads | 1.2K |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 25.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (Unknown) |
| GitHub stars | 476 |
| Author | Magic |
| Maintainers | ethella, jasonatmagic, magiclabs_fe, noahyoshida, ernieyang09, josh_scanlan |

## Links

- npm: https://www.npmjs.com/package/@magic-ext/cosmos
- Repository: https://github.com/magiclabs/magic-js
- Homepage: https://github.com/magiclabs/magic-js#readme
- Issues: https://github.com/magiclabs/magic-js/issues
- npm.io page: https://npm.io/package/@magic-ext/cosmos

## Recent versions

- 28.12.0 (latest) — 2026-09-01
- 28.12.0-canary.88f8a7c.0 (canary) — 2026-09-01
- 28.12.0-canary.1127.33539959419.0 — 2026-09-01
- 28.11.0 — 2026-08-26
- 28.11.0-canary.8ab4816.0 — 2026-08-26
- 28.11.0-canary.1125.32991648608.0 — 2026-08-26
- 28.10.0 — 2026-08-25
- 28.10.0-canary.5c46f47.0 — 2026-08-25
- 28.10.0-canary.1124.32876468895.0 — 2026-08-25
- 28.9.3-canary.1111.31717158054.0 — 2026-08-13
- 28.9.3-canary.1111.31664883805.0 — 2026-08-13
- 28.9.1-canary.1109.31539218924.0 — 2026-08-12
- 28.9.2 — 2026-08-12
- 28.9.2-canary.cc406ba.0 — 2026-08-12
- 28.9.2-canary.1110.31607645687.0 — 2026-08-12
- … 1110 more at https://npm.io/package/@magic-ext/cosmos/versions

## README

<p align="left">
    <a href="https://docs.magic.link/home/welcome">
      <img src="https://media.graphassets.com/T9TXZhcNRVm211eyMh3u" alt="Logo" width="270" height="auto">
    </a>
  </p>

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

<p align="center">
  <a href="https://github.com/magiclabs/magic-js/blob/master/LICENSE">License</a> ·
  <a href="https://github.com/magiclabs/magic-js/blob/master/CHANGELOG.md">Changelog</a> ·
  <a href="https://github.com/magiclabs/magic-js/blob/master/CONTRIBUTING.md">Contributing Guide</a>
</p>

## 📖 Documentation

- See the [developer documentation](https://docs.magic.link) to learn how you can master the Magic SDK in a matter of minutes.
- See the `@magic-sdk/react-native-bare` [README](https://github.com/magiclabs/magic-js/tree/master/packages/%40magic-sdk/react-native-bare#readme) for Bare React Native package specific information.
- See the `@magic-sdk/react-native-expo` [README](https://github.com/magiclabs/magic-js/tree/master/packages/%40magic-sdk/react-native-expo#readme) for Expo React Native package specific information.

## ⚡️ Quickstart

### Installation

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

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

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

### Usage

Sign up or log in to the [developer dashboard](https://dashboard.magic.link) 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 { ethers } from 'ethers';

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

const provider = new ethers.BrowserProvider(magic.rpcProvider);
const accounts = await magic.wallet.connectWithUI();
```

With network switching:

> Network switching is available on web SDK version 31.0.0+ and React Native SDKs version 32.0.0+

```ts
import { Magic } from 'magic-sdk';
import { SolanaExtension } from '@magic-ext/solana';
import { EVMExtension } from '@magic-ext/evm';
import { ethers } from 'ethers';

const customPolygonOptions = {
  rpcUrl: 'https://polygon-rpc.com/', // Polygon RPC URL
  chainId: 137, // Polygon chain id
  default: true, // Set as default network
};

const customOptimismOptions = {
  rpcUrl: 'https://mainnet.optimism.io',
  chainId: 10,
};

const magic = new Magic(API_KEY, {
  extensions: [
    new EVMExtension([customPolygonOptions, customOptimismOptions]),
    new SolanaExtension({
      rpcUrl: 'https://api.devnet.solana.com',
    }),
  ],
});

const provider = new ethers.BrowserProvider(magic.rpcProvider);

const network = await provider.getNetwork();
console.log(network.chainId); // => 137

magic.evm.switchChain(10);

const network = await provider.getNetwork();
console.log(network.chainId); // => 10

const solanaPublicAddress = await magic.solana.getPublicAddress();
console.log(solanaPublicAddress); // => "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
```

## 📦 Package Ecosystem

### Entry points

These are packages you can install to enable Magic JS SDK functionality for your client-side application.

| Package Name                                                                                 | Changelog                                                         | Description                                  |
| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------- |
| [`magic-sdk`](https://www.npmjs.com/package/magic-sdk)                                       | [CHANGELOG](./packages/magic-sdk/CHANGELOG.md)                    | Web/browser entry-point for Magic SDK.       |
| [`@magic-sdk/react-native-bare`](https://www.npmjs.com/package/@magic-sdk/react-native-bare) | [CHANGELOG](./packages/@magic-sdk/react-native-bare/CHANGELOG.md) | Bare React Native entry-point for Magic SDK. |
| [`@magic-sdk/react-native-expo`](https://www.npmjs.com/package/@magic-sdk/react-native-expo) | [CHANGELOG](./packages/@magic-sdk/react-native-expo/CHANGELOG.md) | Expo React Native entry-point for Magic SDK. |

## Extensions

Extend Magic JS SDK functionality for your use-case through [`@magic-ext/*` packages](./packages/@magic-ext).

### Internals

These are packages Magic JS SDK uses internally to work seamlessly across platforms.

| Package Name                                                               | Changelog                                                | Description                                                              |
| -------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------ |
| [`@magic-sdk/types`](https://www.npmjs.com/package/@magic-sdk/types)       | [CHANGELOG](./packages/@magic-sdk/types/CHANGELOG.md)    | Core typings shared between JavaScript entry-points of Magic SDK.        |
| [`@magic-sdk/provider`](https://www.npmjs.com/package/@magic-sdk/provider) | [CHANGELOG](./packages/@magic-sdk/provider/CHANGELOG.md) | Core business logic shared between JavaScript entry-points of Magic SDK. |

## 🚦 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
```

---
_Source: https://npm.io/package/@magic-ext/cosmos · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
