### Description Add time-based proof expiration with automatic renewal notifications and grace periods. ### Requirements - [ ] Proof expiration dates - [ ] Automated renewal reminders - [ ] Grace period handling - [ ] Renewal workflow - [ ] Expiration analytics - [ ] Bulk renewal options - [ ] Expiration notifications ### Acceptance Criteria - [ ] GIVEN proof expiration, WHEN reached, THEN proof becomes invalid - [ ] GIVEN renewal reminder, WHEN triggered, THEN user receives notification - [ ] GIVEN grace period, WHEN active, THEN proof remains temporarily valid - [ ] GIVEN renewal workflow, WHEN initiated, THEN process is streamlined - [ ] GIVEN expiration analytics, WHEN viewed, THEN insights are provided ### Files to Work On **Backend:** - `src/services/expirationService.ts` - `src/services/renewalService.ts` - `src/services/notificationService.ts` - `src/controllers/expirationController.ts` - `src/models/ProofExpiration.ts` - `src/models/Renewal.ts` **Smart Contracts:** - `contracts/src/proofExpiration.rs` **Frontend:** - `src/components/Expiration/RenewalDashboard.tsx` - `src/components/Expiration/ExpirationAlert.tsx` - `src/components/Expiration/BulkRenewal.tsx` ### Definition of Done - [ ] Proof expiration works reliably - [ ] Renewal reminders are timely - [ ] Grace period prevents service disruption - [ ] Renewal workflow is user-friendly - [ ] Expiration analytics provide insights - [ ] Bulk renewal handles multiple proofs - [ ] Notifications reach users effectively - [ ] All expiration features are tested