In the crypto world, we all experience both good and bad days. Sometimes it’s a major success, sometimes it’s a costly mistake, and sometimes it’s an unexpected outcome. But when we want to share these experiences, we often have to sacrifice our privacy.
That’s exactly why we created Shielded Wall.
Shielded Wall is an anonymous confession platform built with privacy at its core. Share your successes, mistakes, lessons learned, funny moments, or unforgettable crypto experiences without revealing your identity.
The platform is hosted on our own servers, and protecting user privacy is our highest priority. Your identity is never exposed, allowing you to share your stories with confidence and peace of mind.
Sometimes the most valuable lessons come from anonymous, real-life experiences.
Bur where does the ZEC go? Spending ZEC for confessing seems… extravagant, unless the ZEC comes back in the wallet, in which case, the “brighter the more ZEC you send” doesn’t really make sense.
Edit: Wait, since the ZEC is sent to you… YOU are the new centralised platform! You go down, the site irrevocably dies. This has no properties of longevity, does it? Unless you make the private keys/seed public, in which case it’s just a free faucet of real $ZEC to sweep too.
Not to mention that your website generates the QR to send. Meaning the person first has to enter the message, associated with their REAL IP, on the website, before anything happens. If a Mallory (e.g., future you) decide to set up a listener, or a XHR hook, what prevents you from recording identities at application layer, even if they are encrypted and secure at the protocol layer?
I think we have a different perspective on spending ZEC. Personally, I’m happy to spend ZEC directly, convert it to fiat when needed, or use it in other ways. I see these as two valid viewpoints.
To reduce spam and create a sustainable revenue model, we introduced a paid confession submission system. The main reason is that submitting an anonymous confession requires an on-chain transaction of 0.0001 ZEC. This creates a small economic cost that helps discourage spam.
At the same time, I don’t think it’s wrong for the project to generate enough revenue to cover hosting, maintenance, and ongoing development. Rather than applying for funding, I chose to invest my own resources and build a self-sustaining model.
The project is fully open source:
As you already know, making the private key public would completely compromise the security of the system.
“Moreover, your website generates the QR code that will be sent. That means the user has to type the message into the website, linked to their real IP address, before anything else happens. If a Mallory (for example, future you) decided to add a listener or an XHR hook, what prevents you from logging identities at the application layer, even if everything is encrypted and secure at the protocol layer?”
You’re right, and it’s worth being explicit about this.
Here’s what the code actually does today (it’s open source now, so anyone can verify it): the frontend only makes three requests to the server, all of them read-only: /api/config, /api/stats, and /api/wall. There are no POST requests, beacons, or WebSocket connections. The message itself is never transmitted anywhere over the network. The memo is encoded as Base64URL, and the QR code is generated entirely in the browser (buildZcashUri and renderQR in public/index.html).
Like any website, simply visiting the page exposes your IP address to the server, but the server never receives the message you type.
That said, your real point isn’t what the code does today—it’s what a server could serve—and on that, you’re absolutely right. Open source proves what the published code does; it does not prove that the hosted server is actually serving that exact code. The operator can change the JavaScript at any time. On top of that, I’m currently loading third-party resources (Tailwind, qrcodejs, and Google Fonts) without Subresource Integrity (SRI). That means a malicious operator (including a future version of myself), a compromised server, or a compromised CDN could inject an XHR hook and log both the message and the user’s IP address. Zcash’s privacy guarantees exist at the protocol layer—they don’t, and can’t, protect the application layer. There is currently nothing at the application layer that prevents this. I completely agree with that assessment.
The design’s answer to this is that the website is not intended to be the trust anchor. Submitting a confession is ultimately just constructing a ZIP-321 URI:
zcash:<address>?amount=<x>&memo=<base64url>
Anyone who doesn’t trust the website can generate the exact same transaction completely offline using their own wallet, without ever interacting with the hosted frontend. The website is simply a convenience for composing messages and viewing the wall—it is not a required intermediary for creating or sending the transaction.
“Rather than applying for funding, I chose to invest my own resources and build a self-sustaining model.” But you just said the project is open source and works in this state, and Github offers free Pages hosting for public Git repos with source code verification.
The main reason is that submitting an anonymous confession requires an on-chain transaction of 0.0001 ZEC.
Yet you incentivise sending upto 1 ZEC, that is $543, to play on the vanity of users. Is that not a profit tactic for the operator, you? Further, it also incentivises users to pay more to one-up others’ messages, leading to more profit for you. It is not marketed as a donation, nor do the users know that they are “supporting your project”, nor are they consenting to it.
It’s all good, it just doesn’t seem like a good faith project to me.
The project is open source, and I’ve already shared the GitHub repository.
Does being open source mean everything has to be free? Are domain registration, maintenance, ongoing development, new features, and the time invested somehow covered by divine intervention?
I’ve answered your questions. Now you’re trying to shift the discussion to the financial side of the project, and honestly, it feels a bit forced.
The platform can be used for as little as 0.0001 ZEC. That’s simply a revenue model. If someone wants to send 1 ZEC instead, that’s entirely their own choice. Nobody is being forced or pressured to pay more.
You can think of it like choosing to pay $200 instead of $100 for Claude, upsizing your meal at McDonald’s, or buying the latest iPhone on launch day. Those are all optional choices made by the user.
The one point I do agree with is that I should probably add a notice saying: “The amounts sent are used to help sustain and develop the project.” That’s fair feedback, and I appreciate it.
Other than that, I’m not a fan of people trying to read someone else’s intentions. None of us can truly know another person’s motives. If the project doesn’t seem genuine to you, you’re completely free not to use it. I fully respect that.
I’m honestly too busy to get into lengthy arguments or debates. That said, I do value constructive feedback and personal opinions when they’re shared respectfully, like any reasonable person would.
This is not all that different from how ZEC pages works (or used to work) ZECpages
Users can choose to use the service or not, charging a minimal fee helps prevent spam and helps cover server costs. It takes time and energy to host something like this and it will also inevitably encounter spam regardless of the fee which will take effort to filter out.
It seems pretty obvious to me that someone sending ZEC to another address is givingthat person ZEC, I don’t see why it would be considered bad faith just because it’s not exactly explained what that person intends to with that ZEC afterwards. Maybe they are paying themselves for their work, maybe they are saving up for a heart transplant, maybe they are ZODLing hoping Zcash goes to 10k… that’s the beauty of privacy, it’s none of our business
No worries—you shared your opinion, and you’re absolutely free to do that. The only part I didn’t appreciate was saying I wasn’t acting in good faith, because that felt like mind-reading rather than criticism.
Everyone is trying to contribute to this project in their own way. I genuinely believe this anonymous confession platform can become something fun and valuable for the community. I can also commit that any revenue it generates will be reinvested into projects like this and other initiatives that benefit the ecosystem.
Not everyone has to be a developer. There are many people who are far more technically skilled than I am. I wish I could build the most advanced solutions and contribute at the highest technical level, but I try to add value in other ways.
Zecmap.com: A platform that lists businesses around the world where you can pay with Zcash.
Zec App: A mobile app that brings everything related to the Zcash ecosystem into one place.
Shielded Wall: A privacy-focused anonymous confession platform.
On top of that, I have several other projects I’m working on behind the scenes. I’m able to do this because I genuinely enjoy spending my time building things for the ecosystem.
Actually, whether something adds value is something that can only be proven through real-world use. That’s why I consider Zecmap.com valuable. The Zec App isn’t finished yet, and the others are just for fun.
Thank you for taking up these projects! Privately owned apps do need funding to be tenable long term. However, .org domains usually tend to be nonprofits or charities, at least in the US, so I can see the confusion over prices being charged. Also, it would be nice if the landing page went directly to the wall itself, instead of options to pay $500+ to post a message. I think ZECpages worked so well because it had a nominal cost to participate. That was also when tx fees were less than a penny.
Agreed, thank you so much for the valuable feedback! I’ve also received some great input via DMs. Based on this, I’m changing the scope of the project: we are fully simplifying the system and only activating the anonymous confession feature for just 0.0001 ZEC. There won’t be any other bloated features. The update goes live tomorrow