---
title: "Nimiq Web Client ESM Integration"
description: "Use the Nimiq Web Client with native ES modules in modern browsers without a bundler."
canonical_url: "https://nimiq.dev/web-client/integrations/esm"
---
# Nimiq Web Client ESM Integration

> Use the Nimiq Web Client with native ES modules in modern browsers without a bundler.

Use this approach when you're serving JavaScript directly to the browser without a bundler — for example, from a plain HTML file, a CDN, or a static site. If you're using Vite, Nuxt, or Next.js, use their dedicated integration instead.

The ESM build (`@nimiq/core/web`) requires a manual `init()` call to load the WebAssembly module. See [Browser vs Server](https://nimiq.dev/web-client/concepts/browser-vs-server) for details on the different build targets.

## Installation

<code-group>

```bash [pnpm]
pnpm add @nimiq/core
```

```bash [npm]
npm install @nimiq/core
```

```bash [yarn]
yarn add @nimiq/core
```

```bash [bun]
bun add @nimiq/core
```

</code-group>

## Configuration

No additional configuration needed! ESM works out of the box in modern browsers and bundlers that support ES modules.

## Usage Example

```js
import init, { Client, ClientConfiguration } from '@nimiq/core/web'

await init()

const config = new ClientConfiguration()
const client = await Client.create(config.build())

await client.waitForConsensusEstablished()
```

## Next steps

Once your client is connected, see the [guides](https://nimiq.dev/web-client/guides/query-the-blockchain) to start building. For other integration options, see [Vite](https://nimiq.dev/web-client/integrations/vite), [Nuxt](https://nimiq.dev/web-client/integrations/nuxt), [Next.js](https://nimiq.dev/web-client/integrations/nextjs), or [CommonJS](https://nimiq.dev/web-client/integrations/commonjs).


## Sitemap

See the full [sitemap](https://nimiq.dev/sitemap.md) for all pages.
