Eldersafe β 4-Month Build Plan
From seed capital to pilot launch. 16 weeks. 50,000 DKK. 10 founders.
The pilot is the onboarding β first 100 signups trigger the genesis EldersafeβΓldre Sagen collaboration.
No MOU required to start. The verification emails are the partnership proposal.
Phase 1 β Foundation (Weeks 1β4)
Strategy shift: We don't wait for Γldre Sagen. The pilot is the partnership proposal. When a user signs up with their membership number, the system sends a verification email to Γldre Sagen's public contact address. Every verification request is a traceable, documented demonstration of the collaboration model. If they respond β we have proof the format works. If they don't β we have proof we tried. Either way, the system runs.
- Build Set up development environment on the current VPS. Git repo, venv, SQLite, Caddy.
- Build Deploy Flask endpoint behind Caddy with auto-HTTPS on eldersafe.cloud. Prove the stack works.
- Build Configure @eldersafe.dk email infrastructure β catch-all for {member_number}@eldersafe.dk addresses.
- Docs Design the verification email template: Danish-language, clear subject line, explicit response options ("vi bekræfter" / "vi afviser at udtale os"), CC to membership-specific eldersafe address.
- Docs Define reminder schedule: max 3 emails total (anti-spam). Deadlines. Timeout behavior.
- Docs Create shared docs repo (all architecture docs live here).
- Risk If eldersafe.dk email isn't deliverable, the verification loop breaks. Test DKIM/SPF immediately.
- Partner Identify 3+ Danish notary candidates (trust service providers, Nets, law firms with HSM capability). Send the identity revelation protocol spec.
- Partner Request indicative pricing: air-gapped HSM, BSV chain monitoring, court order verification, annual retainer.
- Risk If all three say "we don't do that" or quote >20 DKK/member β redesign the notary role or absorb the cost.
- Docs Contact a Danish fintech/blockchain lawyer. One-hour consult: does the pilot trigger MiCA? Finanstilsynet? Datatilsynet?
- Docs Start DPIA (Data Protection Impact Assessment) draft. Use the GDPR analysis from the architecture docs.
- Build Set up BSV testnet wallet. Write and broadcast a test transaction from Python. Prove the BSV integration path works.
- Test Measure: time from Python β broadcast β confirmation. Record baseline.
- Build Auth system: member_number + email β JWT magic link. 10-minute expiry. Rate-limited.
- Build Session management: HttpOnly, Secure, SameSite=Strict cookies. Session timeout.
- Build Verification workflow: on signup β send templated email to Γldre Sagen (info@aeldresagen.dk) + CC {member_number}@eldersafe.dk. Email asks: confirm or refuse. Fully traceable.
- Build Reminder engine: 3 emails max. Escalating interval (72h β 168h). Deadline cutoff. Status: pending β verified / refused / timeout.
- Build Dashboard: shows verification status, email trail, next reminder date. Member understands where they are in the process.
- Test Auth flow end-to-end: login β magic link β verify β dashboard.
- Test Verification flow: signup β email sent β reminder schedule β response handling β status update. Test with both valid and invalid membership numbers.
- Test Negative tests: wrong member number, wrong email, expired token, double-use token, rate limit.
- Build Life signal endpoint: POST /api/signal. Idempotent per 24h window. Records to PostgreSQL.
- Build Signal streak tracking: count consecutive days. Display on dashboard.
- Build Dashboard: shows last signal time, current streak, reward balance (placeholder).
- Build PWA manifest + service worker. App is installable on mobile. Works offline (cached UI, no data).
- Test 5 test members. Each fires a signal. Verify DB records. Verify dashboard updates.
- Test Install PWA on Android + iOS. Verify it launches, auth works, signal fires.
- Docs Write CHECKPOINT #1 report: auth works, signal works, PWA installable, verification emails firing.
Phase 2 β Blockchain + Contracts (Weeks 5β8)
The BSV integration moves from testnet to mainnet. Smart contract logic goes live. The treasury wallet exists.
- Build Whatsonchain API integration β broadcast raw transactions to BSV mainnet.
- Build Wallet key management: generate and store BSV keypairs. Derive from salted member_number.
- Build Signal β BSV tx pipeline: enqueue to Redis, batch worker picks up, broadcasts, records txid.
- Test End-to-end: fire signal β txid appears in DB β txid verifiable on BSV block explorer.
- Test Measure: latency from signal to on-chain confirmation. Cost per tx in satoshis.
- Test Batch test: fire 100 signals rapidly β batch worker handles them β all confirmed.
- Build Contract state machine: active β breach_day_1 β breach_day_2 β β¦ β breach_day_7 β terminated.
- Build Cron job (every 30 min): check all active members. If last_signal > 24h, advance breach state.
- Build 30-day streak bonus: after 30 consecutive days, credit 5 satoshis to member reward balance.
- Build SMS escalation trigger: at breach_day_3, enqueue SMS to designated contacts. (Mock SMS for now.)
- Test Simulate: member skips day 1 β breach state advances. Member resumes β state resets to active.
- Test Simulate: member skips 7 consecutive days β contract terminates. SMS escalation fires.
- Test Simulate: 30-day streak β bonus credited. Verify satoshi amount.
- Build Eldersafe public fund wallet (BSV multisig address). Visible on block explorer.
- Build BSV treasury wallet β receives 10 DKK per activation. Holds the 109 BSV from seed.
- Build 50 DKK split accounting: payer rebate (10), BSV treasury (10), founder (2), SMS escrow (1.50), notary (5), ops (21.50).
- Build Reward payout: 1 satoshi per signal, 5 satoshi per 30-day bonus. Deducted from treasury.
- Test Simulate 100 member activations. Verify each split line reconciles. Verify treasury balance matches expected.
- Docs Public treasury dashboard: a read-only page showing fund balance, inflows, outflows. Live on status.eldersafe.dk.
- Test UX test session #1: 3β5 Danish seniors (65+). Silent observation. No instructions. Watch them try to log in, check in, read dashboard.
- Test UX test session #2: incorporate fixes. Test again with 3 different seniors.
- Build All UI text in Danish. Large fonts. High contrast. Minimal taps. Clear feedback after every action.
- Build Accessibility: screen reader support, touch targets β₯ 48px, no tiny text, no jargon.
- Docs UX findings report. What worked. What didn't. What changed. Share with Γldre Sagen.
- Docs CHECKPOINT #2 report: blockchain live, contracts working, treasury visible, UX tested.
Phase 3 β Pilot Preparation (Weeks 9β12)
From working prototype to production pilot. Infrastructure hardening, monitoring, onboarding flow.
- Build Migrate SQLite β PostgreSQL if not already done. Apply production schema from architecture doc.
- Build Redis for signal queue (replace any in-memory queue).
- Build Systemd units for all services: eldersafe (Gunicorn), caddy, eldersafe-worker (BSV batch), eldersafe-cron (breach checks).
- Build Logging: structured JSON logs. Rotated. Separate error log.
- Build Backup: pg_dump daily, off-site to Hetzner Storage Box. Test restore.
- Test Reboot server. Verify all services auto-start. Verify signal flow still works.
- Test Kill PostgreSQL. Verify Gunicorn returns 503. Restore PostgreSQL. Verify recovery.
- Build Better Uptime monitoring: health checks every 30s. Public status page.
- Build Alerts: Redis queue depth > 1000, failed BSV broadcasts > 5, DB down, disk > 80%.
- Build SMS gateway integration (GatewayAPI.dk). Real SMS for breach escalation.
- Build Email delivery (SendGrid). Magic link emails. Breach notification emails.
- Build 2-of-3 channel auth: app + SMS + email. Implement channel verification flows.
- Test Trigger breach β SMS sends. Verify delivery. Verify cost logged.
- Test Kill the server β Better Uptime alerts fire within 60s.
- Build Activation flow: member_number + email β verification email sent β BSV wallet generation β activation contract on-chain.
- Build Welcome sequence: confirmation email, first-time dashboard tour (Danish), "try your first check-in" prompt.
- Docs Member guide (Danish, paper-friendly PDF): "Hvad er Eldersafe?" β what it is, what it does, what it costs, your rights.
- Docs Privacy notice: what data goes on-chain, what stays off-chain, how to request erasure. GDPR-compliant.
- Test Onboard 10 test members end-to-end. Zero human help. Time the process. Fix friction points.
- Partner Coordinate with Γldre Sagen on pilot member recruitment. Who? How many? When? How will they be contacted?
- Build Member simulator: scripted 100 members, realistic check-in patterns (some miss days, some have streaks, 2 trigger breach).
- Test Run 7-day simulation. Collect: signal completion rate, breach cascade accuracy, reward payout accuracy, BSV fee total, infra cost.
- Test Verify treasury reconciliation: BSV in = BSV out + treasury balance. 100% match required.
- Test Load test: 500 concurrent signals. Verify response time < 500ms. Verify queue drains within 5 minutes.
- Docs Dry run report: all KPIs measured, all projections updated, all issues logged.
- Docs CHECKPOINT #3 report: pilot-ready. Handoff package for Γldre Sagen.
Phase 4 β Pilot Launch (Weeks 13β16)
Real members. Real life signals. Real BSV transactions. The data that proves the model.
- Partner Onboard first cohort: 10 members (possibly Γldre Sagen volunteers or staff, tech-comfortable).
- Test Active monitoring: watch every signal, every BSV tx, every dashboard view. Log every anomaly.
- Test Daily standup: review previous day's data. Any missed signals? Any failed broadcasts? Any member confusion?
- Build Fix issues immediately. Short feedback loop. Deploy daily if needed.
- Docs Soft launch log: every issue, every fix, every member interaction.
- Partner Onboard second cohort: 40 more members. Include less tech-comfortable seniors. Test the UX thesis.
- Test Compare signal rates: cohort 1 (tech-comfortable) vs. cohort 2 (typical senior). Identify UX gaps.
- Test SMS escalation: ensure it only fires for real breaches. Zero false positives.
- Test Email deliverability: magic links arrive. Breach notifications arrive. Not spam-foldered.
- Docs Mid-pilot report: 2 weeks of data. Cost per signal. Member retention. Streak distribution.