Skip to content

Hackathon

OmniCredit

An omnichain lending protocol where borrowing power is earned by paying interest rather than granted by depositing more collateral: a credit score that cannot be farmed for free.

Nov 2025Web3

OmniCredit lets someone deposit collateral on one chain and borrow against it on another, and it gives repeat borrowers better terms than newcomers. The interesting half is the second one: on-chain lending normally has no memory, so every borrower is treated as a stranger forever.

Role
Team member
Messaging
LayerZero V2
Prices
Pyth Network
Repository
VincenzoImp/omnicredit
VincenzoImp/omnicreditOmnichain lending protocol with continuous credit scoring.Solidity

The problem

A lending protocol that has no idea who you are has exactly one instrument for managing risk: demand more collateral than the loan is worth, from everybody, every time. Someone who has repaid twenty loans on time gets the same terms as an address created five minutes ago.

The obvious fix – reputation – is also the obvious attack. Any score that can be accumulated cheaply will be accumulated cheaply, by as many addresses as it is worth creating.

What I built

A single liquidity pool with collateral accepted from other chains over LayerZero V2 messaging, priced by Pyth feeds, with liquidations run as Dutch auctions rather than at a fixed discount.

The credit layer is a separate contract that keeps a score from 0 to 1000 and derives a loan-to-value ratio from it. What moves the score is the part worth reading: points are earned per fixed amount of interest actually paid to the protocol, with a bonus for consecutive loans that caps out, and repayment counted as on-time inside a thirty-day window. A liquidation subtracts a fixed and deliberately large penalty.

Half of the interest a borrower has paid also counts as a buffer before they become liquidatable, so a long-standing borrower is not liquidated on the same tick as a new one at the same ratio. The contracts are unaudited and demonstrated on testnets with mock assets; the score parameters show the mechanism and are not calibrated against borrower outcomes.

Hard parts

Making reputation cost money. Scoring on time, transaction count or volume gives a free reputation to anyone willing to wait or to loop funds between their own addresses. Denominating the score in interest paid means a Sybil has to buy each identity’s standing at full price, which is the property that makes the score usable at all. The cost is that it excludes the borrower who is careful and cheap: repaying early and paying little earns you little.

A cross-chain deposit is a message, and messages fail. Collateral arriving over LayerZero is credited on the strength of a message from another chain, which means the accounting has to be correct in the window where the deposit has left one side and not yet arrived on the other.