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

# Packages

> An overview of every npm package published by CCC and when to use each one.

CCC is a monorepo. Each published npm package targets a specific use case, so you only ship the code your app actually needs.

All packages expose their public API through a single `ccc` object:

```typescript theme={null}
import { ccc } from "@ckb-ccc/<package-name>";
```

This pattern enables IDE auto-completion across the entire SDK while keeping individual bundles lean through tree-shaking.

<Note>
  For tree-shaking to work, set `moduleResolution` to `node16`, `nodenext`, or `bundler` in your `tsconfig.json`, and make sure `resolvePackageJsonExports` is not disabled. See the [TypeScript guide](https://www.typescriptlang.org/docs/handbook/modules/reference.html#packagejson-exports) for details.
</Note>

## Available packages

<CardGroup cols={2}>
  <Card title="@ckb-ccc/ccc" icon="box" href="/packages/overview#ckb-ccc-ccc">
    Full SDK bundle with a built-in wallet connector UI. The fastest way to ship a complete CKB dApp.
  </Card>

  <Card title="@ckb-ccc/connector-react" icon="react" href="/packages/connector-react">
    React `Provider` component and hooks (`useCcc`, `useSigner`) for wallet connection in React apps.
  </Card>

  <Card title="@ckb-ccc/connector" icon="plug" href="/packages/overview#ckb-ccc-connector">
    Framework-agnostic Web Component connector. Works in any HTML page or non-React framework.
  </Card>

  <Card title="@ckb-ccc/shell" icon="terminal" href="/packages/shell">
    Node.js / scripting bundle. All core CCC types and transaction helpers — no browser UI.
  </Card>

  <Card title="@ckb-ccc/spore" icon="image" href="/packages/spore">
    Spore Protocol NFT SDK. Create, transfer, melt, and query on-chain Spore cells.
  </Card>

  <Card title="@ckb-ccc/udt" icon="coins" href="/packages/udt">
    User Defined Token (UDT) SDK. Mint, transfer, and query SSRI-compliant tokens and legacy xUDT.
  </Card>

  <Card title="@ckb-ccc/lumos-patches" icon="wrench" href="/packages/lumos-patches">
    Patches for Lumos that add JoyID, Nostr, and Portal wallet support.
  </Card>

  <Card title="@ckb-ccc/core" icon="cpu" href="/packages/overview#ckb-ccc-core">
    Low-level types, codecs, and primitives. Usually consumed indirectly through other packages.
  </Card>
</CardGroup>

## Package details

### @ckb-ccc/ccc

The all-in-one package. Install this when you want the full CCC experience — including the built-in connector UI — without choosing individual packages.

```bash theme={null}
npm install @ckb-ccc/ccc
```

```typescript theme={null}
import { ccc } from "@ckb-ccc/ccc";
```

### @ckb-ccc/connector-react

The recommended choice for React and Next.js applications. Ships a `Provider` component and two hooks that give every component in your tree access to the connected wallet.

```bash theme={null}
npm install @ckb-ccc/connector-react
```

See the full [connector-react reference](/packages/connector-react).

### @ckb-ccc/connector

A standards-based Web Component that embeds the wallet selection UI without requiring React or any other framework.

```bash theme={null}
npm install @ckb-ccc/connector
```

### @ckb-ccc/shell

A headless bundle for Node.js scripts, CLI tools, and backend services. Includes all of CCC's core types and transaction helpers but no DOM or browser dependencies.

```bash theme={null}
npm install @ckb-ccc/shell
```

See the full [shell reference](/packages/shell).

### @ckb-ccc/spore

Implements the [Spore Protocol](https://docs.spore.pro/) on top of CCC. Use it to create and manage fully on-chain NFTs.

```bash theme={null}
npm install @ckb-ccc/spore
```

See the full [spore reference](/packages/spore).

### @ckb-ccc/udt

Provides the `Udt` and `UdtPausable` classes for working with CKB User Defined Tokens, supporting both SSRI-compliant UDTs and legacy sUDT/xUDT.

```bash theme={null}
npm install @ckb-ccc/udt
```

See the full [udt reference](/packages/udt).

### @ckb-ccc/lumos-patches

Provides Lumos compatibility patches so that existing Lumos applications can sign with JoyID, Nostr, and Portal wallets.

```bash theme={null}
npm install @ckb-ccc/lumos-patches
```

See the full [lumos-patches reference](/packages/lumos-patches).

### @ckb-ccc/core

The foundational layer. Defines all shared types (`Client`, `Signer`, `Transaction`, `Script`, …), codecs, and utilities. You rarely install this directly — the higher-level packages re-export everything you need.

```bash theme={null}
npm install @ckb-ccc/core
```

## Advanced entry point

Every package also exposes an `advanced` entry point that exports `cccA`. It contains internal implementation details that are not covered by the stability guarantee:

```typescript theme={null}
import { cccA } from "@ckb-ccc/<package-name>/advanced";
```

Only use this if you need to customize behaviour at a level the public API does not expose.
