Packages

@ckb-ccc/ccc

All-in-one browser bundle — core primitives, all wallet signers, and protocol SDKs in a single ccc namespace.

Edit on GitHub

@ckb-ccc/ccc is the all-in-one package for browser environments. It bundles @ckb-ccc/core with every wallet signer and protocol package into a single ccc namespace. Use it when you want full wallet discovery but prefer to build your own connection UI instead of using the built-in connector modal.

When to use this package

ScenarioPackage
React app with built-in wallet modal@ckb-ccc/connector-react
Non-React frontend with built-in modal@ckb-ccc/connector
Custom wallet UI (no built-in modal)@ckb-ccc/ccc ← you are here
Node.js backend or script@ckb-ccc/shell

Installation

@ckb-ccc/ccc npm version@ckb-ccc/ccc npm downloads per week
npm install @ckb-ccc/ccc
yarn add @ckb-ccc/ccc
pnpm add @ckb-ccc/ccc

What's included

@ckb-ccc/ccc re-exports everything from:

Sub-packageNamespaceContents
@ckb-ccc/joy-idccc.*JoyID wallet signer
@ckb-ccc/eip6963ccc.*MetaMask, Rabby, and any EIP-6963 wallet
@ckb-ccc/uni-satccc.*UniSat Bitcoin wallet signer
@ckb-ccc/okxccc.*OKX wallet signer (BTC + Nostr)
@ckb-ccc/xverseccc.*Xverse / SATS Connect wallet signer
@ckb-ccc/nip07ccc.*NIP-07 Nostr extension signer
@ckb-ccc/reiccc.*REI CKB-native wallet signer
@ckb-ccc/utxo-globalccc.*UTXO Global wallet signer (CKB + BTC + DOGE)

It also adds one package-level export:

  • SignersController — discovers and manages the lifecycle of all available wallet signers automatically.

Usage

import { ccc } from "@ckb-ccc/ccc";

const client = new ccc.ClientPublicTestnet();

// Discover all wallets available in the current browser environment
const controller = new ccc.SignersController(client);
controller.subscribeSigners((signerInfo) => {
  console.log(`Found wallet: ${signerInfo.name}`);
});

// Or instantiate a specific signer directly
const signer = new ccc.SignerCkbPrivateKey(client, "0x...");
await signer.connect();
const balance = await signer.getBalance();

Advanced exports

import { cccA } from "@ckb-ccc/ccc/advanced";

cccA exposes internal APIs that may change between minor versions without notice. Only reach for them when the stable ccc API doesn't cover your use case.

Last updated on

On this page