Lock collateral on Ethereum
You wrap ETH into WETH and lock it in a Veil contract on Ethereum, bound to a private note. It stays there the whole time. Nothing bridges, so you never hand your funds to a custodian.
Veil lets you borrow USDC on Stellar against collateral you keep on Ethereum. A zero-knowledge proof carries the one fact a lender needs, that you have enough, without ever revealing how much you hold or which wallet is yours.
Your money never bridges. It stays locked on Ethereum, and only a proof crosses to Stellar. Here is the whole path.
You wrap ETH into WETH and lock it in a Veil contract on Ethereum, bound to a private note. It stays there the whole time. Nothing bridges, so you never hand your funds to a custodian.
A zero-knowledge proof, generated in your browser, shows your locked amount clears the bar without revealing the amount or your wallet. The witness never leaves your device; only the proof travels onward.
Stellar checks the proof on-chain and, if it holds, sends you real USDC. The proof, not a relayer, is what releases the money, and the amount never appears on Stellar.
Your borrowed USDC is real Circle USDC you can use across Stellar. Your WETH stays locked on Ethereum, backing the loan — it never bridges. Repay on Stellar and the pool releases your WETH back to your Ethereum address, verified by a shielded release proof. The shielded WETH pool and liquidation-release are the next milestone.
The point of Veil is the gap between these two columns. Stellar learns just enough to lend, and nothing more.
We prove it clears the threshold (amount stays hidden)
Why it matters: you can borrow without doxxing your net worth to a lender or to everyone reading the chain. They learn you are good for it, not how good for it you are.
Every trust boundary is named on purpose. The proof is cryptographic; these are the components around it, each doing exactly one job.
Naming what we trust is the credibility move. The privacy itself holds no matter how the Ethereum state reaches Stellar, and the collateral is always enforced on Ethereum, where it lives.
Five real pieces, each doing one job. The evidence for all of them lives on the proof page.
Open the app and walk the same four steps live. The collateral amount never appears, by design.
Back home