Rezz Protocol
Rezz is the cross-chain AMM. It is not the wallet. Arcane is the first client; any interface that can call the pair ABI can use Rezz.
Dual-pool model
Each connected chain holds an independent constant-product pool and its own LPs.
- A source pool takes the input and emits a
Swapintent. - A destination pool pays the output after the intent is final on the source.
- There is no shared
kacross chains. Prices can diverge; arbitrage, not the relayer, keeps them honest.
A compromise or pause on chain A cannot spend the reserves of chain B.
Mathematics
Reserves x and y satisfy k = x * y. The output for an input dx is the Uniswap v2 form with a 30 basis-point fee:
dy = (997 * dx * y) / (1000 * x + 997 * dx)
That is getAmountOut in the pair contract. The 0.3% stays in the pool and accrues to LP tokens.
First deposit mints sqrt(dx * dy). Later deposits mint the minimum of the two pro-rata amounts. Redemption burns LP tokens and returns the basket.
Factory
AMMFactory deploys pairs with a CREATE2 salt keccak256(token0, token1) and stores both orderings. Creation is owner-gated until the implementation is audited.
Cross-chain lifecycle
- The wallet builds an intent: source chain, destination chain, amounts, receiver, slippage, timestamp.
- The source pair pulls the input and emits
Swap(sender, receiver, amount)(or the same-chain variant). - The relayer waits for source finality, checks destination reserves, and submits settlement.
- State is
RECEIVED→PENDING→SUCCESSor retryableFAILURE.
Advisory price APIs are a circuit breaker, not the payer of record. Production Rezz sizes the payout from the destination curve.
Fees
| Fee | Amount | Recipient |
|---|---|---|
| Same-chain swap | 0.30% | LPs, retained in the pool |
| Protocol fee at launch | 0.00% | — |
| Relayer bounty | optional, later | Anyone who posts a valid destination tx |
There is no Rezz governance token in this version.
Whitepaper
The full specification lives in the repository at Rezz-Whitepaper/rezz-whitepaper.pdf.