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

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

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

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:
Only use this if you need to customize behaviour at a level the public API does not expose.