Agora MVP Documentation

Pragmatic, minimum-viable spec for shipping a real truth market

Version 0.1 β€’ Last updated: January 2025

MVP Core Loop

Keep it boring, testable, and real

πŸ’°

Stake

Post claims with token stakes to put money where your mouth is

πŸ—³οΈ

Vote

Witnesses cast votes with their own stakes on the line

βš–οΈ

Settle

Truth earns rewards, lies fail and cost money

πŸ“ˆ

Reputation

Accuracy builds long-term credibility and influence

1. Product Scope (MVP)

βœ…

Goal

Demonstrate a closed-loop truth market with real interactions and transparent rules.

❌

Non-goals (MVP)

No biometric onboarding yet. No public token sale. No "decentralized everything."

User Stories

πŸ‘€ As a Claimant

I can post a claim with sources, lock a stake, and see status changes in real time.

πŸ‘οΈ As a Witness

I can be selected by the deterministic selector, review the claim & sources, cast a vote, and post an on-chain/off-chain attest.

πŸ” As an Observer

I can verify the selection + tally from the same inputs and reproduce the result in-browser.

2. System Overview

Core components and data flows

Components

🌐

Web App (Next.js/React)

Claim submission, witness console, read-only explorer

🎯

Selector Service

Deterministic function: maps public seed β†’ Conway's Game of Life β†’ witness indices

βš™οΈ

Coordinator

Orchestrates claim lifecycle, assigns witnesses, records votes, applies settlement

πŸ’Ύ

State Store

PostgreSQL (app state) + optional public Merkle snapshots. Optional L2 testnet for anchoring

πŸ”„

Data Flows

1

Claim Submission

Claimant submits claim + stake β†’ Coordinator issues ClaimID and emits Seed

2

Witness Selection

Selector derives Witness Set for round from Seed (reproducible client-side)

3

Voting Process

Witnesses fetch claim, vote Yes/No/Abstain with rationale + evidence links

4

Settlement

Coordinator tallies, settles stakes, updates reputation, emits Receipt

5

Verification

Client can recompute selection + tally from Seed + Votes to verify

3. Deterministic Selection (Game of Life)

Fair, verifiable witness selection using Conway's Game of Life

🎯

Inputs

  • seed: 256-bit hex (derived from: block hash or verifiable random source + timestamp + ClaimID)
  • witness_list: ordered list of eligible witness public keys
🧬

Algorithm Steps

  1. Hash seed into N Γ— N grid (e.g., 64Γ—64) binary state
  2. Run Conway's Game of Life for G generations (e.g., 64)
  3. Concatenate final grid β†’ bitstring β†’ 16-bit chunks
  4. Map each chunk to witness index
  5. Deduplicate to get K unique witnesses (e.g., K=11)
πŸ”

Reproducibility

πŸ›‘οΈ

Grinding Resistance

  • Seed commits at claim submission
  • Derived from immutable block header + ClaimID
  • Coordinator cannot manipulate selection
  • All components publicly displayed

4. Claim Lifecycle & Economics

From submission to settlement

πŸ“

Draft

Claim created with sources

πŸ’°

Staked

Claimant locks tokens

πŸ‘οΈ

Witnessing

Selected witnesses vote

βš–οΈ

Resolved

True/False/Inconclusive

πŸ’Έ

Settled

Stakes redistributed

🎯

Stakes

  • Claimant posts S_c (e.g., 10 AGORA test tokens)
  • Each selected Witness must post S_w (e.g., 1) to vote
  • Abstain burns 10% (anti-sibyl/idle penalty)
πŸ’°

Payouts (MVP, Simple)

  • True: claimant receives S_c + pool_share
  • False: claimant loses S_c to opposing votes
  • Witnesses: aligned split opposing stake
  • Inconclusive: partial refunds, small burn
  • Fees: flat F per claim for operations

5. Reputation (v0.1)

Building trust through performance

πŸ†

Score

Elo-like update per resolved claim (K-factor small to avoid thrash)

⏳

Decay

Soft decay per week to reward recent performance

πŸ“Š

Displays

Show confidence bands; hide leaderboard until Nβ‰₯20

6. Trust & Verification

Transparency by design

βœ…

Verification Methods

  • Publish test vectors for selection and tally
  • Provide a one-click Recompute in UI that runs the same selector in-browser and shows diffs
  • Anchor daily Merkle root of all claims to a public chain (optional)

Transparency by Design: Every step of the process is verifiable by independent observers.

7. Data Interfaces

API and data structures

πŸ“

Claim Structure

{
  ClaimID: string,
  content: string (280–2,000 chars),
  sources: url[],
  stake_claimant: integer,
  seed: hex-256,
  state: enum,
  created_at, resolved_at,
  receipt_hash: hex (post-settlement)
}
πŸ—ΊοΈ

Vote Structure

{
  VoteID, ClaimID, WitnessPubKey,
  choice: enum {YES, NO, ABSTAIN},
  rationale: string (<= 500 chars),
  stake_witness: integer,
  signature: hex
}

8. Security & Abuse (MVP)

Protecting platform integrity

πŸ›‘οΈ

Security Measures

  • Rate limiting per account + IP
  • Invite-only codes; max 1 active claim per new account
  • Evidence links checked against malware/NSFW blocklists
  • Logging with redaction; PII avoided at this stage

9. Deployment

Technical infrastructure

πŸš€

Deployment Plan

  • Docker compose: web, coordinator, selector, db
  • Staging URL with basic auth
  • Public demo video recorded from staging

10. Success Criteria (MVP)

Measurable goals for launch

βœ…

End-to-End Testing

End-to-end claim resolved with β‰₯11 witnesses in <24h on staging

πŸ”

Reproducible Results

Independent user can reproduce selection & tally in-browser

πŸ“„

Public Documentation

Post a public "How We Verified This Claim" example with inputs/outputs

11. Open Questions

Areas for future research

❓

Research Areas

  • Optimal K (witness count) vs. latency
  • Better seed source (e.g., drand) and anti-grinding upgrades
  • Appeal/arbitration flow without killing simplicity

Next Steps

Implementation roadmap

πŸ—ΊοΈ

Implementation Plan

This MVP specification will be implemented in stages, starting with the core claim lifecycle and deterministic witness selection. Each component will be thoroughly tested before moving to the next.

Related Documentation

πŸ›‘οΈ

Verification & Privacy

Privacy-first human verification approach

πŸ’°

Token & Governance

Economic model and governance structure

πŸ“„

Technical Whitepaper

Complete technical specification