# idea180-credimesh-federated-privacy CrediMesh is a federated underwriting core for privacy-preserving mortgage evaluation. This repository provides a deterministic orchestration slice for: - privacy-minimized shared signals from income and appraisal adapters - graph-of-contracts registration and conformance checks - an ADMM-lite solver for affordability, collateral, and rate reconciliation - Ed25519-signed audit events - SQLite-backed governance persistence ## What it does The package evaluates a `LocalUnderwritingProblem` by: 1. transforming borrower evidence into `SharedSignal` records with strict privacy budgets 2. checking those signals against contract metadata in a graph registry 3. reconciling affordability and collateral constraints with a deterministic solver 4. writing tamper-evident audit entries into SQLite without storing raw borrower payloads ## Modules - `models.py`: request, signal, plan, budget, and audit models - `identity.py`: Ed25519 DID-style identities - `contracts.py`: contract specs, conformance, and registry graph - `adapters.py`: income verification and property appraisal adapters - `solver.py`: deterministic underwriting solver - `ledger.py`: SQLite governance ledger - `orchestrator.py`: end-to-end flow ## Quick start ```python from idea180_credimesh_federated_privacy import CrediMeshOrchestrator, LocalUnderwritingProblem, SQLiteGovernanceLedger, create_identity problem = LocalUnderwritingProblem( borrower_id="borrower-1", lender_id="lender-a", requested_amount=400000, property_value=520000, annual_income=180000, monthly_obligations=900, ) with SQLiteGovernanceLedger(":memory:") as ledger: orchestrator = CrediMeshOrchestrator(create_identity("lender-a"), ledger) result = orchestrator.evaluate( problem, [ {"gross_monthly_income": 15000, "employment_months": 48, "employer_stability_score": 9.0}, {"gross_monthly_income": 15200, "employment_months": 50, "employer_stability_score": 8.8}, ], {"appraised_value": 535000, "confidence": 0.9, "comparables_count": 6, "days_on_market": 18}, ) print(result.plan.model_dump()) ``` ## Testing Run the local verification gate: ```bash bash test.sh ``` That script installs dependencies, runs `pytest`, and executes `python3 -m build`. ## Design rules - Keep borrower data minimized at the signal boundary. - Preserve deterministic replay for identical inputs. - Update tests whenever contract behavior changes. - Keep the SQLite ledger append-only and privacy-safe.