<ccc.Provider> wrapper.
Supported wallets
MetaMask
EVM-based signing via MetaMask and other EVM-compatible wallets.
JoyID
Passkey-based CKB wallet — no seed phrase required.
UniSat
BTC wallet with CKB support via the UniSat extension.
OKX
OKX wallet supporting BTC, EVM, and CKB signers.
UTXO Global
UTXO-based multi-chain wallet with CKB integration.
Nostr
Sign with a Nostr key pair for decentralized identity.
Steps
1
Install the package
Add
@ckb-ccc/connector-react to your project.- npm
- yarn
- pnpm
2
Wrap your app in the Provider
Import
ccc from the connector package and wrap your application root with <ccc.Provider>. The Provider injects the connector UI and context that all child components can access.app.tsx
Provider props
app.tsx
3
Read wallet state with useCcc()
Call
useCcc() inside any component that is a descendant of <ccc.Provider>. It returns the current connection state and actions.wallet-button.tsx
Return values
4
Get the signer with useSigner()
Use the
useSigner() shorthand when you only need the Signer object to build and send transactions.transfer-button.tsx
useSigner() returns undefined when no wallet is connected, so always check before using it.Filter signers
UsesignerFilter to restrict which wallets appear in the picker. The function receives a ccc.SignerInfo and the parent ccc.Wallet, and must return a promise that resolves to true to include the signer or false to hide it.
app.tsx
Next steps
Send CKB
Build and broadcast a CKB transfer with the signer you just connected.
Sign Message
Request a signed message from the connected wallet.