The daily loop first - follow the numbers, ~15 minutes. Everything else is reference, folded below. Updated 2026-07-16.
The app is gated by Sign In With Farcaster. The owner (the configured fid) gets everything. Everyone else gets a read-only view: Feed, Channels, Search, POIDH. No write action exists in the guest surface - the server enforces it, not just the UI. Nothing a guest does can post, like, or spend on the owner's behalf.
| Key | Tab | What |
|---|---|---|
| 1 | Daily | checklist, ZOE card, launcher, scheduled posts |
| 2 | Feed | following / for-you / trending / lists |
| 3 | Inbox | unanswered replies + mentions, AI drafts |
| 4 | Chan | home channels + any channel |
| 5 | Search | people + casts |
| 6 | Post | compose, quote, schedule, cross-post |
| 7 | Grow | followers, top fans, top casts, Zora coin |
| 8 | Empire | Empire Builder: empire, leaderboards, boosters |
| 9 | POIDH | bounty reader |
cmd+K anywhere: jump to a tab, open a profile with @name, search, or Ask ZAO.
ZOE is the ZAO's assistant agent. It lives on Telegram, but zaalcaster plugs into the same two surfaces it works from:
Empire Builder (empirebuilder.world) wraps a community in leaderboards, boosters, and a treasury - with or without a token. The playbook: don't launch a token first. Stand up a tokenless empire, build real energy on a leaderboard, tokenize later when there's something for the token to amplify.
On the tab: your empire card (leaderboards, boosters, rewards, your rank), view-leaderboard (top 25 with Farcaster names), a paste-a-tx-hash lookup showing exactly who a distribution paid, the ecosystem's top empires, and a capabilities catalog marking what's live vs documented.
Needs: a wallet (MetaMask, Coinbase Wallet, or a Farcaster client's built-in one) and a minute. No token, no funds move.
config.js (empireOwnerWallet) - the tab shows your card from then on.No "attach to my Farcaster profile" option on purpose: a profile-attached empire is permanent - that profile can never create another. Create standalone.
A booster multiplies leaderboard points for people who hold something - reward your actual community.
1000000 for a 1M floor. Decimals stay 18 unless the token is unusual; the math is exact.POIDH ("pics or it didn't happen", poidh.xyz): fund a pot, people submit proof, the pot pays. The tab reads any bounty live - round chips for the BCZ rounds, or paste any bounty id for the pot, status, and every claim with images. Claiming itself happens on poidh.xyz (it's an on-chain action from your wallet).
| Feature | Needs |
|---|---|
| Reading Farcaster | NEYNAR_API_KEY + your fid |
| Posting | a Neynar managed signer (npm run mint-signer) |
| Sign-in gate | SESSION_SECRET + NEYNAR_CLIENT_ID - both or neither; half-set fails closed on purpose |
| AI drafts + digest | OPENROUTER_API_KEY |
| Sync + scheduled posts | Vercel KV + CRON_SECRET |
| Create empire / boosters | EMPIRE_BUILDER_API_KEY + your wallet in the browser |
| Empire card | empireOwnerWallet in config.js |
| Zora coin card | zoraCoinAddress in config.js - no key |
| ZOE card + Ask ZAO | ZAO_TRACKER_URL, ZAO_TRACKER_KEY, BONFIRE_API_KEY, BONFIRE_ID |
| POIDH, top empires | nothing - public APIs |
zaalcaster is one person's client, built to be forked. Name yours <your-farcaster-username>caster. Identity, channels, brands, voice, and every integration knob live in config.js + env vars - the README walks the whole thing.