A Plural Staking Super App for Celo
ProsperON is an experimental economic model where network usage (gas fees and voluntary CELO burns) earns users non-transferable, decaying "Prosper Credits" that determine their share of weekly yield distributions from a collaborative endowment pool.
┌─────────────────────────────────────────────────────────────────┐
│ │
│ BURN → MINT → POOL → ALLOCATE │
│ │
│ 1. Use Celo (pay gas, burn CELO) │
│ 2. Earn Prosper Credits (with 2% weekly decay) │
│ 3. Endowment generates yield via Aave │
│ 4. Yield distributed based on your credit share │
│ │
└─────────────────────────────────────────────────────────────────┘
- View your aggregated Prosper Credits across all linked wallets
- See transaction history with gas costs and burn amounts
- Track credit decay projection over time
- Perform voluntary CELO burns to boost credits
- Create proposals for community discussion
- Vote on proposals with credit-weighted voting power
- Comment and participate in discussions
- Voting power = your current decayed credits at time of vote
- Direct your allocation across ecosystem priorities:
- Users - Rebates, perks, community distribution
- Builders - Gas sponsorship, growth boosts
- Public Goods - Infrastructure, tooling, audits
- Real-time endowment balance and Aave yield tracking
- Sponsor deposits and contributions
- Weekly distribution history
- Connect multiple wallets to one identity
- Aggregate credits from all verified wallets
- Signature-based wallet verification
- React with TypeScript
- Wouter for routing
- TanStack Query for server state
- Tailwind CSS + shadcn/ui components
- Wagmi + Reown AppKit for wallet connections
- Express.js with TypeScript
- Drizzle ORM with PostgreSQL
- Viem for blockchain interactions
- Etherscan API v2 for Celo transaction indexing
- Aave for yield generation on endowment
- Node.js 20+
- PostgreSQL database
- Etherscan API key (for Celo)
- Reown Project ID (for wallet connections)
# Database
DATABASE_URL=postgresql://...
# Etherscan API for Celo
ETHERSCAN_API_KEY=your_etherscan_api_key
# Reown/WalletConnect (must be in client/.env for Vite)
VITE_REOWN_PROJECT_ID=your_reown_project_id
# Admin access
ADMIN_PASSWORD=your_admin_password
# Burn address (optional, has default)
BURN_ADDRESS=0x2c696e742e07d92d9ae574865267c54b13930363
VITE_BURN_ADDRESS=0x2c696e742e07d92d9ae574865267c54b13930363# Install dependencies
npm install
# Push database schema
npm run db:push
# Start development server
npm run devThe app will be available at http://localhost:5000
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── contexts/ # React contexts (Wallet)
│ │ ├── lib/ # Utilities and configs
│ │ └── pages/ # Route pages
│ └── .env # Frontend env vars (VITE_*)
│
├── server/ # Express backend
│ ├── routes.ts # API endpoints
│ ├── storage.ts # Database operations
│ ├── db.ts # Database connection
│ └── services/ # Business logic
│ ├── credits.ts # Credit calculation with decay
│ ├── etherscan.ts # Transaction fetching
│ ├── aave.ts # Endowment yield tracking
│ └── distribution.ts # Weekly distributions
│
└── shared/ # Shared code
└── schema.ts # Database schema (Drizzle)
- Earn: 1 CELO burned (gas or voluntary) = 1 raw credit
- Decay: 2% per week, applied continuously based on transaction age
- Non-transferable: Credits are tied to your wallet identity
- Aggregated: All linked wallets contribute to your total
decayed_credits = raw_credits × (0.98 ^ weeks_since_transaction)
total_credits = sum(decayed_credits for all transactions)
- Voting power = your current decayed credits at vote time
- Votes are "snapshot" at cast time for auditability
- Supports For / Against / Abstain votes
- Credit threshold required to create proposals and vote
- Yield generated from Aave deposits
- Distributed proportionally:
your_share = your_credits / total_credits - Users can steer their allocation across ecosystem buckets
POST /api/wallet/connect- Register/login walletGET /api/wallet/:address- Get user and linked walletsPOST /api/wallet/:address/link- Initiate wallet linkingPATCH /api/wallet/:address/profile- Update username/bio
GET /api/credits/:address- Get decayed credit summaryGET /api/transactions/:address- Get transaction history
GET /api/governance/posts- List proposalsGET /api/governance/posts/:id- Get proposal detailsPOST /api/governance/posts- Create proposalPOST /api/governance/posts/:id/vote- Cast votePOST /api/governance/posts/:id/comments- Add comment
GET /api/endowment- Current endowment positionGET /api/sponsors- Sponsor depositsGET /api/distributions- Weekly distribution history
ProsperON Season 0 is a centralized MVP designed to validate the economic model before decentralization:
- All inputs are on-chain verifiable (Celo transactions)
- Credit calculations are auditable
- Allocations are tracked on a centralized ledger
- This phase collects data to design Celo's future economic system
This project is in experimental validation phase. Contributions and feedback are welcome as we iterate on the economic model.
MIT
Built with purpose for the Celo ecosystem.