Packages

Core Packages

Foundational packages — core primitives, aggregated entry points, and wallet connectors.

Edit on GitHub

The Core Packages are the backbone of CCC. They provide the CKB primitives every higher-level package depends on, plus the aggregated entry points and connectors most applications consume directly.

Most projects only need one of these packages as their entry point. Pick by environment: @ckb-ccc/shell for Node.js, @ckb-ccc/connector-react for React apps, @ckb-ccc/connector for any other browser framework, or @ckb-ccc/ccc when you want every wallet bundled and plan to build a fully custom UI.

PackageEnvironmentIncludesUse when
@ckb-ccc/coreAnyCKB primitives onlyYou're authoring a library or want minimal footprint
@ckb-ccc/shellNode.jscore + spore + udt + ssriBackend scripts, indexers, server-side transactions
@ckb-ccc/cccBrowsercore + all wallet signers + protocol SDKsCustom wallet UI in any browser app
@ckb-ccc/connectorBrowserWeb Component connector UIVanilla JS / Vue / Svelte / Angular apps
@ckb-ccc/connector-reactBrowser (React)Provider, useCcc, useSignerReact or Next.js apps

Layering

Every package re-exports its dependencies on the same ccc namespace, so application code only ever imports from a single entry point:

import { ccc } from "@ckb-ccc/connector-react"; // or shell / ccc / core

Choosing an entry point

  • Building a React dApp? Start with @ckb-ccc/connector-react — it gives you a ready-made wallet selection modal plus hooks.
  • Building with another browser framework? Use @ckb-ccc/connector and drop the <ccc-connector> Web Component into your page.
  • Need a custom wallet UI? Use @ckb-ccc/ccc for full control over connection flow.
  • Running in Node.js? Use @ckb-ccc/shell — it ships CommonJS / ESM builds without browser-only wallet code.
  • Authoring a library? Depend on @ckb-ccc/core only and let consumers pick their own entry point.

On this page