Private borrowing across two chains

Borrow USDC.
Keep your balance hidden.

Borrow USDC on Stellar against crypto you keep on Ethereum. A zero-knowledge proof shows you have enough collateral without revealing how much you hold or which wallet is yours.

Your amount, hidden
Collateral lockedSealed

We prove it clears the threshold (amount stays hidden)

The exact collateral stays behind frosted glass. Only the fact that it clears the required threshold is ever shown.

The proof that secures it
Groth16 proofBN254256 byteslocked

The 256-byte Groth16 proof — points A ‖ B ‖ C, byte by byte. Stellar reads it and decides on its own. A real proof locks lime. A forged one is rejected and nothing moves.

A cryptographic proof Stellar checks on its own — 256 bytes, the points A · B · C. If it is real, the loan unlocks. If it is faked, nothing moves.

What you can do

A real product, not a single trick.

Veil is a private borrowing app. Here is what it lets you do.

Open a private positionLock collateral on Ethereum and keep the amount to yourself.
Borrow USDCDraw a loan on Stellar against collateral nobody can see.
Follow every step on-chainWatch each position move from lock to attestation to borrow, with live testnet transactions.
Keep custody on EthereumYour collateral never bridges — it stays locked on Ethereum the whole time.
Use it anywhere on StellarYour borrowed USDC is real Circle USDC, usable across the Stellar ecosystem.
[ 01 ]

How it works

Four steps. Your collateral never bridges; a proof, not a relayer, is what Stellar trusts.

Step 1Lock collateralLock crypto on Ethereum (Sepolia). It never leaves the chain.
Step 2Prove privatelyA zero-knowledge proof shows you cleared the threshold, not the amount.
Step 3Borrow USDCStellar checks the proof and releases the loan to your wallet.
Step 4Use your USDCYour borrowed USDC is real Circle USDC — send it anywhere on Stellar.
Verifiable by design. Every trust boundary is named and on-chain.Axelar's decentralized validator set carries the attestation, Reflector prices the collateral, and a Groth16 proof is what Stellar verifies. All of it is inspectable.

Borrow USDC. Keep it private.

Open the app on Ethereum Sepolia + Stellar testnet and run the live demo. The collateral amount never appears.