Skip to content
P

PrivaLend

Created on 10th May 2026

•

P

PrivaLend

The problem PrivaLend solves

The core problem it tries to solve: Information leakage in lending and liquidity

In many lending setups (pools with visible APYs, public order books, or APIs that store everyone’s bids), standing interest rates and full order visibility are effectively public strategic data. That matters when:

  • Large borrowers do not want the market to infer urgency, leverage, or directional views from the exact rate they will accept.
  • Lenders do not want competitors or counterparties to free-ride on their pricing or front-run their provision of liquidity.
  • Anyone operating like an institution cares about signaling: every public quote can move perception, credit spreads, or copy-trading behavior.

PrivaLend’s stated design goal is to split two things:

  • Public commitment — what you are willing to do on-chain (or in a durable intent): token pair, size bounds, collateral constraints, expiry, and bounds on rates (floor for lenders, ceiling for borrowers), so the system can enforce consistency when a match is executed.
  • Private negotiation / matching — the exact rates and how slices from multiple lenders combine, ideally computed only where raw bids are not sitting in a normal app database or traversing the mempool in the same cleartext form — conceptually aligned with a TEE-backed workflow (e.g. Chainlink CRE) where ciphertext can be decrypted only inside that environment.

So the “problem” is not only “borrow and lend tokens” (many protocols do that). It is borrow and lend without broadcasting fine-grained rate information through the same surfaces that today leak trading and credit signals.

What people can actually use it for
You can think of users in three buckets: lenders, borrowers, and operators / matchers.

Lenders
Post liquidity with a minimum acceptable rate (floor in basis points) and size, tied to a specific loan asset and collateral asset shape.
Be composed into a single borrower loan with other lenders: one borrower draw can be funded by several lenders at once, each with their own slice, while the blended rate must still respect every lender’s floor and the borrower’s ceiling (enforced when intents are consumed on-chain in the modular design described in the README).

Borrowers
Post borrow intent with a maximum rate they will pay and a minimum collateralization requirement (on-chain borrow intents require at least 100% collateral ratio in bps terms at post time; health is enforced later via oracle-backed managers).
Receive one coherent loan after matching: principal from multiple lenders, collateral locked, a single loan record with servicing (repay, add/remove collateral subject to health) and liquidation when undercollateralized (in the full modular stack).

Operators, matchers, and integrators
Run epochs: open window → register match digests → finalize → execute each digest once (replay protection, borrower nonce semantics) — a deliberate two-phase settlement control.
Run the off-chain engine: deterministic matching (README describes greedy fill, sorted borrows/lends, principal-weighted blended rate, rollback if blend violates borrower max).
Wire privacy-oriented submission paths: clients can submit ECIES-encrypted rates to the server; the engine decrypts when a private key exists (intended for CRE); proposals can be KMS-signed so settlement is tied to an agreed workflow identity (PrivaLendPool-style path uses EngineRegistry + signature verification).

Practical “product” outcomes
Credit market with less naked rate advertising than a fully public order book, while still ending in on-chain loans with clear custody and claims.
Syndicated-style funding for one borrower from many lenders in one execution, with enforced economics at settlement time rather than informal off-chain agreements only.

How it makes existing tasks easier or “safer"
Easier or clearer operationally
Single execution, many lenders: Instead of a borrower negotiating N separate loans off-chain and hoping everyone funds, the protocol is built around one match that pulls principal from multiple lenders and creates one loan object with pro-rata-style repayment distribution (README describes rounding dust to the first lender in LoanCore).
Explicit settlement pipeline: Epochs + digest registration make “what was approved to execute” a concrete, hash-anchored set before execution — useful for ops, compliance-minded workflows, and reducing ambiguity about which batch is canonical.
Separation of concerns in the modular contracts: IntentRegistry only allows the coordinator to consume liquidity; LoanCore custodies funds; PositionManager / LiquidationManager encapsulate borrower vs liquidator policies with oracle-based health — this mirrors how professional systems split booking, servicing, and workout.

Challenges we ran into

One concrete hurdle was stitching two different settlement designs together: the Sepolia demo and executor.ts settle through PrivaLendPool.settleMatch + KMS-signed proposal hashes, while the “full” modular flow uses MatchingCoordinator epochs and digests—so the same off-chain machinery cannot call both without extra wiring, which is called out explicitly in the README. We got past it for the hackathon by treating the pool + executor path as the live demo spine, keeping the modular contracts as the clearer long-term architecture, and documenting the gap instead of pretending one ABI fit both—plus leaning on the deployment checklist and runbook so oracle wiring and envs did not become a last-minute surprise.

Tracks Applied (2)

Network Economy

PrivaLend fits the Network Economy track by treating privacy and user control as first-class parts of on-chain credit, n...Read More

SpaceComputer Bounty

PrivaLend is a privacy-oriented lending stack where users commit intents on-chain while sensitive interest rates can sta...Read More

SpaceComputer

Discussion

Builders also viewed

See more projects on Devfolio