Updated: 1/24/2026

Partially Signed Kaspa Transactions (PSKT & PSKTB)

A collection of notes & links on Partially Signed Kaspa Transactions (PSKT & PSKB)

Kaspa’s PSKT implementation follows the specification defined in BIP-370.

Roles

The following roles are used (as defined by BIP-370):

RoleNotes
CreatorInitializes the PSKT (with 0 inputs and 0 outputs).
ConstructorAdds inputs/outputs.
UpdaterSets sequence number.
SignerSigns inputs.
CombinerMerges multiple PSKTs into one.
FinalizerCompletes the PSKT (ensures all inputs have valid signatures, and finalizes the transaction).
ExtractorExtracts final transaction from the PSKT.

Process

Very high level and simple example of the process:

1. Create PSKT

Create PSKT from a Transaction object, from a serialized PSKT, or from scratch. When created from scratch, it starts with no inputs and no outputs.

2. Add Inputs/Outputs

Add inputs and outputs as necessary.

3. Serialize

Serialize PSKT for transmission to signers or other parties.

4. Sign

Signers deserialize and sign the PSKT. Then continue to pass serialized PSKT until all signers have signed.

5. Finalize, Extract & Submit

Final party or coordinator finalizes the PSKT, extracts the transaction, and submits it to the network.