CCC Docs
    Preparing search index...

    Module @ckb-ccc xverse

    Logo

    CCC's support for Xverse

    NPM Version GitHub commit activity GitHub last commit GitHub branch check runs Playground App Docs

    CCC - CKBers' Codebase is a one-stop solution for your CKB JS/TS ecosystem development.
    Empower yourself with CCC to discover the unlimited potential of CKB.
    Interoperate with wallets from different chain ecosystems.
    Fully enabling CKB's Turing completeness and cryptographic freedom power.

    Check the package documentation and API reference for more details.

    Read more about CCC on our website or GitHub Repo.

    signPsbt binds the wallet response to the requested transaction, input order, outputs, locktime, and previously supplied UTXO data. Actual ECDSA and Schnorr signature hash modes must match the input declaration and any caller allowlist for new or replaced signatures. These checks also run with autoFinalized: false. Other participants' unchanged signatures are not subject to the caller allowlist. Responses that remove an existing signature are rejected. Explicit non-default hash modes remain supported.

    Wallets must return an unfinalized PSBT. Existing, unchanged finalized inputs are preserved, but newly added or changed final scripts are rejected. Missing trusted UTXO/script/Taproot metadata is restored after transaction binding, with conflicts rejected. Omitted Taproot roots/leaves do not assert an empty tree. New key-path signatures, and signatures about to be finalized, are verified against the actual output key in the full transaction context. All committed prevouts are required, except unrelated prevouts excluded by ANYONECANPAY.

    Automatic finalization checks that a single-key ECDSA signature's public key matches the committed script, including P2SH/P2WSH wrappers. It supports ordinary payment scripts, wrapped multisig, Taproot key-path, and scure's tr_ns/tr_ms script templates. Unrelated bare P2PK/multisig inputs can be carried through while retaining commitment checks. Arbitrary CLTV/CSV or inscription scripts are not automatically solved. Use autoFinalized: false for partial/multiparty signing or application-managed finalization; broadcastPsbt remains unsupported.

    Both adapters bundle a shared private PSBT boundary using stock scure public APIs. It encapsulates compatibility for bare inputs and omitted Taproot tree metadata, validates all inputs before finalization and serialization, and never exposes an unchecked mutable transaction. ESM and CommonJS consumers receive the same checks.

    Xverse's RPC cannot forward inputsToSign[].sighashTypes; CCC enforces it locally on returned signatures. disableTweakSigner remains unsupported by Xverse.

    advanced
    index