Skip to main content
CCC (CKBers’ Codebase) is the official TypeScript/JavaScript SDK for the CKB (Nervos Network) blockchain. It gives you everything you need to connect wallets from multiple chains, compose and sign transactions, and work with CKB-native protocols like UDT tokens and Spore NFTs.

Quick Start

Bootstrap a new CKB app or install CCC into an existing project in minutes.

Installation

Choose the right package for your use case — React, Node.js, or custom UI.

Connect Wallets

Integrate CCC’s wallet connector to support MetaMask, JoyID, UniSat, OKX, and more.

Send CKB

Compose and broadcast your first CKB transfer transaction.

What you can build

Multi-Wallet Apps

One connector component reaches users from EVM, BTC, Nostr, and native CKB wallets.

Token Transfers

Mint, transfer, and query UDT (User Defined Token) balances on CKB.

On-Chain NFTs

Create, transfer, and melt Spore Protocol NFTs stored entirely on-chain.

Blockchain Data

Query blocks, cells, and transactions from mainnet or testnet using the CCC Client.

Get started in three steps

1

Install CCC

Pick the package that fits your stack and install it.
npm install @ckb-ccc/connector-react   # React apps
npm install @ckb-ccc/shell             # Node.js / scripts
npm install @ckb-ccc/ccc              # Custom UI
2

Connect a wallet

Wrap your app in the Provider and call open() to show the wallet selector.
import { ccc } from "@ckb-ccc/connector-react";

export function App() {
  return (
    <ccc.Provider>
      <YourApp />
    </ccc.Provider>
  );
}
3

Send your first transaction

Use the Signer to compose and broadcast a CKB transfer.
const tx = ccc.Transaction.from({
  outputs: [{ lock: toLock, capacity: ccc.fixedPointFrom("100") }],
});
await tx.completeInputsByCapacity(signer);
await tx.completeFeeBy(signer);
const txHash = await signer.sendTransaction(tx);
Try CCC instantly in the browser — no setup required — at live.ckbccc.com.