ZECpublish Live in Alpha!
The Anonymous Message Board 🛡️
ZECpublish is a Zcash-powered social platform featuring a message board and microtransaction-based interactions. Head straight to https://zecpublish.com and send an anonymous message to the world! 🌎
The original ZECpages platform was built as a proof-of-concept using Zcash shielded transaction memos, functioning as an API and data store for a simple social media board. Following ZECpages’ sunset earlier this year, the ZecHub DAO invited community members to step up and restore this important part of the ecosystem.
@1337bytes submitted the winning proposal.ZECpublish maintains the spirit of ZECpages while bringing improvements in design, architecture, and user experience!
Here are some cool Zcash artifacts you can find in the Archive:
How does it work? 🧠
ZECpublish works by allowing site visitors to send Zcash shielded transaction memos to make posts, replies, or issue likes. The memo that encodes the action/content exists on the blockchain (so it’s not just stored on a private server).
On the server side, ZECpublish runs a daemon zcash-walletd lightwalletd memo monitor that watches for new inbound transactions to the public address. It decrypts and parses memos into structured events (post, like, reply, etc.) Parsed results are stored in a database and served through a JSON API that the site can query quickly.
The frontend renders the board and user pages by reading from that backend API, together with generating Zcash payment QR codes and URIs for performing site actions. If a user includes their shielded address in a post or reply, a multipay address (supported by zkool wallet) will be generated to send an optional tip directly to the user in the same transaction.
For auditability/portability, the ZECpublish viewing key is published so anyone can import it into a wallet and independently rescan the chain history associated with the board address.
Protocol Design ⚙️
The original ZECpages protocol is based on action types and memo text content, which can be either plain text, markdown or stringified JSON (as is the case for polls).
Memo actions were reliant on internal database IDs which can’t be accurately reconstructed from the blockchain data if the service goes down. A like action looked like LIKE::64, and reply: REPLY::64 message here. ZECpublish has transitioned to using transaction IDs.
The ZECpages post archive restoration includes database IDs and automatically redirects old ID links to the respective txid. Any old ZECpages URLs will work by changing the URL to the respective domain and format:
The first 74 ZECpages posts were made using another address and viewing key. While these have been restored, going forward an effort will be made to better document such changes and to document the protocol in a way that it can be adopted by other apps as part of a federated network.
An archive of the old ZECpages user directory has been published, and while there isn’t yet a way to create new users, the system is being re-architected to allow for on-chain user registration, allowing for independent restoration of the user directory without access to a backup.
List of planned upgrades:
Create users as on-chain transactions so they can be restored with the viewing key
nostr public/private key used for auth
Verification badges: ZecHub DAO, Twitter, website, GitHub, etc
ZEC rewards for active users in events and monthly leaderboards
Thank you, @1337bytes


