Architecture
The rails, the courier, the Sorter, the envelopes, the two delivery modes and the order states on one page.
HOOZ is three small parts on top of rails that already run. You can read everything HOOZ wrote in an afternoon. Everything it depends on carries its own audits and its own liquidity.
The road
Zcash (shielded) NEAR Intents 1Click Robinhood Chain (4663)
┌──────────────┐ deshield ┌──────────────────┐ ETH ┌──────────────────┐
│ your wallet │ ───────▶ │ one-time t1 addr │ ─────────▶ │ your address │ before launch
└──────────────┘ └──────────────────┘ │ or your envelope │ after launch
│ no direct quote └────────┬─────────┘
▼ │ sweep
┌──────────────────┐ Relay, 1 block ▼
│ courier, Arbitrum│ ────────────▶ ┌──────────────┐ buy ┌───────────┐
└──────────────────┘ │ HOOZ Sorter │ ────▶ │ Pons curve│
└──────────────┘ └───────────┘Rail one: NEAR Intents, direct
NEAR Intents is an intent settlement network. You deposit at an address the network generates, market makers compete to fill the intent, and the winner pays the destination asset on the destination chain. HOOZ calls its 1Click API.
- Origin asset
nep141:zec.omft.near, destinationnep141:hood.omft.near(ETH on Robinhood Chain), exact input, 1 % slippage tolerance. - Recipient: your address before launch, your envelope after.
- Refund: your transparent Zcash address.
- The answer holds a fresh transparent deposit address and a signed quote with a deadline.
On this road HOOZ touches nothing. The site asks for the quote and the solver pays you.
Rail two: Arbitrum One and Relay, fallback
When no solver quotes Robinhood Chain directly, the order rides ZEC to ETH on Arbitrum One, paid to the courier, and the courier sends one Relay deposit whose recipient is your envelope. Relay pays it on Robinhood Chain in about one block. This road adds one trusted moment, described in Security.
The Sorter
One contract on Robinhood Chain with a fee, caps, a token address and a market adapter.
- Envelopes.
envelopeOf(beneficiary)returns a CREATE2 address derived from the Sorter and the beneficiary alone. It exists as a destination before any code sits there, so a solver, Relay or a friend can pay it without knowing HOOZ. - Sweep. Anyone may call
sweep(beneficiary, minTokensOut). The Sorter deploys the envelope if needed, pulls its ETH, sends 0.5 % to the treasury, buys $WHOZ and transfers the tokens to the beneficiary. - Withdraw. The beneficiary, and nobody else, calls
withdraw(beneficiary)and receives the raw ETH. It works while paused and before the token exists. - Market adapter.
PonsMarketbuys on the Pons bonding curve, then on the Uniswap V4 pool after graduation. The Sorter does not care which.
Order states
created ─▶ waiting ─▶ seen ─▶ settling ─▶ delivered (before launch)
└────▶ landed ─▶ sorting ─▶ delivered (after launch)
└─▶ expired └─▶ refunded | failedThe site reads these states from NEAR Intents on every request. It stores none of them.
What runs where
| Part | Runtime | State |
|---|---|---|
| site | Next.js on Vercel | none; orders live in your browser |
| courier | one Node process | orders.json on a volume, optional |
| Sorter and envelopes | Robinhood Chain | contract storage |
| $WHOZ | Pons V2 | curve, then Uniswap V4 |