Zips are tokens which represent a claim on multiple positions/strategies and rebalances with just one token.

First use-case: zUNI = Tokenized sETH Pool with SNX Incentives Rebalancer.

We are big fans of Synthetix and are always looking for ways to improve the experience for this community.

For example, our sETH Unipool Zap helps users add liquidity to the sETH<>ETH Pool on Uniswap in one-transaction, using just one asset (ETH or sETH or other ERC20s). Inputs are split into appropriate proportions to enter the pool with. In return sETH LP tokens are minted which represent your claim on liquidity provided + accrued exchange fees.

As soon as the new Unipool contract for SNX rewards was announced, we added a visual interface to help users easily stake their sETH LPs in Unipool contract:

But we knew we had to do more. Today we are proud to propose something we already have available for testing - zUnipool tokens or simply zUNI.

zUNI tokens represent a claim on sETH LP stake in Unipool + accrued SNX incentives from sETH Unipool Staking Reward system, which are auto-rebalanced into additional sETH LPs and re-staked in Unipool contract.

zUNI users can convert their sETH LPs into zUNI tokens at any point, by calling stakeMyShare.

Likewise, they can redeem their zUNI for their original sETH LPs + additional sETH LPs (accrued from rebalancing SNX rewards into additional sETH LPs), by calling getMyStakeOut.


Up until recent deployment of Unipool contract, SNX rewards for sETH LPs on Uniswap were essentially distributed manually.

  • Before: Take snapshots of LP addresses and airdrop SNX rewards proportionally.

  • Now: Stake LP tokens in Unipool which proportionally accrue SNX rewards every second, are redeemable anytime to:

    • sETH LP tokens + accrued SNX rewards.

    • JUST SNX rewards.

    • JUST some sETH LP tokens.

  • Why zUNI?

    • Once staked in Unipool, sETH LP tokens cannot be moved - zUNI is an ERC20 which can be transferred freely and is always proportionally redeemable for an ever growing amount of sETH LPs.

    • Accrued SNX rewards are not being utilized - anytime zUNI is minted or redeemed, accrued SNX rewards for all zUNI holders will rebalance into sETH LPs which are re-staked to accrue SNX rewards at a faster rate.

    • Improve sETH<>ETH peg with every SNX rebalance as SNX is used to buy sETH from Uniswap in order to obtain necessary proportions to obtain LPs from adding sETH+ETH liquidity to the pool.

Additional information:


Testing on forked mainnet instructions.

Why testing on Forked Mainnet:

The Contract that we have developed and in the process of testing requires to interact with (a) the Unipool contract that is giving out the rewards and (b) Uniswap, to be able to convert the underlying SNX into sETH LP tokens. We wanted to test these functionalities in “as close to as real mainnet” situations considering the quantum of SNX required for distribution {yes, that can be gamed on a test net} and (most importantly) the deep volume that exists on Uniswap {which is only on the mainnet (creating that on a testnet would be very cumbersome)}. Hence, our entire testing has been on a forked version of the mainnet.


Front-end [WIP]:

To help us design and develop a worthy UI/UX, we partnered with one of our fellow MetaCartel members - RaidGuild. This page will be launched as soon as the community approves, tests and audits zUNI smart contract.

Next Steps:

  1. Review code, submit PRs with your feedback here: https://github.com/amateur-dev/Unipool.

  2. Main-net deployment.

  3. Are you interested in creating incentives to improve liquidity around your pool? Submit a request: https://airtable.com/shrQVmnmEdXkr0Xm3

    Join the conversation