# CKB Virtual Tx ## Metadata **Status**:: #x **Zettel**:: #zettel/fleeting **Created**:: [[2026-01-09]] **Related**:: [[CKB CoBuild]] ## Synopsis Virtual Tx is a solution to implement partial transactions for CKB. - Mock the system calls so the script is accessing the virtual tx instead of the real current tx. - Override [ckb-c-stdlib/ckb_raw_syscalls.h](https://github.com/nervosnetwork/ckb-c-stdlib/blob/master/ckb_raw_syscalls.h) - Or [ckb-std/src/syscalls/native.rs](https://github.com/nervosnetwork/ckb-std/blob/master/src/syscalls/native.rs) - Anyone is economically incentivized to match partial txs because fee can be provided. - Use the first special input as the indicator that the tx is a vtx. - It requires a mechanism to reuse the CKB P2P network to broadcast vtxs. Such as constructing vtx as a normal tx but can never be committed into a block. - The first special input type script witness includes the specification about how each vtx consisted of the tx components (inputs, outputs, and etc.) - Inputs/outputs are exclusively - Tackle cell/header deps duplication - Must work around script group. The Lock script group across multiple virtual txs must run multiple passes. - Only Lock Script needs virtual tx to partially sign a tx. - The first input can carry the intent of the partial tx. It declares the requirements on the missing parts.