{"componentChunkName":"component---src-pages-sips-sip-markdown-remark-frontmatter-sip-tsx","path":"/sips/sip-311/","result":{"data":{"markdownRemark":{"fileAbsolutePath":"/vercel/path0/content/sips/sip-311.md","frontmatter":{"sip":311,"sccp":null,"title":"snxUSD Teleporters (V3)","network":"Ethereum & Optimism","author":"Roger Brogan (@rbrogan-git), MEB (@barrasso), Daniel Beal (@dbeal-eth)","type":"Governance","proposal":"https://snapshot.org/#/snxgov.eth/proposal/0x38d71944bc3c10d807a107341ad523d17e7e1afe238522ab071972ef03db2ad5","implementor":"MEB (@barrasso), Daniel Beal (@dbeal-eth)","release":null,"created":"2022-11-01T00:00:00.000Z","updated":null,"status":"Implemented"},"html":"<!--You can leave these HTML comments in your merged SIP and delete the visible duplicate text guides, they will not appear and may be helpful to refer to if you edit it again. This is the suggested template for new SIPs. Note that an SIP number will be assigned by an editor. When opening a pull request to submit your SIP, please use an abbreviated title in the filename, `sip-draft_title_abbrev.md`. The title should be 44 characters or less.-->\n<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>This SIP proposes the addition of a cross-chain transfer function to the snxUSD token.</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>Leveraging cross-chain messaging, Synthetix is able to implement highly efficient digital asset transfer via <em>teleportation</em>. In its simplest form, this entails burning snxUSD on a source chain, sending a cross-chain message containing the amount burned, and minting that quantity of tokens on the destination chain. A teleportation fee can be collected and distributed to backers of snxUSD. Teleporters will initially be deployed on the networks where Synthetix already exists (i.e. Ethereum &#x26; Optimism).</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>As liquidity in DeFi continues to move across various L2s, it is increasingly important for protocols to create chain-agnostic abstractions. Given that Synthetix is currently deployed on two chains, the ability to transfer assets bi-directionally (without a challenge verification period imposed by roll-ups, e.g.) would already be a very valuable feature for the protocol.</p>\n<p>Teleporters were originally proposed in <a href=\"https://sips.synthetix.io/sips/sip-204/\">SIP-204</a>, but implementation was postponed due to the lack of decentralized cross-chain messaging solutions available. This proposal entails the use of the <a href=\"https://chain.link/cross-chain\">Cross-Chain Interoperability Protocol (CCIP)</a>. Because Synthetix is already dependent on Chainlink's infrastructure for price feed oracles, this proposal doesn't create any trust assumptions with additional third parties.</p>\n<p>Teleporters are an improvement over AMM-based cross-chain bridging solutions because there is no slippage incurred from liquidity available on destination chains. Instead, the protocol can apply a fee structure at the discretion of governance, further incentivizing stakers to back the stablecoin.</p>\n<h2 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</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<!--This is a high level overview of *how* the SIP will solve the problem. The overview should clearly describe how the new feature will be implemented.-->\n<p>Teleporters involve adding <code>transferCrossChain</code> and <code>ccipReceive</code> functions to the snxUSD token with appropriate validations and fee capture functionality.</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<!--This is where you explain the reasoning behind how you propose to solve the problem. Why did you propose to implement the change in this way, what were the considerations and trade-offs. The rationale fleshes out what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during discussion.-->\n<p>We propose making the transfer function available on the snxUSD proxy, rather than the core system proxy. This is an extension of the ERC-20 interface (which already essentially includes a \"same-chain\" <code>transfer</code> function).</p>\n<h4 id=\"using-ccip-for-token-transfers\" style=\"position:relative;\"><a href=\"#using-ccip-for-token-transfers\" aria-label=\"using ccip for token transfers 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>Using CCIP for token transfers</h4>\n<p>In addition to the new functions outlined in the technical specification below, this SIP also proposes that Chainlink's CCIP token pools be granted permission to mint and burn snxUSD in order to facilitate the cross-chain token transfers. This method allows for multiple benefits as described below:</p>\n<p><strong>Composability &#x26; Commercial Opportunity</strong></p>\n<p>Token transfers using the CCIP token pools provide Synthetix the opportunity in the future, if desired, to open up Chainlink's private snxUSD Token Pool which would allow third parties to transfer snxUSD (even in combination with other tokens and/or data). In this scenario, there is also potential to set up a rev-share model between CCIP and Synthetix (as snxUSD token issuer) for third-party CCIP snxUSD token transfers, creating a shared incentive for increased snxUSD token transfer volume over CCIP.</p>\n<p><strong>Enhanced security via the Active Risk Management (ARM) Network</strong></p>\n<p>With token transfers, the ARM Network has access to additional transaction information (i.e. token, amount) that enable it to perform additional risk management policies which cannot be implemented for arbitrary messaging. The ARM rule set will evolve over time into more advanced logic to identify and mitigate additional risks.</p>\n<p><strong>Enhanced security via Rate Limits</strong></p>\n<p>In contrast to arbitrary messaging, CCIP token transfers provide configurable rate limits per token pool per lane, which are set up in alignment with the token issuer. This feature is part of the heavily audited CCIP code base and only available for token transfers. CCIP token transfers also benefit from increased security via the global rate limits (across token pools), so not every token’s rate limit could be exploited at maximum in a worst case scenario.</p>\n<h4 id=\"fee-collection\" style=\"position:relative;\"><a href=\"#fee-collection\" aria-label=\"fee collection 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>Fee Collection</h4>\n<p>This proposal entails collecting fees in ETH, rather than snxUSD, for the following reasons:</p>\n<ul>\n<li>Users will always receive the same amount of snxUSD that they have transferred.</li>\n<li>This is the most efficient method to collect fees, as no additional token transfers are involved in the transaction.</li>\n<li>Users are already paying ETH for gas fees to execute the transaction.</li>\n<li>Reduces code complexity since the <code>CcipRouter</code> handles the fee calculation for the execution of the specified message.</li>\n<li>Users are automatically refunded the difference between the <code>msg.value</code> that the user passes to <code>transferCrossChain()</code> and what the <code>CcipRouter</code> returns as <code>getFee()</code>.</li>\n</ul>\n<p>Future SIPs could involve additional fee payment methods (such as snxUSD), alternative fee structures, and circuit-breaking functionality for added security.</p>\n<h3 id=\"implementation\" style=\"position:relative;\"><a href=\"#implementation\" aria-label=\"implementation 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>Implementation</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>Implementation entails adding two new functions to the snxUSD token module:</p>\n<p><strong><code>transferCrossChain(uint64 destChainId, address to, uint256 amount) external payable returns (uint256 gasTokenUsed)</code></strong></p>\n<ul>\n<li>Confirm that the sender has a sufficient balance of snxUSD to transfer.</li>\n</ul>\n<p>Approve the amount of snxUSD to be transferred to the CCIP Router.</p>\n<ul>\n<li>Encode the snxUSD token address and amount, and call <code>ccipSend</code>.</li>\n<li>Refunds any left over gas token (i.e. the difference between <code>msg.value</code> and <code>CcipRouter.getFee()</code>).</li>\n</ul>\n<p><strong><code>ccipReceive(Any2EVMMessage calldata message)</code></strong></p>\n<ul>\n<li>Verify that the <code>srcChainId</code> and <code>sender</code> data in the message correspond to a legitimate deployment of the snxUSD token.</li>\n<li>Transfer the amount of minted snxUSD tokens to the destination address, as specified in the message's <code>data</code>.</li>\n</ul>\n<p><em>Note that this function must conform to the existing CCIP interface.</em></p>\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<!--Test cases for an implementation are mandatory for SIPs but can be included with the implementation.-->\n<p>Relevant tests will be developed during implementation, including but not limited to:</p>\n<h4 id=\"unit-tests\" style=\"position:relative;\"><a href=\"#unit-tests\" aria-label=\"unit tests 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>Unit Tests</h4>\n<p>Two new unit tests are added to test the new contracts. These tests will mock the required external interfaces (i.e. <code>CcipRouter</code> and <code>CcipTokenPool</code>).</p>\n<p>For <code>USDTokenModule</code>:</p>\n<ul>\n<li>It reverts transactions coming from an unauthorized address (i.e. non-CCIP address).</li>\n<li>It reverts if the sender does not have enough snxUSD balance or allowance.</li>\n<li>It gets deployed and registered correctly.</li>\n<li>It applies the expected USD parameters.</li>\n</ul>\n<p>For <code>CcipReceiverModule</code>:</p>\n<ul>\n<li>It reverts if caller is not the <code>CcipRouter</code>.</li>\n<li>It reverts if chain is not supported.</li>\n<li>It reverts if message sender on other chain is not self.</li>\n<li>It forwards message to specified caller.</li>\n</ul>\n<h4 id=\"integration-tests\" style=\"position:relative;\"><a href=\"#integration-tests\" aria-label=\"integration tests 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>Integration Tests</h4>\n<p>One integration test to cover the initiation of a cross-chain transfer.</p>\n<ul>\n<li>Verify the <code>CcipRouter</code> has enough allowance to transfer tokens.</li>\n<li>Verify the <code>CcipRouter</code> burns the correct amount of snxUSD on the source chain.</li>\n<li>Verify it refunds the correct amount of left over gas (i.e. difference between <code>msg.value</code> and <code>getFee()</code>) to the caller.</li>\n<li>Verify it correctly invokes <code>CcipRouter.ccipSend()</code> with the expected encoded data.</li>\n<li>Verify it emits a <code>TransferCrossChainInitiated</code> event with the expected values.</li>\n</ul>\n<h4 id=\"manual-tests\" style=\"position:relative;\"><a href=\"#manual-tests\" aria-label=\"manual tests 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>Manual Tests</h4>\n<ul>\n<li>Deploy and test on two or more networks using fresh instances of V3.</li>\n<li>Confirm source/destination transactions are correct using the CCIP explorer.</li>\n<li>Confirm the <code>CcipRouter</code> (on destination) emits a <code>MessageExecuted</code> event.</li>\n</ul>\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<!--Please list all values configurable via SCCP under this implementation.-->\n<ul>\n<li>Every deployment of Synthetix must be configured with the addresses of the <code>CcipRouter</code>s and <code>CcipTokenPool</code>s for each chain, such that it can verify the sender of messages that request minting snxUSD.</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":"1109852f-fb4c-5b2d-86e7-787dd2e6e37b","frontmatter__sip":311,"__params":{"frontmatter__sip":"311"}}},"staticQueryHashes":[]}