Summary
We propose moving ixEDEL’s Swiss franc sleeve from ZCHF to svZCHF, the Frankencoin Savings
Vault. svZCHF is a standard ERC-4626 vault over ZCHF. Holding it means holding ZCHF
plus accrued savings interest, redeemable to ZCHF at net asset value at any time, with no lock-up.
The svZCHF APY is set by Frankencoin governance and currently is set at 3.5%.
The ZCHF sleeve earns nothing today. After the migration it earns the Frankencoin savings rate on
capital the DTF already holds.
This is a governance discussion, not investment advice. Also, it is not one of the semi-annual basket rebalances since it only changes the form of the sleeve, not the basket’s composition.
Why svZCHF
The savings module behind svZCHF holds over 12 million ZCHF on mainnet. Individuals use it
directly through the Frankencoin app. A contract like a DTF needs the tokenised form, which is
what svZCHF is. The underlying is large and liquid. The open question was whether a DTF can hold
and trade the wrapper, and we now think it can, for the reasons below.
Routing
We are withdrawing the July request that Reserve route svZCHF through the OpenOcean mint path. It was work on Reserve’s side for something which ended up solved by the solvers.
The zapper settles through CoW and Matcha.xyz, so what matters is whether solvers can route ZCHF to svZCHF and back.
svZCHF (0xE5F130253fF137f9917C0107659A4c5262abf6b0) is a plain ERC-4626.
One small request for Reserve remains: svZCHF needs to be authorised so it can be selected in the
rebalance form, as USDY needed in July.
Liquidity and exit
Wrapping and unwrapping are vault calls at net asset value. deposit() mints exactly
previewDeposit() with no cap, and redeem() burns at NAV with no cap. We verified redemption onva mainnet fork at 2,225, 50,000 and 79,982 shares (the last being 100% of the largest holder’s
position at the time). All returned NAV. The vault holds no idle ZCHF, so every redemption pulls
from the savings module, and that module’s 3-day delay applies to interest accrual, not to
withdrawal. The DTF can always leave the sleeve without a counterparty, a solver, or any action
from Frankencoin.
So svZCHF liquidity is ZCHF liquidity plus a fixed conversion. The franc market on Curve
(ZCHF/crvUSD, about 381k ZCHF against 201k crvUSD in August) looked like this:
| clip | buy ZCHF | sell ZCHF |
|---|---|---|
| 100k | 17 bps | 32 bps |
| 250k | 26 bps | 46 bps |
| 500k | 39 bps | 80 bps |
| 1M | 80 bps | breaks (2899 bps) |
That is exposure ixEDEL already has as a ZCHF holder. Migrating adds one NAV conversion in front
of the same leg. The sleeve is about 2,226 ZCHF, so it would take roughly 225x growth to reach
the 500k sell ceiling, and a rebalance trades the difference, not the whole sleeve.
Simulated aggregator quotes on 7 September (Enso, Lightning, 0x, 1inch, Bitget) confirm this at
size:
| trade | notional | simultated (Matcga) | price impact |
|---|---|---|---|
| ETH to svZCHF | $373,545 | 294,167 svZCHF | -0.14% |
| ETH to svZCHF | $622,575 | 489,658 svZCHF | -0.26% |
| ETH to svZCHF | $996,120 | 781,125 svZCHF | -0.56% |
| ETH to svZCHF | $1,245,150 | 965,571 svZCHF | -1.66% |
| ETH to ZCHF (control) | $1,245,150 | 988,495 ZCHF | -1.55% |
| svZCHF to ETH (sell) | $125,781 | 50.57 ETH | +0.12% |
The control row shows where the slippage comes from. At the same $1.245M size, plain ZCHF costs
-1.55% and svZCHF -1.66%. At the live rate the svZCHF received is worth about 0.11% less than the
direct ZCHF route. The wrapper adds almost nothing; the curve is the ETH to ZCHF market.
A $1.2M purchase mints about seven times the current svZCHF supply, because minting has no cap. Sales are limited to what has been minted so far, which is a matter of the wrapper’s age rather
than its liquidity.
The migration
The migration is one rebalance: ZCHF to svZCHF, the sleeve wrapped in place. ixEDEL’s first
rebalance (nonce 1) ran in August and added USDY, so this would be nonce 2. However nonce 2 does not change the balance of any sleeve, as explained, it simply deposits ZCHF in Frankencoin´s native savings module.
Disclosures
The lending market. A Curve LlamaLend market takes svZCHF as collateral against crvUSD
(controller 0xFd85e847..., five loans, about 84k crvUSD debt). We are not touching that, this is simply a disclosure of where the svZCHF token is already being used in Defi.
Vote
We ask delegates to approve the migration since it improves the DTF by tapping into a currently 3.5% APY from Frankencoin fees.
References:
Savings Vault
https://app.frankencoin.com/savings/vault
Governance for APY vote: