System Architecture

VoteBoxAppApp

How a proposal is planted, votes accrue, and the outcome takes root on the ledger
01 · Client — React Native / Expo The Voter's Phone Biometric auth · session persist Device-generated voterKey (pseudonymous identity) Browse · Create · Vote · Discuss Haptics · drafts · offline queue APP-SIDE SERVICES BlockchainService builds tx · submits · reads the core of the loop IPFSService upload content + fallback Storacha primary TreasuryService fee split calc (app-side) founder / DAO treasury WalletService CIP-30 · web only mobile: not yet wired DiscussionService comments · local ok syncFromIPFS: stub DataSyncService offline action queue push/pull to complete NotificationSvc local alerts Discord webhook (env) AnalyticsService wallet · vote · error telemetry proposal body signed tx + metadata 02 · Content Storage — IPFS Storacha (primary) Full proposal JSON lives here Returns a content hash (CID) Gateway fallback chain Public gateways for redundancy No single point of failure only the content hash (CID) goes on-chain → 03 · Ledger — Cardano (preprod testnet) Proposal transaction metadata label 721 carries the IPFS hash ~2 ADA fee (split app-side) Vote transaction metadata label 1337 { proposalId, choice, key, ts } free · no ADA moves to vote Blockfrost submit + query API the bridge in and out of the chain query labelled metadata 04 · Read-back & Tally Fetch from chain Read foundation wallet's labelled metadata via Blockfrost Rehydrate proposals Parse CID → pull JSON from IPFS Reassemble full proposal Tally results Count vote transactions Immutable, publicly auditable results flow back to the phone — proposals & live tallies
Trustless by way of the ledger's permanence — not by a custom on-chain validator. Votes and proposals are metadata; content lives on IPFS. This is a deliberate architecture choice.
Client layer
IPFS storage
Cardano ledger
Read-back path
Service working
Partial / to complete
VoteBoxApp · LifeGround Community · built on The Seed — Blueprint for a Better Society
Architecture as of 28 July 2026 · Expo SDK 54 / React 19 / RN 0.81 · Cardano preprod · AGPL-3.0