Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ckb-devrel/ccc/llms.txt

Use this file to discover all available pages before exploring further.

CCC ships as a collection of focused npm packages. Install only what your project requires.
Most projects need just one entry-point package. Use @ckb-ccc/shell for Node.js, @ckb-ccc/connector-react for React apps, or @ckb-ccc/ccc when you want to build a fully custom wallet UI.

Packages

@ckb-ccc/core

Low-level CKB primitives: Transaction, Signer, Client, Address, Script, and all encoding utilities.

@ckb-ccc/shell

Node.js / backend usage. Includes core, spore, udt, and ssri — everything you need for server-side scripts.

@ckb-ccc/ccc

All-in-one bundle with all wallet integrations. Use for custom UI or when you need every wallet available in a single import.

@ckb-ccc/connector

Framework-agnostic Web Component connector. Drop a <ccc-connector> element into any HTML page.

@ckb-ccc/connector-react

React Provider component and useCcc() hook for wallet integration with minimal boilerplate.

@ckb-ccc/spore

Spore Protocol SDK — create, transfer, and melt on-chain digital objects (DOBs) and clusters.

@ckb-ccc/udt

UDT and xUDT token SDK — issue, transfer, and mint User Defined Tokens on CKB.

@ckb-ccc/ssri

SSRI (Script-Sourced Rich Information) protocol support for interacting with CKB smart contracts.

@ckb-ccc/lumos-patches

Compatibility patches that enable the Lumos SDK to work with JoyID, Nostr, and Portal wallets.

@ckb-ccc/joy-id

JoyID passkey-based wallet integration — no seed phrase required.

@ckb-ccc/eip6963

EIP-6963 multi-wallet discovery for EVM wallets such as MetaMask and Rabby.

@ckb-ccc/nip07

Nostr NIP-07 wallet integration for signing with Nostr browser extensions.

Package reference

PackagePurposeInstall
@ckb-ccc/coreCKB primitives and encodingnpm install @ckb-ccc/core
@ckb-ccc/shellNode.js / backend scriptingnpm install @ckb-ccc/shell
@ckb-ccc/cccAll-in-one for custom UInpm install @ckb-ccc/ccc
@ckb-ccc/connectorWeb Component connectornpm install @ckb-ccc/connector
@ckb-ccc/connector-reactReact connectornpm install @ckb-ccc/connector-react
@ckb-ccc/sporeSpore Protocol SDKnpm install @ckb-ccc/spore
@ckb-ccc/udtUDT / xUDT token SDKnpm install @ckb-ccc/udt
@ckb-ccc/ssriSSRI protocolnpm install @ckb-ccc/ssri
@ckb-ccc/lumos-patchesLumos compatibilitynpm install @ckb-ccc/lumos-patches
@ckb-ccc/joy-idJoyID walletnpm install @ckb-ccc/joy-id
@ckb-ccc/eip6963EVM wallets (EIP-6963)npm install @ckb-ccc/eip6963
@ckb-ccc/nip07Nostr NIP-07 walletnpm install @ckb-ccc/nip07

Import pattern

All packages expose their public API on a single ccc namespace object:
import { ccc } from "@ckb-ccc/<package-name>";
Advanced (unstable) APIs are available on cccA:
import { cccA } from "@ckb-ccc/<package-name>/advanced";
Your tsconfig.json must set moduleResolution to node16, nodenext, or bundler and must not disable resolvePackageJsonExports. CCC uses Package Entry Points for tree shaking.

Build docs developers (and LLMs) love