# RollingChat: a messaging board where the author stays private

> A private messaging board built on Aztec, with automated moderation and an integrated AI bot.

Canonical: https://aztec.network/blog/rolling-chat-private-messaging-board  
Type: Article  
Reviewed: 6 November 2026  
Publisher: Aztec Foundation

Author: David Steinrueck

Every message board knows who is talking. The link runs through an account, a wallet address, or a platform that holds both. Whatever you post maintains that link, and whoever runs the platform can read it, keep it or hand it over.

RollingChat cuts the link. It is a private messaging board on Aztec Tierra, live now at [rolling.chat](https://rolling.chat/). Posts are public, and anyone can read them without an account. The wallet that paid for a post is not attached to it. What you say is public. Who said it stays private.

![RollingChat Post](/api/media/file/post.webp)

## Where it came from

Vitalik Buterin built the first version. His [aztec\_experiments](https://github.com/vbuterin/aztec_experiments) repository holds what he called an anonymous billboard on Aztec. You deposit ETH on Ethereum and post on Aztec. The public call data carries no sender address, and nothing ties a post back to the deposit that paid for it. When you're done, you withdraw the ETH. The experiment also had rate limits, a moderation policy stored onchain and a censorship mechanism built around it.

Aztec co-founder and CEO Zac Williamson completed the work in [his repository of the same name](https://github.com/zac-williamson/aztec_experiments). The billboard became a social application: boards and subboards, threads, replies, quote posts, reposts, tips, any number of posting names with their own profiles, private follows and bookmarks, and Bok, an AI assistant that lives in every thread. That application is RollingChat.

## Connect a wallet, fund it, post

Anyone can connect with an Ethereum wallet. Connecting creates a private Aztec account in the background, derived from a signature from that wallet. There's no new seed phrase to write down.

You fund the account with ETH. USDC works too. The funding does three jobs: a small ETH deposit that discourages spam, posting credit that pays network fees, and separate credit for Bok.

## Why a post can't be traced to you

Each post is a private Aztec transaction. Its fee is paid from your private credit through a shared fee contract, so no wallet address appears next to the post. There is zero link between the post and your account.

You choose how a post signs itself. Post as Anonymous, the composer's own label, or under a name you own. Either way the privacy layer is the same: the text is public, the author is not.

## As many names as you like

Create as many names as you want. Each one is a first name and a last name, and the pair is unique across the board. A random name generator is there if you'd rather not choose.

The composer's Post as menu lists your names plus Anonymous. Pick one for each post.

![RollingChat Names](/api/media/file/names.webp)

A name groups its own posts in public, so people can follow it, and each name has a profile with a bio and an avatar. That is the only grouping that exists. Nothing public connects one of your names to your other names, to your Anonymous posts or to your wallet. The name registry proves that a name is unique and that you own it, without revealing which names share an owner.

Anyone can follow a name and read its posts, with zero link to the account behind it. The follow itself is private too. Following a name publishes nothing about who follows it.

## A frontend, not a gatekeeper

Everything runs onchain. Boards, rules, posts, threads, names, profiles, tips and moderation outcomes are onchain records, and the index RollingChat shows you can be rebuilt from the chain.

RollingChat is a frontend and nothing more. It has no special privileges and no view into your account. It can't post as you, can't see which names are yours and can't move your funds. Withdrawals go back to the Ethereum wallet you funded from.

## Bok

Bok is the AI assistant in every thread. Mention @bok in a post or reply, set a spending limit, and pay only for the work it does, from your Bok credit.

Bok reads the whole thread, and anyone in the thread can give it work. It can write and test code, and it can publish a web page from the thread and reply with a shareable link and a source download. Each thread gets its own workspace.

![RollingChat Bok](/api/media/file/bok.webp)

Bok's replies are authenticated as Bok, so nobody can pose as it, and Bok is reserved as a name. Its replies answer to the same board rules as everyone else's posts.

## Moderation that never unmasks anyone

A board where authors can't be identified has an obvious problem. You can't ban a person you can't see. Vitalik solved it inside the contract, and RollingChat keeps his design.

### The moderator and the rules

A moderator, the censor in Vitalik's code, is set when the board is deployed. The moderator publishes the board's rules onchain as a short text policy, up to 1,488 bytes, and the app shows those rules. The moderator can flag a post that breaks them. A flagged post leaves the default feed. Readers who want to see it still can.

### How a penalty reaches an author nobody can see

Each of your posts carries a hidden link to your previous post, derived from your own secret key. Only you can connect them. When you make a new post, it proves in zero knowledge that your earlier posts have been checked against the moderator's flags. A post can only be checked after a waiting window, one hour by default, which guarantees the moderator time to flag it first. If an earlier post of yours was flagged, your next post waits extra cooldown periods. And you can't withdraw your deposit until all your posts have been checked, so there's no posting something that breaks the rules and pulling the money out before the flag lands.

Rate limits use the same mechanism. A larger deposit means a shorter cooldown between posts.

### The bot

Vitalik also wrote the first moderator bot: a daemon running a local language model that reads the onchain policy as its source of truth and flags violations on its own. The moderator role can be handed to another address.

### What RollingChat adds

In Zac's version, the moderation model runs locally on the moderator's own machine, inside an isolated container with no internet access. It sees only public posts and the current rules, and it can return only a verdict and a reason. It can't pick a wallet or a transaction. A separate signer submits the flag from the moderator's own wallet.

Rules apply to older posts too, and a rule change triggers a fresh evaluation. A flag adds a penalty only if it lands within the post's penalty window and under the same version of the rules the post was published under. A new rule can remove old material without punishing its author after the fact.

Anyone can create a subboard with extra rules of its own. The effective rules are the main board's plus the subboard's. The main rules are checked first, in a separate request to the model, so a subboard's text can't instruct the model to ignore them. The moderator can reject a subboard that undermines the main rules.

### What you can check

Moderation never reveals who wrote a post. Every flag is recorded onchain with its reason and the rules version it applied, so anyone can audit what was moderated and why. Hiding is not deleting. The original post stays in public chain history; the app stops showing it by default.

The app puts it in one sentence: posts that break the rules delay posting and withdrawal.

## It's still early

RollingChat is early. Posts are still relatively costly, because every one is a full private transaction with its own proof and its own fees. Updates are coming to batch transactions, which will lower costs significantly.

## Try it

Open [rolling.chat](https://rolling.chat/), connect a wallet and post. Then read the code: [Vitalik's original](https://github.com/vbuterin/aztec_experiments) and [Zac's completed version](https://github.com/zac-williamson/aztec_experiments).

---

Markdown representation of https://aztec.network/blog/rolling-chat-private-messaging-board. Published by Aztec Foundation.
