Calculating Profit and Loss as a Synthetix Staker
A beginner’s (and a degen’s) guide to navigating tax season
It’s no secret that tax reporting is a challenging problem for crypto investors. The speed of the space, high technical complexity and lack of guidance often leaves many struggling to calculate their obligations (or avoiding them entirely!) come new year. As a CC and Synthetix staker, I have yet to find any “tax calculation” services that correctly categorize transactions with Synthetix or any of its partner protocols.
Typically, the services just report all transactions as simply “income” or “loss,” when the true tax reporting should be more specific to the actual services of the protocol. I’ve recently been grappling with this issue myself, so I thought it would be helpful to go through the exercise of really attempting to understand what tax reporting as a Synthetix staker should look like, and hopefully save others in the community the effort as well. This article will mostly approach reporting from a US Tax perspective, but it’s likely the process should be similar for other countries. Moreover, with the staged landing of Synthetix V3 aligning with the publication of this article - some aspects of this content may change.
NOTE: I am a Core Contributor at Synthetix, not a tax advisor nor a representative of any tax agency or accountant. The contents of this guide are provided in the hopes that it will be useful, however there is no claim of accuracy or applicability. You assume full responsibility for your own tax reporting and therefore it is advised that you do your own research. This is not tax advice.
So what does an appropriate tax report for a Synthetix staker look like? To understand that, it’s useful to review what is actually happening when a user stakes with Synthetix.
A staker starts by locking an amount of SNX by interacting with the web UI. As part of this process, the staker receives sUSD in return. The sUSD can be spent elsewhere, but it must be paid back in the future to unlock your SNX collateral. Some stakers may choose to trade on the products Synthetix liquidity helps to power (ex. Spot markets, perpetual futures, Lyra, etc.), others may choose to simply hold it in their account. Other bold folks will sell it for ETH or USDC and perhaps buy real world products with it! Interestingly, the way that the sUSD is used is not important, as I will explain later. Next, every week, the user will be required to maintain their collaterization-ratio by minting/burning sUSD to ensure that their collateral is healthy, sufficiently utilized, and at the target collateralization ratio to receive rewards. In return, the user receives rewards, both in the form of SNX from protocol inflation and sUSD trading fees collected from users.
Finally, a staker’s position ends when they ultimately repay their sUSD debt, thereby burning all the sUSD that they minted (the exact amount required to burn depends on how the Synthetix debt pool performed at the time) and unlocking the SNX that they originally deposited. Alternatively, the account could be liquidated if it fails to maintain its c-ratio, and in this case, the user has a portion or all of its debt repaid in return for its collateral to be collected. Although there are additional ways a staker can interact with Synthetix, this article focuses on exploring the tax reporting that may be done for a staker, as per the aforementioned process.
Categorizing Synthetix Transactions
One of the first tasks of tax preparation is categorizing the transactions that need to be reported, and with these categorizations, a tax liability can be determined for each transaction. There are a lot of transaction types discussed above, and if we categorize them, we can assemble into a table:
Minting sUSD with locked SNX is effectively taking out a loan, since the sUSD needs to be returned in the future. This means that no taxes are technically incurred by simply minting or burning sUSD, since it’s not really (in and of itself) a profit and a loss. There are some complexities when it comes to this due to the fluctuation of the debt pool, but we will get to that shortly 🙂. SNX rewards are income because they are compensation for you locking collateral and minting sUSD to the pool. sUSD rewards play a similar role. If your account gets liquidated, however, you have essentially divested all the SNX which you lost as a result of the liquidation, and therefore, you must report your capital gains (or losses) of the SNX. You also have to pay taxes on however much sUSD you didn’t have to repay.
In this article I have yet to acknowledge the fluctuation of the debt pool. While the fluctuation tends to be relatively insignificant compared to most tax liabilities, it is still required to determine how much taxes are due as a result of the debt pool fluctuation. Moreover, the debt pool tends to slowly increase, so there is actually incentive to report debt pool responsibility for debt as a loss to ensure that your taxes are complete. When combining this with sUSD rewards, there is actually a really easy formula which can be utilized to calculate your income due to debt pool fluctuation in a given year:
totalSnxIncome = startDebt − endDebt + sUSDminted − sUSDburned
Note that, in the equation above, startingDebt is either the amount of debt you had at Jan 1st of that year, or, if you started staking during the tax year in question, 0. And endDebt is the amount of debt you had on Dec 31st, or if you exited your position during the tax year in question, 0. The startDebt - endDebt part of the equation effectively covers any amount of debt “left over” from either a prior year, or remaining at the end of the year, and sUSDMinted - sUSDBurned is fundamentally the obligations that you have paid/have outstanding. If you complete this calculation every year, and add it as part of your income tax for any given year, you end up with your tax liability/loss due to debt pool fluctuation for that year. You could also do similar calculations for a quarterly/monthly basis, as your tax requirements allow. In 2022, a staker who was staking on the debt pool from the beginning of the year to the end of the year would have incurred a significant net loss, so it is definitely worthwhile to do this calculation to make sure you are getting the deduction you deserve from losses, due to fluctuation of the debt pool!
So, you now know that you have a certain amount of income to report for your sUSD and SNX earnings taking into account the debt pool fluctuations. But the question still remains, how would one gather this data? Many active stakers have hundreds of transactions per year from simply participating in the SNX staking process - claiming, minting and burning every week, etc. If the automatic tax calculation softwares don’t compute it correctly, then where is the best place to get the data? Over the years, I have found Zerion to be an excellent resource for this. If you visit their website and plug in your wallet address (you don’t need to “connect” your wallet, just paste it in the search bar), and then switch to the “history” tab, you will see an overview of all of your account transactions for all networks. You can then click “Export CSV” on the top right to get this enriched and formatted multiyear overview of your account transactions with data extracted for transfers/trades/income/etc. While it also provides its own tax calculation services, it’s not necessary to use them if you simply export a CSV and apply your own adjustments as needed.
In order to simplify the problem of computing these values for myself, I developed a small script which pulls data directly from on-chain and assembles data in the equation shared above. The script can be found on a Github Gist. You will likely still need to do some manual calculations, but this script can help you get 90% of the way.
If you have made it this far, then hopefully you should have some ideas and tools to help you manage your taxes for Synthetix. Despite the daunting task, with the right tools and a few hours of bookkeeping, it is possible to gain a complete picture of your income, expenses and capital gains with the protocol. Doing the extra effort to calculate your probable losses on the debt pool will allow for greater savings, while also increasing the completeness of your report at the same time. This is typically enough to report your taxes and move on to next year to do it all again (wohoo!). Your accountant will thank you, and perhaps your wallet too.
I would like to thank fellow Core Contributors Bex and Matt for helping to review and provide improvements for this article.