Skip to main content
t2z - portable libraries for transparent → shielded transactions

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

Available SDKs

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

FeatureStatus
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
t2z is designed specifically for transparent-to-shielded use cases. For full wallet functionality including shielded-to-shielded transactions, see Zashi or Ywallet.
  • ZIP 374 — Partially Constructed Zcash Transaction Format
  • ZIP 244 — Transaction Identifier and Signature Validation
  • ZIP 317 — Proportional Transfer Fee Mechanism
  • ZIP 321 — Payment Request URIs