
What is t2z?
t2z (transparent-to-z) is a multi-platform library for building Zcash transactions that send from transparent inputs to shielded Orchard outputs. It implements the PCZT (Partially Constructed Zcash Transaction) format defined in ZIP 374, enabling:- Multi-party transaction construction — Different parties can contribute inputs, signatures, and proofs
- Hardware wallet support — External signing via
get_sighash+append_signature - Cross-platform — Available for TypeScript, Go, and Kotlin
Quick Start
Install and build your first transaction in minutes.
Live Demo
Try the interactive transaction builder.
API Reference
Complete function documentation.
GitHub
View source and contribute.
Available SDKs
TypeScript
@d4mr/t2z-wasmBrowser & Node.js via WebAssemblyAvailable
Go
github.com/d4mr/t2z/sdks/goNative Go via CGO/UniFFIAvailable
Kotlin
com.d4mr.t2zAndroid & JVM via UniFFIAvailable
Why t2z?
🔐 Privacy Upgrade Path
Enable existing transparent-only Zcash infrastructure to send to shielded addresses without requiring a full wallet implementation.📦 PCZT Format
Full ZIP 374 support allows transactions to be constructed across multiple parties, systems, or hardware devices.⚡ No Downloads Required
Unlike Sapling which requires ~50MB proving key downloads, Orchard uses Halo 2 — the proving key is built programmatically on first use (~10 seconds, cached thereafter).🦀 Battle-Tested Core
All SDKs share the same Rust core built on official Zcash libraries (zcash_primitives, orchard, pczt), ensuring consistent behavior across platforms.
Transaction Flow
A t2z transaction follows this flow:1
Propose
Create a PCZT from transparent inputs and payment outputs.
2
Verify (Optional)
Verify the PCZT matches the original request before signing.
3
Sign
Add signatures for each transparent input.
4
Prove
Generate Orchard zero-knowledge proofs.
5
Finalize
Extract the final transaction bytes for broadcast.
Learn the Flow
Dive deep into each step of the transaction flow.
Supported Features
| Feature | Status |
|---|---|
| Transparent → Orchard | ✅ Supported |
| Transparent → Transparent | ✅ Supported |
| Multiple inputs | ✅ Supported |
| Multiple outputs | ✅ Supported |
| Memos | ✅ Supported |
| ZIP 317 fees | ✅ Automatic |
| External signing | ✅ Supported |
| Sapling outputs | ❌ Not supported |
| Orchard inputs | ❌ Not supported |

