> ## Documentation Index
> Fetch the complete documentation index at: https://docs.picon.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Installing @picon-finance/dlmm-sdk and its runtime requirements

```bash theme={null}
bun add @picon-finance/dlmm-sdk
```

```bash theme={null}
yarn add @picon-finance/dlmm-sdk
```

```bash theme={null}
npm install @picon-finance/dlmm-sdk
```

The SDK is built on [`@solana/kit`](https://github.com/anza-xyz/kit), MIT licensed, and
published as ESM only.

## Environment support

The package targets ESM (`"type": "module"`), but its ESM resolution has real limitations —
supported consumption splits into two scenarios:

<CardGroup cols={2}>
  <Card title="Server-side" icon="server">
    Node scripts, tests, tooling: **use [Bun](https://bun.sh)**.
  </Card>

  <Card title="Client-side" icon="browser">
    Anything bundler-fronted (webpack, Vite, Rollup, ...): **works as-is**. Webpack specifically
    needs `resolve.fullySpecified: false` on `.m?js$`; most other bundlers are lenient by
    default.
  </Card>
</CardGroup>

<Warning>
  **Not currently supported: bare `node` with no Bun and no bundler in front of it.**
</Warning>

## Why the split exists

Part of the SDK — the swap-quote engine — is a Rust crate compiled to WebAssembly and shipped
inside the package (see [Quoting without the SDK](/integrations/quoting-without-the-sdk) for
what that crate does standalone). Loading that WASM module correctly across Bun, bundlers, and
bare Node's differing ESM/module resolution behavior is exactly the kind of thing that's easy
to get right for two of the three and miss for the third — bare Node is the one that isn't
currently verified working, so treat it as unsupported until it's explicitly documented
otherwise, even though nothing prevents trying it.
