Solution Overview

The Agora Solution — Six Pillars

Semaphore for anonymous voting, RLN for spam-resistant posts, UniRep for pseudonymous reputation, Token Engine v2 for a self-balancing economy, multi-chain + ZK rollup for scale, and cross-platform accessibility.

A New Paradigm for Anonymous Participation

The six failure modes described in the Problem section share a common root cause: they are each treated in isolation. Agora rejects that framing. Our solution is a single integrated stack where Semaphore, RLN, UniRep, Token Engine v2, multi-chain deployment, and cross-platform accessibility all reinforce each other.

This is not a voting app bolted onto a blockchain. It is a production-grade anonymous social ecosystem — 48 backend modules, 22 extracted core packages, 13 smart contracts, 6 custom circom circuits — built and shipped over a compressed series of milestones (v1.0 through v9.0) between March 1 and March 22, 2026.

Each of the six pillars below corresponds to a specific failure mode from the Problem section, with specific code, contracts, and circuits backing the claim. Together they deliver what was previously thought impossible: anonymity + integrity + spam resistance + pseudonymous reputation + sustainable economics + cross-platform reach — all simultaneously, all cryptographically enforced.

Semaphore v4 — Anonymous Voting

Semaphore v4 lets users prove group membership and cast votes without revealing which leaf of the Merkle tree they occupy. Client-side proof generation keeps all secrets local; the server only ever sees anonymous commitments.

Complete voter anonymity via ZK group membership
Nullifiers prevent double-voting while preserving privacy
Identity secrets never leave the client
Poseidon2-based identity on mobile (SecureStore-persisted)

RLN — Spam-Resistant Anonymous Posts

Rate-Limiting Nullifier (RLN) solves the impossible tradeoff: it lets anonymous users post and comment while automatically rate-limiting them. Exceeding the quota reveals the user's secret, so spam becomes self-incriminating — without ever linking honest users to their content.

Per-epoch rate limits enforced cryptographically
Spammers self-identify; honest users remain anonymous
Offline quota tracking on mobile (AsyncStorage + server sync)
Custom rln.circom circuit integrated with the Gnark prover

UniRep — Pseudonymous Reputation

UniRep provides epoch-based reputation that can be proved without revealing the user's identity. Users can boost/squash content, prove reputation ≥ threshold, and transition state across epochs — all without exposing who they are.

Anonymous boost/squash voting on content
Reputation-gated communities without identity disclosure
Epoch key circuits: epoch_key, reputation_proof, state_transition
Sybil resistance through reputation cost

Token Engine v2 — Dynamic Scaling Economy

A fully on-chain economy that self-balances across four growth stages (10K → 10M+ users). Reward rates, poll costs, and registration bonuses automatically rescale; treasury health directly drives reward multipliers; governance is token-weighted and stake-amplified.

20M AGR cap with 80% burn on poll creation (deflationary)
5-tier staking (3%–20% APY) with 1.0x–3.0x governance multiplier
Risk-level reward multipliers: 100/90/70/50% (NORMAL/WARNING/CRITICAL/EMERGENCY)
Multi-sig tiered treasury (1/2/3 signers based on transfer size)

Multi-Chain Deployment + ZK Rollup

13 OpenZeppelin v5 smart contracts deployed to Ethereum mainnet plus Base, Arbitrum, Optimism, and Polygon. High-throughput paths (posts, reactions) route through a Gnark prover cluster that batches proofs and anchors them to ZKRollupDA.sol.

Deployed to 5 networks — users choose their preferred L1/L2
Gnark prover cluster (Go, 8 CPU / 32 GB) batches proofs at 50/30s
ZKRollupDA.sol anchors batch state commitments on-chain
Canton validator integration for private enterprise settlement

Cross-Platform Accessibility

Next.js 15 web (40+ routes) plus React Native 0.81.5 / Expo 54 mobile (18 feature modules). Identity management, ZK proof generation, and offline quota tracking all work seamlessly across web and mobile.

40+ web routes, 18 mobile feature modules
Three theme variants: Modern neon, Classic Light, Classic Dark
Offline identity + quota tracking, background sync
Accessibility (a11y) hardened across all components

How It Works

1

Identity Generation

Users generate a Semaphore v4 identity. On mobile the identity is Poseidon2-derived and persisted in SecureStore. The secret never leaves the client — the server only sees the commitment.

2

Group Registration

The identity commitment is added to the target Merkle tree (poll, community, or global group). For reputation-gated actions, a UniRep epoch key is also registered.

3

Anonymous Action (Vote, Post, Comment, Boost)

The client generates a bundled ZK proof: Semaphore membership + RLN nullifier (for anti-spam) + optional UniRep reputation + action-specific statement. The bundle proves everything without revealing who.

4

On-Chain / Off-Chain Verification

Groth16Verifier.sol validates proofs on-chain for votes and governance actions. High-throughput paths (posts, reactions) route through the Gnark prover cluster and are anchored via ZKRollupDA batches — gas efficient at scale.

Key Advantages Over Traditional Systems

Cryptographic Security

Votes are protected by mathematical proofs, not trust in centralized authorities.

True Anonymity

Zero-knowledge proofs ensure voter identity can never be linked to vote choice.

Public Verifiability

Anyone can verify vote counts and integrity without compromising privacy.

Decentralized Trust

No single point of failure. Trust is distributed across the blockchain network.

Global Accessibility

Vote from anywhere, anytime, using web or mobile interfaces.

Cost Efficiency

Reduced infrastructure costs compared to physical polling stations.