What is Synthetix?

Snythetix is a decentralized protocol to trade Synthetic assets on Ethereum. It is one of the hottest DeFi products with more than $100 million value locked in the protocol. Let’s deep dive.

What are Synthetic assets (Synths)?

Synthetix assets (Synths) are derivatives – i.e., representation of different monetary assets such as cryptocurrencies, fiat, commodities such as gold or silver – as an Ethereum token.

For example, Bitcoin’s (BTC) representation in Synthetic protocol is sBTC. However, there is no BTC anywhere in the protocol. sBTC is just representation with an external price feed of the latest Bitcoin price.

Multiple synthetic assets are currently live, for example — sUSD, sEUR, sETH, sXAU (Gold), etc. You can check the complete list on Synthetix.exchange.

How Does Synthetix Work?

To understand how Syntethix enables decentralized derivative trading, Let’s learn a few key concepts first.

SNX token — Synthetix protocol token.

sUSD — US dollar synth on the protocol. 1 sUSD = 1 USD

Debt- Whenever a user mint sUSD, it acquires debt in the system.

Debt pool — Total value of synths created by the protocol.

Staking/minting — A process of creating sUSD by locking up SNX tokens in the protocol.

Staker/Minter — A user staking/minting sUSD using SNX.

Synthetix Exchange — A place where you can trade synthetic assets.

Collateralization ratio (C-Ratio) — Ratio of overcapitalization of sUSD minted using SNX. For now, Synthetix has an 800% collateralization ratio, which means to mint 1 sUSD you need to stake $8 worth of SNX.

Debt ratio — A user’s debt against the total debt in the system.

Now, let’s understand how the Synthetix protocol works.

Synthetix protocol’s underlying token is SNX. By staking SNX, you can mint sUSD, a syntactic asset representing the US Dollar. With sUSD, you can acquire other synthetic assets.

Whenever any user mints sUSD, a user acquires debt, and the total debt pool is increased. As other participants take positions in different synths, your debt value decreases or increases based on your initial debt ration. At any moment, to exit the system, you need to pay your debt.

Let’s understand this with an example:

Example by Delphi Digital

So two points to note here:

  • As soon as you mint sUSD, you are exposed to market risk because a participant’s gain will be the loss to the other participants in the system, and this loss will be distributed among everyone.
  • If your debt value is greater than your initial value (e.g., Yan’s debt value in the 1st example), you don’t lose you SNX tokens, you can’t unlock them until you recapitalize your staking positions.

History & Tokenomics

The team behind Synthetix was building Havven stablecoin before pivoting to Synthetix. Initially, Havven’s supply was 100 million, which converted to 1–1 SNX tokens.

However, last year the team decided to change the monetary policy. From March 2019 to August 2023, the total SNX supply will increase from 100,000,000 to 260,263,816, with a weekly decay rate of 1.25% (from December 2019). From September 2023, there will be an annual 2.5% terminal inflation for perpetuity.

Why Stake SNX token?

Synthetix protocol incentivizes you in two ways for staking SNX tokens.

  • Inflation — As mentioned above, the current annual reward for staking SNX token is ~54%.
  • Exchange Fee — Whenever someone trades Synths on Synthetix exchange, protocol changes 0.3%(subject to change through governance). This fee is distributed among stakers based on their debt ratio.

In addition, when you stake SNX, you get sUSD, which you can diversify to for more capital gain.

For example — Let’s say you have $8000 worth of SNX tokens, which you staked and got 1000 sUSD. Now you can convert that 1k sUSD into sBTC. As you know, the prices of crypto assets are correlated, so you actually gain both on sBTC and SNX token at the same time.

Exit the Protocol

In the above example, if sBTC prices doubled, in that scenario, you will have some sBTC remained which you can trade other exchanges such as the Kyber network.

At any point to exit the system, you need to pay your debt ratio, which can fluctuate based on how other participants are performing.

In addition, as soon as your debt decreases, the protocol automatically allows you to unlock SNX in the same proportion.

Risk

There are multiple risks in the system.

  • Centralization — For now, proxy smart contracts are deployed, which can be upgraded by the Synthetix team because they control the keys for those smart contracts.
  • System complexity — Synthetix is a complex system which requires both empirical observations and theoretical analysis to understand its incentive and architecture design is suitable for every participant and future risk mitigation.

In addition, because synths price is dependent on external price feed, data corruption and consistency will always be a problem until we have a decentralized oracle network.

Besides, coding bugs are always a concern when we are dealing with smart contracts.

How to stake SNX?

To stake SNX, the Synthetix team has built a Mintr dApp, which you can use for minting sUSD using your SNX. You can acquire SNX from different crypto-exchange, such as Uniswap.

Develop on Synthetix

Synthetix team has created a Javascript library: Synthetix-js, using which you can interact with Synthetix protocol.

Let’s see an example:

We will get the supply of different synths from Synthetix.

First, you need to have NodeJs installed in your system.

Then create a directory and install synthetix-js.

mkdir synth
npm init
npm i synthetix-js

Now create an index.js and copy / paste the code below:

const { SynthetixJs } = require('synthetix-js');
const snxjs = new SynthetixJs(); //uses default ContractSettings - ethers.js default provider, mainnet
(async function () {
const totalSUSD = await snxjs.sUSD.totalSupply();
const totalSUSDSupply = snxjs.utils.formatEther(totalSUSD);
console.log('sUSDTotalSupply', totalSUSDSupply);


const totalSETH = await snxjs.sETH.totalSupply();
const totalSETHSupply = snxjs.utils.formatEther(totalSETH);
console.log('totalSETHSupply', totalSETHSupply);


const totalSBTC = await snxjs.sBTC.totalSupply();
const totalSBTCSupply = snxjs.utils.formatEther(totalSBTC);
console.log('totalSBTCSupply', totalSBTCSupply);


const totalSAUD = await snxjs.sAUD.totalSupply();
const totalSAUDSupply = snxjs.utils.formatEther(totalSAUD);
console.log('totalSAUDSupply', totalSAUDSupply);
})();
index.js

Now let’s run our file:

node index.js

It will provide the following results:

You can read the Synthetix docs to learn more about synthetix-js development.

Conclusion

Synthetix is a protocol for decentralizing derivating trading, where almost all liquid assets can be traded in a decentralized manner. You can think of it as a decentralized Bitmex.

But Synthetix is a complex system at the experimental stage, so deep understanding of the protocol is necessary before using it.

To learn more about Synthetix, read the documentation, or join its Discord community.

About QuikNode

QuikNode.io is building infrastructure to support the future of Web3. Since 2017, we’ve worked with hundreds of developers & companies, helping scale dApps and providing high-performance Ethereum nodes. We’re working on something interesting from the past few months and will be launching soon, so subscribe to our newsletter for more updates!! 😃