Privacy-preserving real estate on Ethereum. Select your role for a step-by-step guide.
1
Connect MetaMask
Click Connect in the top-right. Switch to Hardhat Local (Chain ID: 31337). Your E-Devlet identity is detected automatically.
Navbar → Connect
2
Create a Listing
Go to Dashboard → Create Listing. Fill in property address, price, and bond amount. Choose Rent or Sale.
Dashboard → Create Listing
3
Notary Ownership Attestation
The Notary Network verifies your E-Devlet ownership and issues an ECDSA signature. No personal data goes on-chain.
Automatic · E-Devlet ✓ → ECDSA Sig
4
Submit On-Chain
MetaMask signs the transaction. Collateral is locked. Listing becomes ACTIVE and visible to tenants.
registerListing() · Status: ACTIVE
5
Settle After Handover
After handing over the keys, click Settle. Escrow + collateral are released to you. ⚠ Settle before deadline or 10% is slashed.
settleListing() · Funds released
1
Connect MetaMask
Connect your wallet. The system detects you as a tenant via E-Devlet and switches your role automatically.
Navbar → Connect
2
Browse Active Listings
Go to Listings to see all active properties. Filter by type and status. Click Apply Now on any listing.
Listings → Apply Now
3
Income Eligibility Check
The Notary fetches your income from E-Devlet/SGK and verifies income ≥ threshold. Your actual income never appears on-chain.
Privacy preserved · Predicate only
4
Submit Application + Escrow
MetaMask sends your application with notary attestation and escrow deposit atomically. Listing becomes LOCKED for you.
applyToListing() · Escrow locked
5
Slashing Protection
If the landlord doesn't settle before deadline, call Expire. You get your escrow back plus 10% of their collateral as penalty.
expireApplication() · +10% slash
Skip — I know what I'm doing
🇹🇷
E-Devlet Kimlik Doğrulama
Bu cüzdan E-Devlet'te kayıtlı değil
PPREV protokolünü kullanmak için kimliğinizi E-Devlet simülasyonu üzerinden doğrulamanız gerekiyor. Kişisel verileriniz asla zincire yazılmaz.
Vazgeç
Privacy-Preserving Real Estate Verification
Protocol v1.0 · Testnet Live · 30/30 Tests Passing
Verify property ownership and income eligibility via ECDSA-attested E-Devlet records — with on-chain escrow, slashing protection, and zero PII exposed.
ECDSA
Real Verification
10%
Slashing on Delay
0 PII
On-Chain Data
E-Devlet
Identity Source
Step-by-Step Guide
How the Protocol Works
Click each step to see technical details. Switch between roles to see the full picture.
🔗
Connect & Identity Verification›
Connect MetaMask. The Notary Network queries E-Devlet to confirm you're a registered property owner.
MetaMask BrowserProviderGET /notary/edevlet/:addressAuto role detection
📝
Create Listing Form›
Enter property metadata. The Ad_Hash is computed as keccak256(metadata) — any change invalidates the listing and prevents bait-and-switch fraud.
adHash = keccak256(address+type+desc+nonce)Policy: OWN_RENT_V1Collateral: min 0.1 ETH
🔐
Notary Ownership Attestation›
The Notary verifies your E-Devlet record and signs the binding tuple. This is your cryptographic proof of ownership — no PII goes on-chain.
POST /notary/attest-listingm = keccak256(adHash‖policyId‖C_T‖t‖nonce)σ = notaryWallet.signMessage(m)
⛓
On-Chain Registration›
The smart contract runs ecrecover on your signature, checks nonce uniqueness and freshness window, locks your collateral. Listing → ACTIVE.
ecrecover(ethHash(m), σ) == notaryAddressFreshness: now − t ≤ 5minCollateral locked on-chain
✅
Settle After Key Handover›
After handing over the keys, call settleListing(). Escrow + collateral are released to you. If you miss the deadline, tenant gets 10% of your collateral.
Notary checks income ≥ policy threshold against E-Devlet/SGK records. Only the predicate result (true/false) is used — your income figure stays private.
POST /notary/attest-applicationincome ≥ 20,000 TRY/mo (OWN_RENT_V1)Zero-knowledge: predicate only
💸
Submit Application + Escrow›
MetaMask sends applyToListing() with your attestation and escrow deposit in a single atomic transaction. Listing flips to LOCKED — reserved exclusively for you.
If the landlord misses the settlement deadline, call expireApplication(). You get your full escrow back plus 10% of the landlord's collateral as a penalty.
expireApplication(appId)Returns: escrow + collateral × 10%Listing reactivates for other tenants
Live Simulation
Watch the Protocol in Action
An animated walkthrough of a real rental transaction — from E-Devlet identity check to on-chain settlement.
🏠
Landlord
🏛
E-Devlet
🔐
Notary
⛓
Contract
👤
Tenant
Protocol ActorsStep 1 / 6
🏛
E-Devlet
e-devlet.gov.tr
🔐
Notary Network
ECDSA Attestation
⛓
Smart Contract
PPREVSingle.sol
🏠
Landlord
0x7099…9C8
👤
Tenant
0x3C44…3BC
pprev-protocol — notary-server
Starting simulation…
Architecture
Three Pillars of Trust
🔐
E-Devlet / TLSNotary
Ownership and income records from the Turkish e-Government portal, attested by the Notary Network via ECDSA signatures.
🛡
Privacy Preservation
Only predicate results (owns=true, income≥N) go on-chain. PII, income figures, and registry data stay off-chain and private.
⛓
Smart Contract Enforcement
Escrow, slashing, and state machines enforced on-chain. ECDSA with ecrecover. Nonces prevent replay. Collateral creates real settlement incentives.
Use Cases
Renting & Selling
🏠 Renting
●Ownership proof via πown — prove you can lease
●Income eligibility via πelig — income ≥ 3× rent
●Deposit escrowed on-chain with timeout protection
●Subletting fraud blocked by fresh ownership checks
🏗 Selling
●Title + encumbrance verification — no active liens
●Valuation predicate — appraised value ≥ Vmin
●Purchase funds escrowed with extended τlock
●Cross-listing fraud blocked by LOCKED state
Browse Listings
Landlord Dashboard
Active Listings
0
Pending Apps
0
Locked Escrow
0 ETH
Settled
0
1
Metadata
2
Attestation
3
Proof
4
Submit
Property Details
Fill in your listing metadata. The Ad_Hash will be derived from this — any change later invalidates the listing.
Listing Type
Required Proofs (Policy)
TLSNotary Ownership Attestation
Fetching ownership record from E-Devlet via the Notary Network…
Connecting to E-Devlet (HTTPS)…
Fetching ownership record…
MPC-TLS session with Notary Network…
Generating transcript commitment C_T…
ECDSA signature from Notary…
Nonce
Timestamp
C_T 0x9a3f…
Source e-devlet.gov.tr
Notary Attestation Proof
Generating ownership proof — proving the predicate without revealing personal data…
Generating π_own…0%
Public Inputs
C_T
Ad_Hash
PolicyID
Private (Hidden)
Registry███████████
PII████████
Predicatepending…
On-Chain Submission
Smart contract verifying signature, freshness, nonce, and collateral…
✓
Notary ECDSA signature valid (ecrecover)
✓
Freshness check passed (now − t_auth ≤ Δ)
✓
Nonce unused — replay protection confirmed
✓
Policy whitelisted on-chain
✓
Collateral deposited (≥ minCollateral)
✓ Listing Registered Successfully
StatusACTIVE
Ad_Hash
Ad_Hash
Type
Price
Status
Apps
Actions
App ID
Listing
Tenant
Attestation
Escrow
Actions
Tenant Dashboard
My Applications
0
Pending
0
Escrowed
0 ETH
Settled
0
1
Review
2
Eligibility
3
Proof
4
Submit
Listing Requirements
TLSNotary Eligibility Attestation
Fetching eligibility records via the Notary Network…
Connecting to data source (HTTPS)…
Fetching income / employment record…
MPC-TLS session with Notary Network…
Generating transcript commitment C_T_elig…
ECDSA signature from Notary…
Nonce
Timestamp
Eligibility Proof Generation
Generating π_elig — proving income ≥ threshold without revealing the figure…
Generating π_elig…0%
Public Inputs
C_T_elig
Ad_Hash
PolicyID
Private (Hidden)
Income██████
Employer████████
Predicatepending…
Submit Application + Escrow
Smart contract verifying eligibility proof and locking escrow…