Hush
Brings private DeFi UX to Aave: shield funds, supply USDC, borrow WETH, repay, and withdraw back to private balance without exposing your strategy
技术栈
描述
Overview
Hush is a WebCLI that lets users interact with Aave lending privately. Users can shield USDC into a private balance, then supply it as collateral, borrow WETH, repay, and withdraw collateral back to private balance - all routed through private execution powered by Hinkal
It combines two core parts:
Hinkal private execution layer (Emporium ops) that lets actions happen without tying your strategy to your public wallet.
An on-chain integration contract layer (adapter + isolated vaults) that actually connects into Aave to perform supply/borrow/repay/withdraw on your behalf.
How it works
Shield funds (public → private)
You run shield to move public USDC into your private balance (and optionally unshield later to return to a public address)Supply privately (private collateral on Aave)
Hush takes private USDC and supplies it to Aave as collateral through the integration contract layerBorrow privately (receive into private balance)
Hush borrows WETH against your collateral, and the flow is designed so the borrowed asset ends up credited to your private balance (not paid out to a public wallet)Repay & manage position privately
You can repay from private WETH, and private-withdraw returns collateral back to private balance by default
Contract layer
Hush uses a small on-chain system that bridges private actions into real Aave interactions:
PrivateSupplyAdapter: receives assets from the private action flow and routes calls like onPrivateDeposit, borrowFromPrivate, repayFromPrivate, and private withdraw behavior.
Isolated vault per user identity: a VaultFactory creates a dedicated vault per zkOwnerHash, so positions are isolated per private identity rather than per public EOA.
Aave is the liquidity/position engine: the vault supplies and borrows on Aave underneath, while Hash controls privacy and routing.
Security & UX
Sensitive actions use a per-position secret hash (withdrawAuthHash). The secret must match, and it rotates after successful borrow/repay (and also on partial withdraw).
Today, the withdraw auth secret is stored in browser localStorage. Clearing site storage can make an existing position impossible to withdraw until export/backup UX is added.
Why it’s relevant right now
On-chain lending is transparent by default - wallets get profiled via collateral/borrow patterns. Hush keeps the familiar Aave lending loop, but adds a private execution layer and an adapter/vault contract system so strategies are much harder to link back to a public identity