MonteZecret: A Desktop Wallet for Zcash in Rust Instead of Tweets

The Zcash crypto wallet that I boldly named MonteZecret (still a working title) — yes, this is a reverence to the Count of Monte Cristo with his love for elegant secrets and treasures.

If you asked me what the secret to successful development is, I’d answer: stop feeding social media. More than 4 months ago, I made a deal with myself. Instead of pouring my thoughts into X (formerly Twitter), every day I write an amount of code equivalent to several tweets.

And you know what? Regular micro-steps work better than any personal growth trainings. Drop by drop, line by line — and now I already have the first tangible results of creating a new desktop wallet for Zcash.

You can already watch the ritual of seed phrase generation:

1. Night Shifts, Napkins, and Cyberpunk Spirits

It all started with the difficult choice of architecture and long sleepless nights. During the day, I was busy with my main job — physical labor. And at night, when the city fell asleep, my inner programmer woke up.

You know what happens when you work with your hands during the day and design a crypto wallet at night? On weekends, you become that weird guy in a café drawing diagrams on napkins. Waitresses looked at me with suspicion — usually people draw hearts or phone numbers on napkins, not the architecture of GUI interaction with Zcash RPC.

Chronic sleep deprivation manifested itself in quite an original way. During brief periods of shallow sleep, it seems the spirits of Satoshi Nakamoto and Hal Finney began visiting me. We sat in a virtual crypto-bar, they threw valuable ideas for the Zcash wallet at me and condescendingly helped me debug code. (Hal — thanks for the help!)

It was during this period that I learned Rust from scratch and how to work with the librustzcash library: GitHub - zcash/librustzcash: Rust-language assets for Zcash · GitHub

2. Choosing the Technology Stack: Why Rust Is a Philosophy

I chose Rust — a language that programmers either passionately love or haven’t tried yet. This is a language where the compiler treats you like a strict but fair mentor.

The Zcash team has already chosen Rust for librustzcash — so I’m on the right track. Rust is like a Swiss Army knife for developing secure applications: sharp, reliable, and requires some skill so you don’t cut yourself.

Dream and Reality

Ideally, I would like to write a wallet in pure C and compile it through the tiny Tiny C Compiler (TCC) by the genius Fabrice Bellard. But this is still an unattainable peak.

The reality of cryptography is harsh: an application that works with your money requires the highest level of security. Rust with its memory-safe guarantees is unrivaled here. It’s the optimal balance between security and performance.

3. The Great GUI Choice: A Crusade Against “Electronic Obesity”

The graphical interface is the face of the application. And which face to choose?

I considered many options:

  • KDE? Beautiful, but a bit heavy.
  • Gnome? Lighter, and my favorite editor Geany is based on it.
  • wxWidgets? Those who worked with CodeLite IDE know these sudden phantom errors that even modern AI capitulates before.
  • Electron? Anything but that.

Electron — A Gluttonous Monster

Let me speak separately about wallets based on Electron. It’s like inviting Godzilla to live in your apartment. Yes, some Monero wallets use Electron, but my computer wants to live without having all available resources seized.

Have you even noticed how modern applications have stopped respecting our resources? One Chrome tab can eat up a gigabyte of RAM. No matter how powerful your computer is, after a while even that’s not enough. We’re burning incredible computational power in a completely non-ecological way. And it’s sad.

Revelation: Lite XL and SDL2

And then I found Lite XL — an editor that uses the SDL2 library directly. Light, fast, elegant. Installation size?
About 1.2 MB. Now that’s what I call minimalism!

This was a revelation among heavyweight frameworks. This approach became the foundation for Monte Zecret.

4. The Philosophy of Zcash: Why Standards Matter

Let’s dig deeper. What makes Zcash special? Privacy? Yes, but that’s just the tip of the iceberg.

The true credo of Zcash is the implementation of innovative standards in the cryptocurrency industry.

  • New privacy standards
  • New security standards
  • New cryptography standards (remember zk-SNARKs? Zcash brought them to the masses)

The Taylor Hornby Story — An Example of a Living Ecosystem

On May 29, 2026, white hat hacker Taylor Hornby discovered a critical vulnerability in the Orchard pool. He found and neutralized the threat before malicious actors, and Zcash became even more secure.

Details here: The Orchard Counterfeiting Vulnerability - Shielded Labs

This demonstrates that the Zcash ecosystem is alive, vigilant, and constantly improving.

The industry needs new standards. Which means it’s time for a new crypto wallet.

5. The Monte Zecret Manifesto: Five Pillars of the Perfect Wallet

5.1. Conciseness and Minimalism

Less is more. Every line of code must be justified. Every byte of size — earned.

5.2. Aesthetics and Functionality

Perhaps Scandinavian design style. Clean, functional, pleasing to the eye. The beauty of code should be reflected in the beauty of the interface.

I also spent quite a bit of time searching for the perfect font and found a real uncut diamond — the Hack font.

What I needed:

  • Monospaced (for code and addresses)
  • Excellent readability
  • Clear distinction between 0 and O, 1 and l
  • Beautiful
  • Open source

Hack meets all requirements perfectly.

5.3. Keyboard Control

No mouse needed! In the Accounts tab, you can open or create a wallet with the well-known combinations `Ctrl+O` and `Ctrl+N`.

And switching between tabs works via `F1`, `F2`, `F3` — a fiery greeting to **Midnight Commander**.

5.4. Lightness

My battle laptop is a Dell Latitude 3550 from 2015. And don’t try to convince me to buy a new one! Until this one physically falls apart, I won’t buy a new computer. It’s this old hardware that keeps me sharp and motivates me to create truly optimized applications.

Application Size Comparison:

CodeLite IDE: 72.21 MB
Geany: 16.34 MB
Vim: 5.33 MB
Lite XL: 1.18 MB
Monte Zecret: 1.82 MB :sparkles:

The result is excellent! But there’s sad news: the wallet no longer fits on one classic 3.5" floppy disk (1.44 MB). We’ll have to split it with an archiver into two parts. :grinning_face_with_smiling_eyes:

Someone will say: “What floppies in 2026?”

I’ll answer: “And what’s the point of a gigabyte application that does the same thing?”

Progress is not when applications get bigger. Progress is when they get smarter at a smaller size.

5.5. Security at the Cutting Edge

This is a crypto wallet. People’s money is stored here. Errors are unacceptable here. Rust helps, but programmer vigilance is paramount.

6. The Philosophy of Regularity: Code Instead of Tweets

Here’s the secret to productivity: every day I write some code instead of writing tweets on X.

Several hours of code instead of endless scrolling. And you know what?
Regular small actions lead to huge results.

This works flawlessly and better than any motivation. Motivation comes during work, not before it.

No need to wait for inspiration. No need to plan a great leap. Just open the editor and write:

  • Today — seed phrase generation function
  • Tomorrow — input validation
  • Day after tomorrow — integration with librustzcash

After 4 months, you have a working prototype.

7. How You Can Support the Project (and Influence History)

Every day Monte Zecret gains features and gets better. And you can directly accelerate this process.

:money_bag: Donations Welcome

Grants are slow and bureaucratic.
Patrons are fast and effective.

Patrons should always be respected, because they make the world (and open source) better, kinder, and freer.

Donations can significantly accelerate development — they’re more efficient than any cumbersome grants. Moreover, you can communicate with me by leaving messages directly in the **Memo** field of your transaction!

:bullseye: Naming Contest

Monte Zecret is just a working title. You can suggest your own!

When sending a donation, write your wallet name suggestion in the Memo.

The rules are simple: the winner will be the variant from the author of the most generous donation. But if you, like me, like the Monte Cristo vibe, vote with your coins for the original name so it doesn’t get outbid!

:love_letter: Personal Messages via Memo

Want to write to me personally? Use the Memo field in a Zcash transaction. Privacy in action!

:ballot_box_with_ballot: Voting for Open Source

Very soon we will hold a community vote to fully open source the project.

You’re not just spectators. You’re co-authors of new Zcash standards. Join in!

Support the Project

To support development, leave a message for eternity (in the encrypted Memo field), and suggest your own name for the wallet at this address:
u1c9qqs5knwe360w6snjuhcldtpf6tcc9nz6xuanmz2xwyf7l4ufze89tze43yz90ajgcej5ylh0a4h2ac65flsvp7a8ewaauvtt4hwsxuhuqvv9h5fkxntw9yk0eyrrlcu004e2havqs0yx58u7kk75e8hff47srsaslc9g6u6rxfn7j9es2g6zc0drd6ajus8wjj2f8p3als53dfc9l

Epilogue: A Manifesto of Reasonable Resource Use

Monte Zecret is not just a wallet. It’s a manifesto of reasonable resource use. It’s a return to the roots, when every byte was worth its weight in gold. It’s respect for your computer, your time, and your privacy.

And yes, this is a wallet written at night, under the whispers of crypto-revolution ghosts, on an old laptop, with Hack as the font, and a dream of a world where applications fit on floppy disks again.

Zcash. Privacy. Code. Repeat.

P.S. If you read to the end — you’re a real hero. Or you also suffer from insomnia and write code at night. Either way, welcome to the club! :rocket:

3 Likes

Learning Rust from zero and reaching a working prototype on librustzcash in 4 months is real discipline. Which backend will sync use, zebrad RPC or a lightwalletd style server?

1 Like

Dev Update: Month 4.5. We have some worrying news—things aren’t quite as rosy as we thought.**

MonteZecret: The lightest Zcash desktop wallet in Rust (instead of just tweeting)

Remember how we proudly called MonteZecret the lightest Zcash desktop wallet in Rust?
Well, it seems it’s started eating at night, and maybe even sneaking midnight snacks.
Just two weeks ago, the binary weighed 1,820,744 bytes.
It was as graceful as a ballerina.
Today? 7,330,888 bytes.
Now it looks like a programmer after three months of remote work.
We’re on a bulk, folks.

If the program used to fit on 2 floppy disks, now it needs 5.
Of course, some of the blame lies with the libraries, but more on that later.

But we will continue the fight to keep it slim. First, we’ll build the core functionality, and optimization won’t be the top priority just yet—but that will change soon. Especially since we already have experience optimizing libsecp256k1—our version runs 2.4x faster than the original!

:rocket: libsecp256k1: 2.4x Speedup

We couldn’t settle for standard performance, so we rewrote the libsecp256k1 implementation (yes, that one from the Bitcoin world). Our custom version in batch mode runs 2.4 times faster than the original!

📊 Iterations: 100000 
+---------------------------+------------+--------------+------------+ 
| Implementation            | Time (sec) |  Speed (h/s) |   Keys/sec | 
+---------------------------+------------+--------------+------------+ 
| 1. libsecp256k1 (Base)    |     4.5015 |        22215 |      22215 | 
| 2. Custom v1              |    30.6389 |         3264 |       3264 | 
| 3. Custom v2              |    15.0258 |         6655 |       6655 | 
| 4. Custom v3              |     4.4087 |        22682 |      22682 | 
| 5. Custom v4 (single)     |     3.6087 |        27711 |      27711 | 
| 6. Custom v4 (batch)      |     1.8738 |        53368 |      53368 | 
+---------------------------+------------+--------------+------------+ 
⚡ v4 (batch) vs libsecp256k1: 2.40x faster

Why do we need this kind of speed? We have an ambitious (and slightly insane) goal—Bitcoin Puzzle #71. We are optimizing every single CPU clock cycle to solve it. And if we crack it… well, you get the drill: all those bitcoins are flying straight into private Zcash. :shushing_face:

Plan B: If the wallet gets too heavy anyway, we’ll just release it as a plugin for Emacs or Vim.


:hamburger: The Problem of Digital Obesity

Imagine this: you invite a librarian to a party to help you slice some bread. But she shows up with a suitcase that turns out to contain an entire food processor with attachments for making sushi, a watermelon carving tool, and a manual for shaping marzipan figures.
“I just need to slice some bread,” you say.
“But what if you suddenly need a GIF animation!” the library replies, winking slyly.

That’s exactly how modern development works. Libraries are stuffed with “just in case” features. When you plug in a graphics library, say for QR codes, it drags along support for GIFs, animations, and shadow rendering. And you don’t even plan to use GIFs! It’s a classic conflict of interest: the library dev wants to cram everything in, while the app dev only needs one function.

By the way, I’m sure AI will soon change the paradigm of libraries. Instead of pulling in a giant repository, AI will read its source code and compile a “micro-library” for you, consisting of only the 3 lines of code your app actually needs. I wouldn’t be surprised if tools like this appear sooner than we think.

Optimization is coming. But first—functionality.
First the heart. Then the abs.


:tada: But there is good news

:locked_with_key: The most secure half-finished wallet in the world

We’ve updated the Zcash Rust libraries to the latest versions:

zcash_keys = { version = "0.14", features = ["sapling", "orchard", "transparent-inputs"] }
zcash_primitives = "0.28"
zcash_transparent = { version = "0.8", features = ["transparent-inputs"] }
zcash_protocol = "0.9.0"

So right now, we have the most secure wallet in the world that doesn’t quite do everything yet.

:film_frames: UI like a Slide Projector: Nostalgia beats minimalism

We finished the functionality for the Receive tab. Initially, we wanted to make TabSheet tabs, like in good old Delphi. But then it hit us.

Remember slide projectors (Diafilms)?
That magical device in a dark room, where you turn the dial, the shutter clicks, and the next image appears on the bedsheet, illuminated by a beam of light.

We brought this intuitive magic into the interface. The address slider (Main, Orchard, Sapling, Diversified, Transparent) switches with a smooth animation, as if you’re turning the film reel. This isn’t just an innovation; it’s a philosophy.

:milky_way: A Universe Inside the Progress Bar

You know what’s the most fascinating thing about developing from scratch? You realize that simple things don’t exist. We started writing a Progress Bar. We thought, “Well, it’s just a rectangle, how hard can it be?” Turns out, we discovered an entire universe. We couldn’t pick just one, so we made 4 different progress bar designs: from ascetic to ultimate stylish. Most likely, we’ll leave the choice to the user. Let everyone decide for themselves how their wallet will “load.”

:artist_palette: The Hell and Heaven of Neural Networks: How We Made the Icons

You’d think, why draw icons when there’s AI? You write a prompt—you get a masterpiece. Let’s take off the rose-tinted glasses. Here’s how it actually goes down:

  1. You write a 300-word prompt, trying to explain to the neural network what early 2000s skeuomorphism in the style of Opera 7 looks like.
  2. You generate 10 images at a time in Qwen, Seedream, and Flux.
  3. You set a timer on your phone because the free tier limit is 5 generations per hour. You sit there like an addict, waiting for the timer to ring so you can hit “Generate” again.
  4. Over 20 hours, you generate 3,000 images.
  5. Out of those, you select 92 decent ones.
  6. Out of the 92, you pick one, which you then manually tweak.

Here’s our “modest” prompt for the Contacts icon (excerpt):

“A skeuomorphic 3D app icon… Early 2000s software design aesthetic, exact Opera 7 browser icon visual style… The book body is made of smooth, semi-transparent glossy blue acrylic plastic… Leaning against the front-bottom corner is a single large metallic gold Zcash coin… Clean mirror-like downward reflection… Negative Prompt: flat design, 2d, vector, modern minimalist, dark background…”

Total: 20 hours of work for a single icon. 5 out of 7 icons are done now. The pain was immense, but the joy of how they look in the interface is even greater.


:money_bag: How much is the code worth?

I got curious: how much is the code I’ve already written for MonteZecret actually worth?
I asked my AI security auditor (who knows every single commit of mine).
Here’s what it replied:

:bar_chart: Estimated workload: ~640 hours

  • Architecture and design: ~80 hrs
  • UI system (SDL2 + Rust): ~150 hrs
  • Zcash integration: ~100 hrs
  • Cryptography and Zeroize: ~80 hrs
  • Debugging Rust lifetimes (yes, the borrow checker is pain): ~100 hrs

:pushpin: Realistic market value:

  • Minimum (freelance): $15,000 - $25,000
  • Average (Senior / Studio): $50,000 - $70,000

If you add R&D (learning Rust and librustzcash from scratch), the real cost crosses $100,000+.

There could be a subtle hint here that patrons could speed up development, but let’s just enjoy the fact that in 4.5 months, working solo, an intellectual asset worth tens of thousands of dollars was created. :gem_stone:

640 hours of work. Over 5,000 lines of Rust code. Integration with zk-SNARK-level cryptography. SDL2 UI. Architecture built from scratch.
For comparison:

  • A typical startup spends $200,000–$500,000 on a crypto wallet MVP.
  • A team of 3-4 developers does this in 6-12 months.
  • I’m doing it solo in 4.5 months.

A lone wolf can run faster than the pack, if it chose the right route.


:chart_decreasing: The price of Zcash falls and rises

But the truth is simple:
Zcash with zero lines of code = $0
Zcash with millions of lines of high-quality code = billions of dollars

Don’t look at the price right now. Invest in the code.

Zcash isn’t held up by speculation, but by science: zk-SNARKs, Halo, ECC research, dozens of ZIP proposals, and years of cryptographic work.
And yes—there are very few people in the world capable of writing a full-fledged Zcash wallet from scratch.
Maybe less than a hundred.
We are a rare species. Listed in the Red Book of rare developer species.
Protect us…
and feed us.

:world_map: What’s next?

  • :white_check_mark: Receive funds functionality — done
  • :counterclockwise_arrows_button: Sending Zcash — in progress
  • :counterclockwise_arrows_button: Transaction handling — in progress
  • :hourglass_not_done: Performance optimization — coming soon
  • :hourglass_not_done: Icons (5 out of 7) — almost there

And in the next episode, I’ll show you the very first version of MonteZecret.
You’ll be horrified.

But for now—enjoy what we have today in a fresh screencast of the current version:
:backhand_index_pointing_right: https://youtu.be/6RzEo-19Ddg


:scroll: Postscriptum for Patrons

There could be a hint about donations here. But instead, I’ll say this: if you want there to be another truly lightweight, fast, and private Zcash wallet in the world—just support it and keep an eye on updates.

Code is the currency of the future. Good code is gold. And optimized Rust code for Zcash is a treasure.

Zcash isn’t just a cryptocurrency. It’s a manifesto of privacy in the digital age. And MonteZecret is my contribution to that manifesto.

One developer. One wallet. Infinite persistence.

Support the Project

To support development, leave a message for eternity (in the encrypted Memo field), and suggest your own name for the wallet at this address:
u1c9qqs5knwe360w6snjuhcldtpf6tcc9nz6xuanmz2xwyf7l4ufze89tze43yz90ajgcej5ylh0a4h2ac65flsvp7a8ewaauvtt4hwsxuhuqvv9h5fkxntw9yk0eyrrlcu004e2havqs0yx58u7kk75e8hff47srsaslc9g6u6rxfn7j9es2g6zc0drd6ajus8wjj2f8p3als53dfc9l

1 Like

Love your thought process, love the ideas with slide projectors! :smiling_face_with_three_hearts:

1 Like

Regarding the backend — we haven’t chosen between the two options yet.

Most likely, we’ll implement both:
:small_blue_diamond: Sync via zebrad RPC
:small_blue_diamond: Sync via a lightwalletd-style server

Not because we enjoy complexity — but because we want real benchmarks.

We want to measure:

  • performance,
  • latency,
  • stability,
  • overhead,
  • scalability.

Theory is nice.
But metrics are better.

We may even keep both modes in the long run:

  • Full node mode (via zebrad) for maximum sovereignty.
  • Light mode (via lightwalletd) for speed and usability.

MonteZecret aims to be not only lightweight — but technically honest.
First we measure. Then we decide.

1 Like