Introducing xSNX: Synthetix Staking Made Simple

michael j. cohen
xToken
Published in
10 min readAug 18, 2020

Note: This post was updated Oct. 4 with details on the relaunch

DeFi tokens come in all shapes, sizes and flavors. Some are stakeable, some are farmable, some are burnable and some are all or none of the above.

The design space is bursting with creativity, and during the early part of this bull run, we’ve witnessed an evolution in the science of tokenomics as the community runs experiment after experiment, each giving us a clearer picture of the gives and takes of decentralized financial systems.

When we look back at this period a generation from now (when we’ve all made it), we may look towards one seemingly minor decision by the Synthetix community in early 2019 as the genesis of this new era. While the staking and fee capture token model was mostly in place, the decision to implement an aggressive and front-loaded inflation model was the final ingredient needed to bootstrap an ecosystem by way of token. A year and a half later, many of the premier token projects in the space can trace their success to the Synthetix model.

But, the Synthetix token model — while brilliant — is also incredibly complicated, time-intensive and expensive to manage. This drives away several kinds of investors. For many, the lofty transaction fees required to participate cut too deeply into returns to make investment economical. For casual believers in the project, the time commitment and technical acumen required is a non-starter. For some tax-conscious investors, the laundry list of weekly staking, hedging, claiming and burning transactions simply isn’t worth it.

xSNX is made for all of these investors. xSNX is a managed fund where staking returns and trading fees accrue to the Net Asset Value of the token. You buy once to get in and you sell once to get out. That’s all that is required to participate fully in the Synthetix network.

The following is a detailed primer on the mechanics of xSNX and will require some basic knowledge of Synthetix. This is a complicated and risky product and anyone who chooses to invest should read this primer in full and do their own research on both xToken and Synthetix.

However, for those looking for a quick summary, xSNX is an easy way to invest in SNX without:

  • minting
  • claiming
  • hedging
  • managing your collateralization ratio

On the flip side, xSNX provides you with:

  • set-and-forget exposure to SNX staking returns
  • highly simplified tax planning and accounting
  • a liquid representation of your SNX staking position that you can use as collateral, add to liquidity pools or transfer from wallet to wallet

We also feel compelled to note that xSNX is not a yield farming strategy and not a trading vehicle. xSNX holders should be long term believers in the Synthetix ecosystem. The fund is designed for long term value accrual. Short term holders may struggle to earn positive returns.

Finally, one other cool thing to mention before we dig deeper. We’ve deployed a xSNX/ETH/SNX 50/25/25 Balancer pool that is eligible for BAL rewards. More details inside on why this is such an important element of the xSNX complex.

Source: ΔLΞXΔNDΞR

Code

The xSNX contracts were audited by iosiro. Find the full report here. Additionally, Quantstamp performed a security review.

There are three core contracts, each deployed behind a proxy.

Minting

There are two ways to mint xSNX: with ETH or with SNX. If you mint with ETH, the contract exchanges ETH for SNX behind the scenes. In both cases, the mint function calculates the Net Asset Value (NAV) of the assets and debt currently held in the contract. More on the NAV equation in the valuation section.

To enter the xSNX pool and earn staking returns, all an investor needs to do is mint. That’s it. This is a set-and-forget-token. The rest of the Synthetix staking flow is administered by xToken.

The mint transaction is a bit expensive gas-wise, but it still amounts to less gas than an average staker would spend in a week. Some investors may choose to buy xSNX on the Balancer pool, which will cost less gas and may or may not offer a better price.

The contract charges a mint fee of 0.2%.

Staking and Hedging

xToken manages the staking and hedging process for the xSNX pool. The admin-controlled hedge function mints sUSD and exchanges it for the two assets in the hedging portfolio: 75% of the sUSD goes to the TokenSet strategy and 25% is allocated to vanilla ETH. This function will be called regularly.

After some feedback from the DeFi community, the first instance of xSNX — xSNXa — will allocate to the ETHRSI6040 TokenSet, which sits in ETH when the ETH trend is bullish and flips to USDC when the ETH trend turns bearish.

Note that this hedging portfolio represents an opinionated hedging strategy. While change in the price of SNX will have the largest effect on the performance of xSNX, the performance of the hedging strategy will be a significant factor in the return profile of the fund. If you, for example, expect ETH to trend downward or to move choppily within a price range (conditions under which the TokenSet may underperform), xSNXa may not be an optimal strategy for you.

To accommodate multiple market perspectives, we may launch xSNXb in the coming months. The xSNX smart contract is compatible with any TokenSet that jumps between two assets. Some potential candidates:

Claiming

xToken claims SNX rewards and sUSD trading fees on behalf of the pool each week. The rewards increase the NAV of the contract and thus each investor’s pool tokens increase in value. As with all staking rewards, the SNX portion of the staking rewards will remain escrowed in the contract for 12 months.

As such, xSNX is geared towards long term SNX investors. xSNX redemptions will not account for staking rewards until they are vested (i.e., if you redeem directly on the contract, you forego unvested rewards). However, you may be able to sell your tokens on Balancer at a price that includes the present value of your escrowed rewards — a feature currently unavailable with conventional staking.

sUSD trading fees are immediately exchanged for ETH and counted towards redeemable fund NAV. An admin fee of 1% of sUSD claimed is charged.

Valuation

The exhibit below documents the contract’s NAV formula. Due to the nature of SNX staking rewards being escrowed for one year, there will always be a spread between the mint and burn prices on the contract. In order for the contract to remain solvent, it cannot pay out value it doesn’t have custody over.

This exhibit is the target allocation. Actual allocation between assets may vary from time to time but will always converge on the target proportions below in the medium term.

An example NAV calculation

Burning/Redeeming

A major design goal for xSNX was limiting the costs to enter and exit the system. While the mint transaction is somewhat expensive, it amounts to less than one week of gas costs for a typical SNX staker. Redeeming your xSNX is a bit more complicated, however, and all investors should be aware of these mechanics before engaging with xSNX.

In order to earn maximum returns in the Synthetix system, stakers must lock their SNX in the Synthetix contracts. This poses a challenge for guaranteeing full liquidity to xSNX holders. In order to provide full guaranteed liquidity at any time for a token like xSNX, the contract would have to calculate redemption value, unwind its hedge portfolio, burn debt and distribute the value in one transaction. At elevated gas prices, the cost of this transaction could easily exceed $100. This could wipe out the gains of smaller stakers and is a non-starter from a UX perspective.

For larger stakers, this would also be poor design. The constant churn of stakers entering and exiting the system — unwinding and rewinding the hedge portfolio — would reduce returns significantly over time due to trading fees and slippage. We realized that constant exit liquidity — available directly on the contract — wasn’t an option for a performant xSNX.

For this reason, xSNX targets a 3–4% allocation of liquid ETH in the fund at any given time (see Valuation exhibit above). This is the reserve available for investors looking to exit the pool directly on the contract at a given time (when redeeming directly on the contract, investors can only redeem into ETH). The reserve may amount to more or less than the target at a given time, but through a variety of channels, the ETH reserve will rehydrate over time. That said, immediate and constant exit liquidity is not guaranteed.

Example: Say a major xSNX investor (owns 3% of pool tokens) comes along and redeems their full stake for ETH. This will result in a temporary shortage of liquid ETH, meaning that other investors won’t have direct exit liquidity until the contract rehydrates the ETH reserve (which will happen in the natural course of management, or via an admin rebalance if necessary).

We realize that this limited liquidity may not be enough for some investors who require fully guaranteed exit liquidity at all times. Fortunately, we’ve found an elegant solution that will empower xSNX investors to exit when they like. We’re excited to launch an xSNX/ETH/SNX 50/25/25 Balancer Pool seeded initially by RedRock Capital and Infinite Capital, whose backers are dedicated members of the SNX community. This guarantees that there will always be a liquid price available for xSNX. For interested LPs, this pool will be eligible for BAL liquidity mining rewards as well, so we encourage investors to double-dip in Synthetix staking rewards and BAL token distributions.

Finally, this Balancer pool has the added benefit of providing an implicit present value pricing for the pool’s escrowed tokens. While the xSNX contract itself cannot price escrowed tokens dynamically, a free-floating liquidity pool can.

Rebalances

xSNXa hedges exposure to the debt pool with a portfolio made up of 75% ETHRSI6040 and 25% ETH. It’s very possible that this portfolio will outperform the change in xSNX’s share of the debt pool. So, when the value of the hedge portfolio exceeds the value of the contract’s debt by 5%, the contract sells some of the hedge portfolio for SNX and stakes the incremental SNX to earn maximum returns.

Similarly, there may be a point in the lifecycle of the contract where the debt pool outperforms the hedging portfolio. If debt exceeds the hedge by 5%, the contract rebalances in the other direction, resulting in the selling of SNX to burn debt.

Integrations

We’re proud to say that xSNX demonstrates the composability of DeFi as well as any smart contract on Ethereum. First, xSNX is a wrapper for Synthetix staking, touching the Synthetix, SynthetixState, FeePool, ExchangeRates , RewardEscrow and AddressResolver contracts. Second, xSNX taps into Curve Finance for sUSD liquidity and Kyber Network for WETH and USDC liquidity (Kyber sources some of its liquidity from Uniswap as well.) Third, xSNX leverages Set Protocol to programmatically hedge debt exposure.

This is, of course, not without risk. xSNX holders are exposed to several layers of smart contract complexity and should be aware of the risks that come with it.

A Note on Admin Privileges

xToken does not have access to your funds. The contract is non-upgradeable and there are no special mint or transfer privileges. However, xSNX is an admin-managed contract. The complexity and gas-intensity of the Synthetix system, combined with a sophisticated hedging strategy, make fully permissionless management very challenging. By investing in xSNX, you are relying on xToken to stake, hedge and claim. Management of the contract is fairly straightforward and unlikely to deviate from strict guidelines, however, the contract allows some flexibility to accommodate extenuating circumstances (if sUSD loses its peg, for example).

Fees are capped by hardcoded values in the smart contract, but they are subject to change (no planned changes in the short-to-medium term). Fees will always be advertised prominently on the xSNXa asset page on the xToken UI.

There are also two design decisions we want to advertise transparently. First, as only about 3–4% of xSNX is liquid at a given time, we’ve exposed a public liquidationUnwind function that activates after three weeks of the fund failing to claim rewards. Put in simple terms, there’s a public function callable by anyone that will liquidate the fund into ETH to allow investors to exit should xToken become delinquent in its management capacity.

Second, should Curve Finance migrate to a new sUSD pool, the admin will need to set a new address for Curve on the xSNX contract. This introduces a trust assumption that we’ve chosen to mitigate by asking a Synthetix core contributor to be the second signer on all Curve address changes. Said another way, xToken will not be able to unilaterally change this address, resulting in a more secure contract with fewer trust assumptions.

xToken Community

Feel free to reach out with any questions or comments in the xToken Discord. And follow us on Twitter for updates. Thanks for reading!.

Disclaimer

The information provided in this blog pertaining to xToken Labs, Inc. (“xToken” or the “Company”), its business assets, strategy and operations is for general informational purposes only and is not a formal offer to sell or a solicitation of an offer to buy any securities, options, futures, or other derivatives related to securities in any jurisdiction and its content is not prescribed by securities laws. Information contained in this blog should not be relied upon as advice to buy or sell or hold such securities or as an offer to sell such securities. This blog does not take into account nor does it provide any tax, legal or investment advice or opinion regarding the specific investment objectives or financial situation of any person. xToken and its agents, advisors, directors, officers, employees and shareholders make no representation or warranties, expressed or implied, as to the accuracy of such information and xToken expressly disclaims any and all liability that may be based on such information or errors or omissions thereof. xToken reserves the right to amend or replace the information contained herein, in part or entirely, at any time, and undertakes no obligation to provide the recipient with access to the amended information or to notify the recipient thereof. The information contained in this blog is intended only for the persons to whom it is transmitted for the purposes of evaluating the Company. Any information, representations or statements not contained herein shall not be relied upon for any purpose. Neither we nor any of our representatives shall have any liability whatsoever, under contract, tort, trust or otherwise, to you or any person resulting from the use of the information in this blog by you or any of your representatives or for omissions from the information in this blog. Additionally, the Company undertakes no obligation to comment on the expectations of, or statements made by, third parties in respect of the matters discussed in this blog.

--

--