Skip to content

Commit 02bfc38

Browse files
Restructure docs and update core contract
1 parent d64dd1e commit 02bfc38

4 files changed

Lines changed: 50 additions & 183 deletions

File tree

README.md

Lines changed: 20 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
### A Housing Blockchain Solution for Social Good
88

9-
**OpenEscrow** is a free, open source app for transparent and fair management of the rental security deposit, that builds trust and unlocks financial opportunity between tenants and landlords by using smart contracts to serve as a neutral 3rd party escrow agent.
9+
**OpenEscrow** is a free, open source app for transparent and fair management of the rental security deposit, that builds trust and unlocks financial opportunity between tenants and landlords by using smart contracts to serve as a neutral 3rd party escrow agent.
1010

1111
Built as a digital public good — not for profit — OpenEscrow promotes financial inclusion, housing stability, and real-world trust without centralized control.
1212

@@ -16,71 +16,35 @@ There is no company, licensing fee, or monetization model behind OpenEscrow —
1616

1717
## System Wireframe
1818

19-
[Tenant Wallet]
20-
|
21-
createAgreement()
22-
|
23-
+-------------+
24-
| OpenEscrow |---> (optional call) ---> [RulesModule]
25-
| Core |---> (optional call) ---> [YieldModule]
26-
+-------------+
27-
|
28-
[Factory]--- createVault() ---> [UserVaults]
29-
|
30-
[EscrowViewer]
31-
|
32-
read info/multicall
33-
v
34-
[Dashboard / UI]
19+
This flow illustrates the full life cycle of a rental deposit agreement through OpenEscrow. It reflects a more transparent and tenant-centric logic, where the deposit is considered the tenant's property by default. A notice period is required before any release process can begin, and the landlord must submit a claim that is externally validated to override the default refund. The flow also includes optional integration with a yield module (for on-chain interest) and a read-only viewer contract to power the UI.
3520

36-
---
21+
> 💡 **Token Choice Note:**
22+
> WYST is the default payment token, but users may also choose supported stablecoins such as USDC or USDY. As long as sufficient liquidity exists on DEXs or CEXs, no dedicated pool is required. Users without a balance in their selected token will be prompted to swap before depositing.
3723
38-
### Project Overview
39-
40-
OpenEscrow provides:
41-
42-
- Smart contract-based escrow management for rental deposits
43-
- Invoice upload requirement for each deduction
44-
- Automated on-chain notifications
45-
- Tenant dispute/approval mechanics
46-
- Optional yield generation through U.S. Treasury-backed stablecoins
47-
- One-click report generation
48-
- Opt-in reputation system
49-
- Future-dated refunds
50-
- Web2 interface, no wallet, transaction interaction (unless desired)
51-
- Fiat on/off ramps via services like Moonpay or NowPayments
52-
- Wallet abstraction for email/social media login support
53-
- Multilingual and globally accessible deployment
54-
- Can be deployed on any chain without need for cross-chain functionality
55-
- Future plans to support other types of escrow arrangements
24+
➡️ [View full protocol flow](docs/protocol-flow.md) — lifecycle, logic, and onchain events
25+
🛠️ [View developer reference](docs/dev-reference.md) — functions, structs, and module interfaces
5626

5727
---
5828

5929
### Why OpenEscrow Matters
6030

61-
OpenEscrow also aligns with key priorities for public goods and the public sector in general:
62-
- Promoting financial inclusion for underserved communities
63-
- Supporting tenant and landlord trust and protections
64-
- Reducing cost and complexity in housing dispute resolution
65-
- Providing transparent, trust-minimized security deposit management
31+
OpenEscrow redefines how rental deposits are handled by aligning with the reality that **the deposit legally belongs to the tenant** until a valid claim proves otherwise.
32+
33+
This updated model:
6634

67-
There is no company, profit model, or licensing fee behind OpenEscrow. It is a digital public good - free infrastructure for communities, governments, and NGOs to adopt, build on top of, or deploy as needed.
35+
* Promotes financial inclusion for underserved communities
36+
* Prevents abuse of power by landlords
37+
* Aligns with small claims court principles: burden of proof is on the claimant (landlord)
38+
* Reduces stress and legal cost for tenants
39+
* Provides programmable transparency through `rulesModule`
40+
* Makes claims auditable, reproducible, and automated
6841

69-
Security deposit handling is a major global pain point:
70-
- 25%+ of tenants report disputes with landlords over deposits
71-
- Lack of transparency and legal fees cause housing insecurity
72-
- Small claims courts are flooded with deposit dispute cases
73-
- Many jurisdictions impose triple damages for improper withholding
42+
Traditional models transfer the deposit unless the tenant proves otherwise. OpenEscrow **inverts that logic** to reflect real-world fairness: if there is no valid claim, **the tenant keeps the deposit**.
43+
44+
---
7445

75-
These issues are generally due to:
76-
- Lack of transparency or controls in deductions
77-
- No standardized documentation
46+
(Le reste du README reste inchangé : Project Overview, Roadmap, Technical Stack, Tests, Features, Funding Plan, Team Bios, Contribution instructions...)
7847

79-
By leveraging blockchain:
80-
- OpenEscrow creates **transparent and trust-minimized** management
81-
- Reduces legal costs and landlord/tenant disputes
82-
- Supports affordable housing programs with better financial controls
83-
- Demonstrates how blockchain can serve real-world needs, not speculation
8448

8549
---
8650

@@ -191,7 +155,7 @@ We are seeking **$60,000** to build, audit, and launch a secure, fully open-sour
191155

192156
> All core flows are tested and production-grade.
193157

194-
**For a detailed breakdown of all smart contract objects, functions, technical flows, and developer documentation, see [technical-overview.md](./technical-overview.md).**
158+
**For a detailed breakdown of smart contract architecture, lifecycle logic, and developer references, see [docs/technical-overview.md](./docs/technical-overview.md) and [docs/dev-reference.md](./docs/dev-reference.md).**
195159

196160
---
197161

ROADMAP.md

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,46 @@
11
# OpenEscrow – MVP Roadmap
22

3-
This roadmap tracks the key milestones for the MVP delivery in 2025.
3+
This roadmap tracks the key milestones for MVP delivery across 2025–2026.
44

55
---
66

77
## Phase 1: Core Smart Contracts (Q3 2025)
8-
- Finalize modular contract architecture
9-
- Integrate placeholder for yield logic (mocked)
10-
- Include validator hooks (optional)
8+
- Finalize modular contract architecture (`OpenEscrowCore`, factory, viewer)
9+
- Add support for:
10+
- IPFS invoice validation
11+
- Onchain dispute flagging
12+
- Optional `rulesModule` and `yieldModule`
1113
- Deploy to Optimism testnet
12-
- Write base tests + basic documentation
14+
- Write unit and integration tests (Foundry)
15+
- Document technical overview and lifecycle logic (Mermaid)
1316

1417
---
1518

1619
## Phase 2: Web & Backend Integration (Q3–Q4 2025)
17-
- Build web frontend (React)
18-
- Connect to deployed contracts
19-
- Handle deposits, refunds, release logic
20-
- Add notifications (mock or on-chain)
20+
- Build minimal web frontend (React or SvelteKit)
21+
- Connect to deployed smart contracts
22+
- Implement deposit, refund, release, and yield actions
23+
- Add onchain/offchain notifications (event logs + UI)
24+
- Display agreement status via `EscrowViewer`
2125

2226
---
2327

24-
## Phase 3: Feature Expansion (Q4 2025–Q1 2026)
25-
- Yield logic (USDC + 1 yield-bearing option)
26-
- Reputation module (opt-in)
27-
- Multilingual UX
28-
- Fiat ramps integration (optional)
29-
- Partial refund logic (per agreement, state tracked, mutual validation)
28+
## Phase 3: Feature Expansion (Q4 2025 – Q1 2026)
29+
- Yield strategy integration (e.g., USDC + yield-bearing token support)
30+
- Add support for multiple ERC20 tokens (e.g. WYST, USDY)
31+
- Enable partial refund logic (state tracked, validated per agreement)
32+
- Optional modules:
33+
- Reputation system
34+
- Wallet abstraction
35+
- Fiat ramps (e.g., MoonPay)
36+
- UX: Multilingual interface and mobile optimization
3037

3138
---
3239

33-
## Phase 4: Public Launch (Q1 2026)
34-
- Finalize documentation and onboarding
35-
- Deploy to mainnet
36-
- Publish open-source repo and reach out to housing partners
40+
## Phase 4: Public Launch & Ecosystem Outreach (Q1 2026)
41+
- Finalize audit & documentation (NatSpec, `CONTRIBUTING.md`)
42+
- Deploy mainnet version (Optimism or Base)
43+
- Open-source the full repo
44+
- Outreach to housing partners, NGOs, and legal clinics
45+
- Prepare for legal admissibility pilot (court-compatible proofs)
46+

contracts/OpenEscrowCore.sol

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,12 @@ contract OpenEscrowCore {
101101

102102
// Handle yield module if defined
103103
if (agreement.yieldModule != address(0)) {
104-
(uint256 tenantShare, uint256 landlordShare) = IYieldModule(agreement.yieldModule).claimYield(_agreementId);
104+
(uint256 tenantShare, ) = IYieldModule(agreement.yieldModule).claimYield(_agreementId);
105105

106106
if (tenantShare > 0) {
107107
(bool okTenant, ) = agreement.tenant.call{value: tenantShare}("");
108108
require(okTenant, "Yield transfer to tenant failed");
109109
}
110-
111-
if (landlordShare > 0) {
112-
(bool okLandlord, ) = agreement.landlord.call{value: landlordShare}("");
113-
require(okLandlord, "Yield transfer to landlord failed");
114-
}
115110
}
116111

117112

technical-overview.md

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)