Skip to main content
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:
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.
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 for details.

Available packages

@ckb-ccc/ccc

Full SDK bundle with a built-in wallet connector UI. The fastest way to ship a complete CKB dApp.

@ckb-ccc/connector-react

React Provider component and hooks (useCcc, useSigner) for wallet connection in React apps.

@ckb-ccc/connector

Framework-agnostic Web Component connector. Works in any HTML page or non-React framework.

@ckb-ccc/shell

Node.js / scripting bundle. All core CCC types and transaction helpers — no browser UI.

@ckb-ccc/spore

Spore Protocol NFT SDK. Create, transfer, melt, and query on-chain Spore cells.

@ckb-ccc/udt

User Defined Token (UDT) SDK. Mint, transfer, and query SSRI-compliant tokens and legacy xUDT.

@ckb-ccc/lumos-patches

Patches for Lumos that add JoyID, Nostr, and Portal wallet support.

@ckb-ccc/core

Low-level types, codecs, and primitives. Usually consumed indirectly through other packages.

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.
npm install @ckb-ccc/ccc
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.
npm install @ckb-ccc/connector-react
See the full connector-react reference.

@ckb-ccc/connector

A standards-based Web Component that embeds the wallet selection UI without requiring React or any other framework.
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.
npm install @ckb-ccc/shell
See the full shell reference.

@ckb-ccc/spore

Implements the Spore Protocol on top of CCC. Use it to create and manage fully on-chain NFTs.
npm install @ckb-ccc/spore
See the full spore reference.

@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.
npm install @ckb-ccc/udt
See the full udt reference.

@ckb-ccc/lumos-patches

Provides Lumos compatibility patches so that existing Lumos applications can sign with JoyID, Nostr, and Portal wallets.
npm install @ckb-ccc/lumos-patches
See the full lumos-patches reference.

@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.
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:
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.