iCKB Stack is the monorepo for the current TypeScript iCKB libraries and apps built on top of CCC.
@ickb/sdk stops at protocol-specific transaction construction. It returns partial ccc.Transaction values and does not finalize iCKB UDT balance, CKB capacity, or fees on behalf of the caller.
Callers own the final completion pipeline:
- Use
getConfig(...).managers.ickbUdtto finish iCKB UDT completion. - Then run CCC-native CKB capacity and fee completion.
- Only then send the transaction.
The shared CCC baseline lives in forks/ccc/pin/ and materializes into forks/ccc/repo/.
Prerequisites: git and jq.
From a plain checkout:
git clone git@github.com:ickb/stack.git && cd stack
pnpm forks:bootstrap
pnpm install
pnpm forks:ccc
pnpm checkpnpm check is the validation gate. It always runs with CI=true.
pnpm forks:ccc computes the local CCC build surface from the stack's direct @ckb-ccc/* dependencies and their current CCC dependency closure, so it avoids rebuilding unrelated packages like ckb-ccc, @ckb-ccc/connector, @ckb-ccc/connector-react, and @ckb-ccc/lumos-patches.
To inspect that current CCC surface without building anything:
pnpm forks:ccc:planFor machine-readable inspection, use pnpm -s forks:ccc --json.
For active CCC work, keep built output fresh with:
pnpm forks:ccc --watchWatch mode keeps the ESM dist/ output fresh for the closure's tsc packages, including @ckb-ccc/spore, and prebuilds @ckb-ccc/did-ckb plus @ckb-ccc/type-id once so @ckb-ccc/shell and @ckb-ccc/ccc keep resolving against built output. If you change either tsdown package, rerun pnpm forks:ccc.
For quick consumer-context sanity checks after rebuilding CCC:
pnpm forks:ccc:smokeThat smoke path verifies the current direct Stack import surface through real consumers: @ckb-ccc/core from @ickb/utils, @ckb-ccc/udt from @ickb/core, and @ckb-ccc/ccc from apps/interface.
If you add a new direct @ckb-ccc/* dependency to any stack package, add the matching root override in pnpm-workspace.yaml. pnpm check:ccc-overrides enforces this.
If you need to update or save the shared CCC baseline, use forks/phroi_forker/repo/ directly. forks/ccc/pin/manifest is the source of truth for the shared upstream refs.
This source code, crafted with care by Phroi, is freely available on GitHub and it is released under the MIT License.