Skip to main content

Introduction

This section provides a list of CKB Scripts and related components that have been developed across various repositories. These Scripts are often scattered and difficult to discover – especially for developers who are new to the ecosystem. This summary organizes them in one place for easier access and understanding.

Disclaimer

The Scripts listed here can directly impact the security of your assets. Some have not undergone comprehensive security audits and may contain unknown vulnerabilities. Do not use them in production unless you fully understand how they work and have thoroughly tested them in a safe environment.

Scripts

Script NameRepositoryLanguageLock/Type ScriptDescription
secp256k1_blake160_sighashckb-system-scriptsCLockDefault single-signature lock script on CKB
secp256k1_blake160_multisigckb-system-scriptsCLockDefault multisig lock script on CKB
Nervos Daockb-system-scriptsCTypeProtects CKByte holders from token dilution
Lock Proxy Lockckb-proxy-locksRustLockDelegates unlocking authority to another lock script
Input Type Proxy Lockckb-proxy-locksRustLockUnlocks if a specific type script appears in transaction inputs
Output Type Proxy Lockckb-proxy-locksRustLockUnlocks if a specific type script appears in transaction outputs
Single Use Lockckb-proxy-locksRustLockUnlocks only once using a specific outpoint
Time Lockckb-proxy-locksRustLockUnlocks after a specified block/time/epoch with optional extra conditions
Type Burn Lockckb-proxy-locksRustLockUnlocks when a specific type script is burned (used but not recreated)
Easy to Discover Typeckb-proxy-locksRustTypeMakes cell data easily accessible via type script arguments
xUDTckb-production-scriptsCTypeExtensible UDT
OmnilockomnilockCLockUniversal lock supporting multiple auth methods and chains
Anyone Can Payanyone-can-payCLockAccepts arbitrary payments without fixed amount
Nostr Locknostr-bindingRustLockEnables lock integration with Nostr protocol
Nostr Bindingnostr-bindingRustTypeBinds Nostr Notes to CKB cells via type script
CCC BTC lockccc-locksRustLockEnables CKB lock compatibility with Bitcoin
CCC ETH lockccc-locksRustLockEnables CKB lock compatibility with Ethereum
CCC SOL lockccc-locksRustLockEnables CKB lock compatibility with Solana
Spore DOB-0spore-dob-0RustTypeBasic Spore contract for storing value in CKB cells
Spore Protocolspore-contractRustTypeManages ownership and value of unique digital objects (DOBs) on CKB

Library

Although the following are compiled into executable files (Run in CKB-VM), they cannot be executed as a standalone Script. Developers can call them through the provided API.

Script NameRepositoryLanguageAPICalling method
CKB Authckb-authCC/RustExec/Dynamic Library
CKB Crypto Serviceckb-script-ipcRustC/Rust/JSSpawn
note

Both CKB Auth and CKB Crypto Service offer signature verification capabilities, but they differ in how they operate. CKB Auth can directly verify signatures for a specific blockchain, while CKB Crypto Service provides only the underlying cryptographic algorithms.

For example, to verify a CKB Secp256K1 signature, CKB Auth allows direct verification with a single call. In contrast, CKB Crypto Service requires reconstructing the public key, hashing it, and then comparing the resulting public key hash values.