# 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.