A protocol for uncollateralized lending, harnessing cross-chain reputation backed by zk-proofs.
ZK Loans is a decentralized protocol that enables users to access collateral-free loans on Rootstock by leveraging a unique combination of on-chain and off-chain zero-knowledge proofs.
The process begins by verifying off-chain financial data, such as extracting verifiable bank summaries directly from the user’s email inbox. This is complemented by on-chain proofs, including time travel proofs (which assess historical wallet balances over specific block ranges) and teleport proofs (which evaluate liquidity across multiple blockchain networks).
Once solvency is established, the user undergoes KYC verification to confirm their identity. All proof components — both on-chain and off-chain — are aggregated to build a cross-chain reputation score. This reputation is relayed using LayerZero to a smart contract on Ethereum Sepolia, which handles creditworthiness assessment and validation.
Finally, a smart contract on Rootstock executes the disbursement of the approved RBTC loan amount. To ensure legal compliance and auditability, an on-chain attestation is generated that records the hash and signature of the signed legal agreement, while the full document is securely stored off-chain for future reference.
We built ZK Loans using a Node.js + NestJS backend and a Next.js + React frontend, structured into clear domains to separate concerns between off-chain and on-chain zk-proof generation.
On the backend, we created:
A dedicated vlayer-contracts folder for handling the smart contract interactions related to VLayer proofs.
A layer-zero folder specifically for managing LayerZero cross-chain messaging, including executor setup, relayer configs, and cross-chain payload formatting.
On the off-chain side, we used VLayer to extract and verify financial data from user email inboxes (like bank account summaries), generating zk-proofs that convert raw financial evidence into verifiable claims. These provers are called directly from the frontend, which orchestrates user interactions and proof submission.
On the on-chain side, we integrated VLayer’s time travel and teleport proofs (checking wallet balances and cross-chain liquidity), and the verifiers for these proofs are handled inside the cross-chain scoring smart contract, ensuring that only valid claims contribute to the reputation score.
We used LayerZero to relay the aggregated reputation to a smart contract on Ethereum Sepolia, where creditworthiness is validated. Once approved, LayerZero triggers a smart contract on Rootstock to disburse the RBTC loan.
For legal compliance, we implemented on-chain attestations: we store the hash + signature of the signed legal agreement on-chain, while securely keeping the full document off-chain for future audits.