Introducing Fabric on Mainnet 🥳


You can now stake FAB as collateral, mint fUSD, and swap to other synthetics. By minting fUSD you enter a debt pool and begin to earn rewards.

Link to app:

gm PUNKs, 0xDEADBEEF here ☕️

I want to extend a huge thank you to everyone who has supported us throughout this journey to launching mainnet and to everyone who has joined us along to way as we grow.

In this post, I wanted to introduce the protocol — we will breakdown the following:

A worked example is available at the bottom of this post.

What is a synthetics protocol?

A synthetics protocol is a decentralized program for issuing and trading synthetic assets.

A synthetic asset (or synth) is a native token that tracks an external asset with a supply controlled by the protocol.

Each synthetic is underpinned by an on-chain oracle. For example, fBTC tracks the price of Bitcoin in USD, fXAU tracks the price of Gold in USD, etc. Within the protocol, each synthetic is valued at the price provided by the oracle.

You may know of existing synthetics protocols such as Synthetix and Mirror.

How does Fabric work?

Fabric’s core feature — the synthetics protocol (built on Solana) — requires users to deposit FAB in order to mint fUSD at a given collateral ratio. By minting fUSD, users enter the global debt pool which bears a risk.

The collateral ratio for FAB at launch is 1000% — meaning users are required to deposit $10 for every $1 of fUSD minted.

Minted fUSD can be traded for other synthetics, staked in our fUSD-3Pool for rewards, or simply held.

So, we can divide the protocol into the following functionalities:

Collateral and synthetics supported at launch

At launch, the protocol only supports native FAB tokens as collateral and the following synthetics:

To learn more about how new synthetics and collateral can be added the protocol, please read the Governance section below.


Minting fUSD and the risks involved

Once a user has staked FAB as collateral, they can mint fUSD based on the amount of collateral staked. A user has a maximum allowed amount to mint — we will call this the “maximum spend”— this is equal to the sum of the user’s collateral value in USD divided by the collateral ratio.

Example: If a user has 1000 USD of FAB staked with a 1000% collateral ratio (i.e. 10), the user will have (1000 / 10) = 100 USD max spend.

Each user incurs a proportion of global “debt” when they mint fUSD, this proportion is represented as “shares of total debt” — we call this “joining the debt pool”. This comes with a risk as the global debt can increase, meaning you can owe more than you minted.

We’ll walk through a worked example in this post explaining the relationship between minting, debt, and debt shares — see the below sections and worked example at the end.

Collateral ratio (c-ratio)

Let’s start by defining:

FAB is the only collateral supported and it has a collateral ratio of 1000%. As mentioned earlier, this means for every $1 of fUSD minted, there is $10 of FAB collateralizing it when minted.

Why do I say when minted? As the price fluctuates for collateral and synthetics, so does the collateral ratio for each user and the entire protocol. This means after minting, your collateral ratio can change.

Now we understand what the collateral ratio is, let’s dig into why and how it changes.

Debt and debt shares

Let’s define the global debt of the protocol as the sum of every synthetic’s market cap.

Each user has debt shares associated with their account once they have minted fUSD. Let’s look at the effect of minting and burning on debt shares:

A user’s debt can be calculated as:

(user debt shares / total number of debt shares in protocol) * global debt

NOTE: this is different from what people may think where user debt is simply the sum of their own synths.

To see debt and debt shares in action, see the worked example at the bottom of this post.

Epochs and rewards

An epoch is a period of time, currently defined as 216,000 slots which, in optimal conditions, of~400ms confirmation time, is roughly 24 hours. If the network is running any slower than 100%, the epoch time duration will be longer — which right now is typical. Epochs are lasting closer to 36–40 hours.

To be eligible for rewards, a user must maintain their debt shares for an entire epoch at least before earning rewards. This means if a user mints in Epoch 1, they earn rewards in Epoch 2 but cannot claim them until Epoch 3 begins.

Overview of rewards distribution over epochs


The protocol has been designed with gentle, partial liquidations.

Once a user’s collateral ratio is below the minimum (currently 1000%), there is roughly a 15-minute window before a partial liquidation of 10% of the total debt takes place.

The liquidator must burn fUSD in order to reduce the user’s collateral ratio. When this occurs, the user’s collateral is liquidated and transferred to the liquidator.

The user is liquidated 12% of their collateral where 11% goes to the liquidator (10% based on fUSD burnt + 1% fee) and 1% of the collateral is transferred to a protocol-owned account — how these fees are used can be voted on by the DAO.

Our liquidator program, along with our SDK, will be officially released later this week — keep any eye out 👀


The protocol is governed and ultimately controlled by the Fabric DAO. This includes but is not limited to the following actions:

To learn how to vote in the DAO, see

Proposal ideas must be discussed in the Discord #governance-discussion channel before being made into a proposal.

Fees and fee distribution

The protocol only deducts a fee when a user swaps from one synthetic to another. Depositing, minting, burning, and withdrawing have NO fee.

The fee for a single swap/trade is made of three components:

where the total fee = (base fee + synthetic A fee + synthetic B fee).

The base fee is a standard fee applied to all swaps set at the protocol level. This is set to 0.01% at launch.

Each synthetic has its own fee component — this means if I trade fUSD to fBTC where fUSD has a fee component of 0.05% and fBTC has a fee component of 0.1%, the total fee charged is 0.01%+ 0.05% + 0.1% = 0.16%.

You can see what the fees are set for each synthetic in our documentation space at


We contracted Kudelski Security, a top-tier cyber security firm, to audit the protocol. There were no critical issues found and all reported issues were rectified.

Kudelski is in the process of quality assurance and handover of the final report. Once the final report is received, we will publish it and update the message shown in the dApp.

Future updates

While we’ve just started a long journey, we’re extremely excited about our upcoming updates and features.

We are working on a revamped dApp UI based on community feedback throughout testing. We are also working on a trader-focussed platform (think Coinbase Pro-esque) aimed primarily at users who wish to trade (not stake) on the protocol.

The next iteration of the protocol, v2, will include:

To learn more about what we have planned, see our roadmap!

A big shoutout to everyone who has supported us! I want to thank the teams at Genesysgo, Raydium, Mercurial, Jupiter, Pyth, Switchboard, Kudelski, Sonar, Marinade and Orca for their great support 🫂

I also want to thank the Fabric team and every single member of the community that has ever stood by us ❤️


Worked example

Let’s assume:

— There is now $1010 of synths in total = $1010 global debt

— User 1 is issued 10 debt shares

— There is now 1010 total debt shares

— User 1’s debt is 10/1010 of global debt = 10/1010 * 1010 = $10

Sticking with the assumption fUSD is the only synthetic in supply, the value of all synthetics is static and the global debt is static.

2. User 1 swaps their $10 of fUSD to fBTC, they still have $10 of synths — there is no change in the value of all synthetics or in the global debt.

3. Now, let’s assume the value of Bitcoin goes up 10%:

— User 1 now has $11 of fBTC

— There is now $1011 of synths in total (global debt)

— User 1 owes 10/1010 of global debt = 10/1010 * 1011 = $10.009901

— User 1 could convert $10.009901 of fBTC to fUSD and burn off all their debt, profiting roughly $0.990099 in fUSD

4. Now let’s also assume another user, User 2, had $10 of fUSD before User 1 minted and held onto it:

— User 2 still has $10 of fUSD after User 1 swaps

— User 2 owes 10/1010 of global debt = 10/1010 * 1011 = $10.009901

— User 2 needs to buy and burn $0.009901 of fUSD to reduce their owed debt back to the initial $10 they owed — to be clear, User 2 only minted 10 fUSD but they owe $10.009901 of debt — this is the main risk when staking and minting fUSD.

This should give an idea of how changes in collateral and global debt can affect your own debt owed and collateral ratio.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

FABRIC is a decentralised synthetic asset issuance protocol built on the Solana network.