{"componentChunkName":"component---src-pages-sips-sip-markdown-remark-frontmatter-sip-tsx","path":"/sips/sip-103/","result":{"data":{"markdownRemark":{"fileAbsolutePath":"/vercel/path0/content/sips/sip-103.md","frontmatter":{"sip":103,"sccp":null,"title":"sUSD Shorts","network":"Ethereum","author":"Michael Spain (@mjs-12)","type":"Governance","proposal":null,"implementor":null,"release":null,"created":"2020-12-08T00:00:00.000Z","updated":null,"status":"Implemented"},"html":"<h2 id=\"simple-summary\" style=\"position:relative;\"><a href=\"#simple-summary\" aria-label=\"simple summary permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Simple Summary</h2>\n<!--\"If you can't explain it simply, you don't understand it well enough.\" Simply describe the outcome the proposed changes intends to achieve. This should be non-technical and accessible to a casual community member.-->\n<p>Allow users to short synthetic assets against sUSD.</p>\n<h2 id=\"abstract\" style=\"position:relative;\"><a href=\"#abstract\" aria-label=\"abstract permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Abstract</h2>\n<!--A short (~200 word) description of the proposed change, the abstract should clearly describe the proposed change. This is what *will* be done if the SIP is implemented, not *why* it should be done or *how* it will be done. If the SIP proposes deploying a new contract, write, \"we propose to deploy a new contract that will do x\".-->\n<p>In traditional markets, assets can be borrowed and sold short to gain inverse price exposure. The borrower is legally obligated to repurchase the asset in the future and return it. With the introduction of fixed debt loans in Synthetix, we provide a shorting mechanism which relies on overcollateralization in the absence of legal enforcement. By depositing sUSD collateral, users can borrow and short sell synthetic assets (synths). To retrieve their collateral, they must repurchase the borrowed synth and return it.</p>\n<p>This mechanism provides an alternative to iSynths for users seeking inverse price exposure. While these positions require collateral, they return the sUSD proceeds of the sale to the shorter, which can then be deployed productively throughout DEFI.</p>\n<h2 id=\"motivation\" style=\"position:relative;\"><a href=\"#motivation\" aria-label=\"motivation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Motivation</h2>\n<!--This is the problem statement. This is the *why* of the SIP. It should clearly explain *why* the current state of the protocol is inadequate.  It is critical that you explain *why* the change is needed, if the SIP proposes changing how something is calculated, you must address *why* the current calculation is inaccurate or wrong. This is not the place to describe how the SIP will address the issue!-->\n<p>The current iSynth mechanism provides inverse price exposure but has limitations.</p>\n<ul>\n<li>Purging and resetting iSynths involves a significant amount of manual labour and owner risk. It also requires token holders to reset their positions and new rewards contracts to be deployed.</li>\n<li>The cost of buying a unit decreases as the price approaches the upper limit, which can be abused by front runners.</li>\n<li>The iSynth token cannot be used productively outside of the system.</li>\n</ul>\n<h2 id=\"specification\" style=\"position:relative;\"><a href=\"#specification\" aria-label=\"specification permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Specification</h2>\n<!--The specification should describe the syntax and semantics of any new feature, there are five sections\n1. Overview\n2. Rationale\n3. Technical Specification\n4. Test Cases\n5. Configurable Values\n-->\n<h3 id=\"overview\" style=\"position:relative;\"><a href=\"#overview\" aria-label=\"overview permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Overview</h3>\n<p>Shorts are fixed debt, over-collateralised loans that are structurally identical to those described in <a href=\"https://sips.synthetix.io/sips/sip-97\">SIP 97</a>. To open a short, the user must deposit sUSD collateral. They choose the synth they wish to short and the size of the position, subject to collateralisation requirements. However, instead of issuing the shorted currency, the contract converts the value to sUSD and issues that to the user, which represents the act of selling the asset short. A simple example illustrates this process.</p>\n<ol>\n<li>User deposits 10000 sUSD and elects to short 10 sETH.</li>\n<li>A loan is created for the user for 10 sETH.</li>\n<li>The user is issued 5000 sUSD.</li>\n<li>To reclaim the 10000 sUSD collateral, they must return 10 sETH to the contract.</li>\n</ol>\n<p>As mentioned, this position is represented internally as a loan, denominated in the currency that was short sold. In this example, the following loan would be stored.</p>\n<table>\n<thead>\n<tr>\n<th>Symbol</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\\(c\\)</td>\n<td>Collateral locked</td>\n<td>10000 sUSD</td>\n</tr>\n<tr>\n<td>\\(p_c\\)</td>\n<td>USD price of the collateral</td>\n<td>$1</td>\n</tr>\n<tr>\n<td>\\(s\\)</td>\n<td>Synth borrowed</td>\n<td>10 sETH</td>\n</tr>\n<tr>\n<td>\\(p_s\\)</td>\n<td>USD price of the synth</td>\n<td>$500</td>\n</tr>\n<tr>\n<td>\\(I\\)</td>\n<td>Interest accrued on the loan</td>\n<td>0.01 sETH</td>\n</tr>\n</tbody>\n</table>\n<p>In this case, 5000 sUSD was issued to the shorter. Generally, quantity of sUSD issued is:</p>\n<p>\\(q \\ := s p_s\\)</p>\n<p>As with any loan, the collateralisation ratio of the short position can be determined by:</p>\n<p>\\( r \\ := \\frac{p_c \\ c}{p_s \\ (s + I)}\\)</p>\n<p>A separate contract which accepts sUSD as collateral will be responsible for the issuance and management of all short positions. This contract supports the same pattern of interactions as described in <a href=\"https://sips.synthetix.io/sips/sip-97\">SIP 97</a>.</p>\n<h4 id=\"debt-pool-and-interest\" style=\"position:relative;\"><a href=\"#debt-pool-and-interest\" aria-label=\"debt pool and interest permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Debt Pool and Interest</h4>\n<p>An sUSD short is a directional bet on the price of a synth. Similar to iSynths, the payoff for the position varies inversely with the price of the synth.</p>\n<p>For any given synth, the ratio between its supply (long) and the supply of its corresponding iSynth (short) determines the skew. If the skew is 0, price fluctuations will not effect the debt pool as any increase in debt from one side will be offset by a corresponding decrease on the other side. From the perspective of the debt pool, this is an optimal position as it minimises risk.</p>\n<p>To encourage balance, a positive interest rate will be charged on synths where there is greater short exposure than long exposure. This interest rate will increase in proportion with the skew. On the other hand, when long exposure exceeds short, the interest rate will be 0. Additionally, we may propose to incentivise taking positions that reduce skew through rewards programs, which are currently active for certain iSynths.</p>\n<p>To define the interest rate, we modify some definitions from <a href=\"https://sips.synthetix.io/sips/sip-80\">SIP 80</a>.</p>\n<p>| Symbol | Description | Definition | Notes |\n| \\(Q_L\\) | Long supply | - | The total supply of the synth. |\n| \\(Q_S\\) | Short supply | - | The total short supply of the synth. |\n| \\(K\\) | Synth skew | \\(K \\ := \\ Q_S - Q_L\\) | The excess supply on one side or the other. When the skew is positive, shorts outweigh longs; when it is negative, longs outweigh shorts. When \\(K = 0\\), the synth is perfectly balanced. |\n| \\(W\\) | Proportional skew | \\[W \\ := \\ \\frac{K}{Q_L + Q_S}\\] | The skew as a fraction of the total amount of long and short. |\n| \\(b\\) | Base short rate | | A configurable parameter that reflects the cost of borrowing. |\n| \\(i\\) | Instantaneous interest rate | \\[i \\ := \\ max(W + b, 0) \\] | When the market is long skewed, it will be free to short. |</p>\n<p>Interest accrues continuously, and is computed using the accumulated funding method described in <a href=\"https://sips.synthetix.io/sips/sip-80\">SIP 80</a>.</p>\n<h4 id=\"liquidations\" style=\"position:relative;\"><a href=\"#liquidations\" aria-label=\"liquidations permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Liquidations</h4>\n<p>Shorts will be eligible for liquidation if their collateralisation ratio falls below the minimum required by the contract. Liquidations will be incentivised via a penalty which is paid out of the users collateral. The liquidation mechanism is the same as described in <a href=\"https://sips.synthetix.io/sips/sip-15\">SIP 15</a>.</p>\n<h3 id=\"rationale\" style=\"position:relative;\"><a href=\"#rationale\" aria-label=\"rationale permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Rationale</h3>\n<!--The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during discussion.-->\n<h3 id=\"technical-specification\" style=\"position:relative;\"><a href=\"#technical-specification\" aria-label=\"technical specification permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Technical Specification</h3>\n<!--The technical specification should outline the public API of the changes proposed. That is, changes to any of the interfaces Synthetix currently exposes or the creations of new ones.-->\n<p>A new contract <code>CollateralShort.sol</code> which inherits from <code>CollateralErc20.sol</code> and implements the following API.</p>\n<pre><code class=\"language-solidity\">\nfunction open(uint collateral, uint amount, bytes32 currency) external;\n\nfunction close(uint id) external;\n\nfunction deposit(address borrower, uint id, uint collateral) external;\n\nfunction withdraw(uint id, uint amount) external;\n\nfunction repay(address borrower, uint id, uint amount) external;\n\nfunction draw(uint id, uint amount) external;\n\nfunction liquidate(address borrower, uint id, uint amount) external;\n\n</code></pre>\n<h3 id=\"test-cases\" style=\"position:relative;\"><a href=\"#test-cases\" aria-label=\"test cases permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Test Cases</h3>\n<p>Test cases included with the implementation.</p>\n<h3 id=\"configurable-values-via-sccp\" style=\"position:relative;\"><a href=\"#configurable-values-via-sccp\" aria-label=\"configurable values via sccp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configurable Values (Via SCCP)</h3>\n<p>For the sUSD short contract, the following values must be set.</p>\n<ul>\n<li><code>synths</code> the synths which can be shorted.</li>\n<li><code>minCratio</code> the minimum collateralisation ratio before becoming eligible for liquidation.</li>\n<li><code>minCollateral</code> the minimum collateral required to open a position.</li>\n<li><code>issueFeeRate</code> the fee for opening a short.</li>\n</ul>\n<h4 id=\"proposed-initial-values\" style=\"position:relative;\"><a href=\"#proposed-initial-values\" aria-label=\"proposed initial values permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Proposed Initial Values</h4>\n<p>The following values are proposed as the initial configuration.</p>\n<p><code>CollateralShort.sol</code></p>\n<ul>\n<li><code>synths</code> sBTC, sETH</li>\n<li><code>minCratio</code> 150%</li>\n<li><code>minCollateral</code> 500</li>\n<li><code>issueFeeRate</code> 0</li>\n</ul>\n<h2 id=\"copyright\" style=\"position:relative;\"><a href=\"#copyright\" aria-label=\"copyright permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Copyright</h2>\n<p>Copyright and related rights waived via <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0</a>.</p>"}},"pageContext":{"id":"97cff49c-87e7-530b-ad9b-f69d086be510","frontmatter__sip":103,"__params":{"frontmatter__sip":"103"}}},"staticQueryHashes":[]}