What Is the Zcash Memo Field?
Every shielded Zcash transaction (z-to-z) includes an optional 512-byte encrypted memo field. This field travels on-chain inside the encrypted note, meaning only the recipient (who holds the private key) can read it. No one else — not nodes, miners, or blockchain observers — can see the memo content.
It's essentially an encrypted private message that's permanently bundled with the payment. Think of it as an encrypted email attachment that's inseparable from the money transfer.
Memo Field Specs
| Property | Value |
|---|---|
| Max size | 512 bytes |
| Encoding | UTF-8 text (standard) |
| Encryption | Integrated into the note encryption (ChaCha20-Poly1305 in Orchard) |
| Visibility | Recipient only (or viewing key holder) |
| Available on | Sapling and Orchard (z-address) transactions only |
| Transparent address | ⌠No memo field |
| Characters (~) | ~512 ASCII or ~170 Unicode characters |
Use Cases for the Memo Field
1. Payment References
Include an invoice number, order ID, or reference code when paying a merchant: "Invoice #INV-2025-0042 — annual subscription renewal". Both parties have a cryptographic receipt tied to the payment.
2. Private Messaging
Send short encrypted notes alongside a transaction — useful for sending ZEC to a friend or family member with a personal note. The message is as private as the transaction itself.
3. Return Address
Include your z-address in the memo so the recipient can reply to you — useful when the sender's address isn't otherwise known to the recipient.
4. Proof of Payment
By sharing your viewing key with an auditor, they can read your memos and verify payments alongside amounts. This enables compliance and accounting without public disclosure.
5. ZMsg / Zecpages
Applications like Zecpages use the memo field as a public message board — users send small amounts of ZEC to a shared address with memos that function as public posts. It's a decentralized, censorship-resistant message protocol built on Zcash's infrastructure.
How to Send a Memo in Popular Wallets
| Wallet | Memo Support | Where to Find It |
|---|---|---|
| Zashi | ✅ | Send screen → "Add memo" (optional field) |
| YWallet | ✅ | Send screen → Memo field below amount |
| Nighthawk | ✅ | Send screen → "Message (optional)" |
| Zcash CLI (zcashd) | ✅ | z_sendmany with memo parameter (hex-encoded) |
Limitations to Know
- 512 bytes only: Long messages must be split across multiple transactions.
- Shielded only: Transparent (t-address) transactions have no memo field. You must send to a z-address or Unified Address to use memos.
- No delivery confirmation: There's no read receipt — you can only confirm the transaction confirmed on-chain.
- Storage: Memos are stored on-chain permanently (encrypted). Your wallet needs to scan the chain to retrieve them.