⚠ This site is currently in development. Real funds and real lease agreements are not permitted at this time.
Technical Documentation

RentLock Technical
Documentation

RentLock is a trustless rent escrow protocol on Solana. This page covers the smart contract architecture, instruction set, PDA vault design, and fee structure.

// Overview

What is RentLock?

RentLock is an on-chain rent escrow protocol deployed on the Solana blockchain. Rent payments and security deposits are held in Program Derived Address (PDA) vaults — smart contract accounts with no private key, controlled entirely by the program logic. Neither landlord nor tenant can unilaterally drain funds. Settlement happens on-chain through a defined instruction set. Disputes are resolved by a neutral, staked arbitrator whose ruling is enforced by code. No bank accounts, no payment processors, no trust required.

// Architecture

PDA Vault Architecture

Every lease deploys two on-chain accounts derived deterministically from the lease parameters. No private key exists for either — only the program can authorize fund movements.

PDA
Lease PDA
Stores all lease state — rent amount, deposit, duration, due day, parties, agreement hash, and current status. Derived from a fixed seed so both parties can compute the address independently.
seeds: ["lease", landlord, tenant, leaseId]
PDA
Vault PDA
Holds the actual SOL — security deposit and escrowed rent. Seeded by the Lease PDA address. Cannot receive funds from arbitrary callers; only the correct program instructions can deposit or withdraw.
seeds: ["vault", leasePDA]
Program ID
D2ynTEzqRnvHPV4Ngij4y5S9RJSK2drapqR7NTvPZcVx
Deployed on Solana. Immutable after deployment — no upgrade authority. The program cannot be changed, paused, or shut down by RentLock LLC.
// Instructions

Smart Contract Instructions

The RentLock program exposes 14 instructions. Every instruction validates signers against on-chain lease state before executing.

initializePlatform
One-time setup of platform fee configuration and fee recipient wallet.
createLease
Deploy a new lease with rent amount, deposit, duration, due day, and agreement hash.
payDeposit
Tenant locks security deposit into the vault PDA.
payRent
Tenant pays monthly rent into escrow; platform fee is deducted at the time of release.
releaseRent
Landlord releases escrowed rent from the vault to their wallet.
permissionlessRelease
Anyone can trigger rent release after the release window expires — prevents landlord lockout.
openDispute
Either party freezes the vault and flags a dispute, blocking all fund movements.
closeDispute
Designated arbitrator resolves the dispute and splits funds per their ruling.
forceResolveDispute
Resolves stale disputes automatically after a configurable inactivity timeout.
proposeSettlement
Landlord proposes a specific deposit deduction amount at lease end.
acceptSettlement
Tenant accepts the proposed settlement; funds split without arbitration.
pauseLease
Temporarily pause all lease operations — emergency use only.
unpauseLease
Resume a paused lease and re-enable all instructions.
endLease
Close the lease account and return the deposit to the tenant automatically.
// Security

Permission Model

Every instruction verifies the signer against on-chain lease state before execution. The protocol enforces roles at the cryptographic level — not at the application layer.

🏠
Landlord permissions
  • Release rent from escrow
  • Propose deposit deductions at lease end
  • End the lease and trigger deposit return
  • Pause and unpause the lease
🧑‍💼
Tenant permissions
  • Pay security deposit into vault
  • Pay monthly rent into escrow
  • Accept a proposed settlement
  • File a dispute to freeze the vault
⚖️
Arbitrator permissions
  • Resolve active disputes and split funds
  • Cannot access vault outside a dispute
  • Role is designated at lease creation
  • Force resolve activates after inactivity timeout
🏛️
Platform permissions
  • Receives 0.5% fee on rent release only
  • Cannot access vault funds directly
  • Fee config is stored in a public PDA
  • If RentLock shuts down, the contract keeps running
// Fees

Fee Structure

RentLock charges a single platform fee on rent releases. All other interactions — lease creation, deposit, dispute — incur only the near-zero Solana transaction fee.

0.5%
Platform fee on rent payments
50 bps
Basis points (on-chain config)
$0.00025
Solana transaction cost
Public
Fee config — anyone can audit
🔗
On-chain fee config
The platform fee is stored in the PlatformConfig PDA — a public Solana account readable by anyone. There is no hidden fee or admin backdoor. The fee can only be updated through a governance instruction signed by the platform authority.
🔍
Publicly auditable
Anyone can read the PlatformConfig account from Solana Explorer using the program ID. The fee percentage, fee recipient wallet, and program state are permanently visible on-chain.
Near-zero transaction costs
Every Solana transaction costs approximately $0.00025 at current network fees. RentLock adds no per-transaction surcharge beyond the 0.5% fee on successful rent releases. No gas spikes, no priority fees required for standard operations.
// Settlement

Settlement & Dispute Resolution

Every lease ends one of four ways. All paths are enforced on-chain — no court, no lawyer, no waiting for a check.

Clean end
No arbitrator needed
Landlord calls endLease. The smart contract verifies the lease term is complete and all rent has been paid, then returns the full security deposit to the tenant's wallet automatically. One transaction, instant settlement, zero human discretion.
Negotiated settlement
Mutual agreement
Landlord calls proposeSettlement with a specific deduction amount. Tenant reviews and calls acceptSettlement. The contract splits the deposit accordingly — deducted portion to the landlord, remainder to the tenant. No arbitrator involved, no dispute filed.
Arbitrated dispute
Neutral arbitrator
Either party calls openDispute. The vault freezes immediately — no funds can move. The designated arbitrator reviews the on-chain evidence (payment timestamps, signed lease terms, transaction history) and calls closeDispute with a ruling. The contract splits funds exactly per the ruling.
Force resolve
Permissionless
If the arbitrator is inactive and fails to rule within the configured timeout window, anyone can call forceResolveDispute. The contract applies a default resolution — typically returning funds to both parties proportionally. This prevents permanent vault lockout if the arbitrator disappears.
// Open Source

Verify Everything

You don't need to trust us. Read the code. Verify the program on-chain. The smart contract is the source of truth.

"You don't need to trust us. Read the code."
The contract enforces the rules. We just built the interface.
// Market

Market Opportunity

The US rental market is large, underserved, and ripe for trustless infrastructure. No direct competitor exists for rent escrow on Solana.

46.5M
US renter households
103M
People living in rentals
$22B
Monthly US rent collected
51.8%
Renters who are cost-burdened
75%
Gen Z preferring renting over buying
0
Direct competitors on Solana
Why now?
Solana processes 65,000+ TPS at near-zero cost — viable for high-frequency rent payments at scale
Phantom wallet adoption has crossed 10 million users — distribution is there
51.8% of renters are cost-burdened — fee savings matter at the margin
No incumbent owns this category — first-mover advantage is real
// Get Started

Ready to use the protocol?

Connect your Phantom wallet and deploy your first on-chain lease in under 2 minutes.

Rex