Governance interface for *Space — a Wyoming DAO LLC with on-chain rule.
Athena is the governance layer for *Space, a decentralized organization designed to evolve from founder-led to fully community-governed. The system is built with hardcoded sunset triggers that automatically dissolve centralized control when the community proves itself ready.
Founder Control → Earned Trust → Community Sovereignty
*Space starts with a benevolent dictator model (you hold veto + keys), but the contracts enforce a path to decentralization. When the DAO hits maturity metrics, control burns automatically. No promises—just code.
| Token | Type | Acquisition | Purpose |
|---|---|---|---|
| SpaceMoney (SM) | Economic | Purchase / Earn | Treasury share, revenue share, incubator access, proposal funding |
| SpaceTime (ST) | Governance | Work only | Voting power, proposal creation, reputation |
Control auto-revokes when ALL conditions are met:
| Metric | Threshold |
|---|---|
| Proposal acceptance rate | 99.9% for 5 consecutive years |
| ST distribution | 10,000+ distinct earners |
| Treasury concentration | < 20% held by founder |
Result: Veto burns. Upgrade keys burn. Voting becomes pure ST-weighted democracy.
Every proposal contains:
┌─────────────────────────────────────────┐
│ BUDGET SM or stablecoins │
│ REWARD ST to executor │
│ VOTER REWARD ST to correct voters │
│ SUCCESS METRIC Measurable outcomes │
│ EXECUTION Auto-runs or escrows │
└─────────────────────────────────────────┘
Incentive alignment:
Entity: Wyoming DAO LLC
Operating Agreement declares:
| Layer | Technology |
|---|---|
| Framework | SvelteKit 2 + Svelte 5 |
| Blockchain | Ethers.js v6 / Polygon |
| Auth | Session-based + Discord OAuth |
| Deploy | Cloudflare Pages (Edge) |
| Styling | Vanilla CSS (minimal bundle) |
git clone https://github.com/starspacegroup/athena.git
cd athena && npm install
cp .env.example .env
| Variable | Description |
|---|---|
DISCORD_CLIENT_ID |
Discord OAuth client ID |
DISCORD_CLIENT_SECRET |
Discord OAuth secret |
DISCORD_REDIRECT_URI |
Callback URL |
SPACETIME_TOKEN_ADDRESS |
ST contract (Polygon) |
SPACEMONEY_TOKEN_ADDRESS |
SM contract (Polygon) |
SESSION_SECRET |
Session encryption key |
npm run dev
→ Open http://localhost:5173
src/
├── lib/
│ ├── server/session.ts # Session management
│ ├── stores/
│ │ ├── auth.ts # Auth state
│ │ └── tokens.ts # Token balances
│ └── wallet.ts # Web3 utilities
├── routes/
│ ├── api/
│ │ ├── auth/ # Auth endpoints
│ │ └── tokens/ # Token endpoints
│ ├── dashboard/ # Main dashboard
│ └── tokens/ # Purchase & transfer
└── app.html # Shell
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Connect │ → │ Connect │ → │ Dashboard │
│ Wallet │ │ Discord │ │ Access │
└─────────────┘ └─────────────┘ └─────────────┘
↓ ↓ ↓
Polygon OAuth2 Session
Network Flow Cookie
npm run build → .svelte-kit/cloudflarenpm run build
npx wrangler pages publish .svelte-kit/cloudflare
| Action | Steps |
|---|---|
| Connect Wallet | Click "Connect Wallet" → Select MetaMask/Coinbase → Approve → Auto-switch to Polygon |
| Connect Discord | Click "Connect Discord" → Authorize → Redirected back |
| View Balances | Dashboard shows ST (earned) + SM (owned) |
| Purchase SM | Dashboard → Purchase → Enter amount → Confirm tx |
| Transfer SM | Dashboard → Transfer → Enter recipient + amount → Confirm tx |
| Component | Status | Production TODO |
|---|---|---|
| Token Balances | Mock | Fetch from chain via ethers.js |
| Purchases | Mock | Implement sale contract |
| Transfers | Mock | Connect to wallet.ts transfer fn |
| Sessions | In-memory | Move to Cloudflare KV/D1 |
Phase 1: Auth + Balances ← You are here
Phase 2: Real token contracts
Phase 3: Proposal system
Phase 4: ST earning mechanics
Phase 5: Governance voting
Phase 6: Sunset trigger implementation
MIT