Dreamlend Finance
A P2P lending with amazing UX. Create loan offers, access capital, and earn yield in a trustless, transparent environment.
Built with
- Nextjs
- Graphql
- Framer motion
- Tailwind CSS
- Solidity
- ShadCn
- Typescript
- Foundry
The problem
Pooled lending protocols set terms algorithmically from utilization, which is efficient but gives neither side any say in the deal. Peer-to-peer lending restores that control — a lender writes the offer they actually want — at the cost of a much harder user experience problem, because now every loan is a distinct object a user has to understand.
How it was built
Built as a peer-to-peer lending protocol where lenders create explicit loan offers and borrowers take them, rather than both sides interacting with a pool at rates set by a curve.
The design priority was making trustless lending legible. A P2P protocol exposes far more surface to the user than a pooled one — terms, collateral, duration, counterparty state — and the interface has to make an offer comprehensible at a glance or the model does not work regardless of the contracts underneath.
Solidity contracts developed with Foundry, which brings fuzzing and invariant testing to a domain where the properties that matter — a borrower cannot withdraw collateral backing an active loan, a lender cannot be shortchanged on repayment — are exactly the kind that property-based tests catch and unit tests miss.
GraphQL for indexed on-chain state, since listing and filtering open loan offers is a query problem that direct contract reads handle badly.
Why this stack
- Foundry — fuzz and invariant testing for lending logic where edge cases carry real value.
- GraphQL over an indexer — offer discovery and filtering, which contract calls cannot serve efficiently.
Outcome
- Built as a hackathon collaboration; deployed on Polygon.
Want something like this built?
I build across Web3, AI, and financial infrastructure — smart contracts, data pipelines, LLM systems, and the interfaces on top.