Uniswap v3 was deployed on Ethereum mainnet in May 2021 and has since been deployed on multiple additional chains, including Arbitrum, Optimism, Polygon, and Celo. Additional chain deployments have been approved to go live soon, or are currently through the governance process.
The Uniswap Foundation is excited to support the deployment of Uniswap v3 onto other L2s and blockchains by providing resources below to facilitate the governance and deployment process.
First, write the proposal. There are a number of relevant considerations to take into account for cross-chain proposals. To ensure these considerations are covered, please follow the template provided here, written by Other Internet with support from other community members. A great example to review is the proposal to deploy v3 on Celo (here).
Key components of the proposal to focus on include:
- Bridge security: The bridge which will pass governance messages to the chain’s deployment, in addition to its security assumptions and implementation details, are important to identify in your proposal.
- Additional Use Grant language: The language for the Additional Use Grant to the Uniswap BSL (don’t just copy and paste language from previous proposals - ensure to update it for your team and chain).
We also recommend deploying Uniswap v3 on a testnet prior to or while going through the governance process. You can review steps to deploy v3 in the section below. Once v3 is deployed, include links to the smart contracts in your proposal for community review.
The governance process can be reviewed in detail here.
At a high level, the process is as follows:
Request for Comment (RFC). Minimum 7 days. Post your proposal on the governance forum to allow the community to review and ask questions. Keep the proposal in the forum, responding to questions and iterating upon the proposal based on feedback for at least 7 days prior to moving to the next phase.
Temperature Check. 5 days. Create an off-chain Snapshot Poll to ensure community sentiment is in favor of your proposal. A majority of votes in favor, with a quorum of 10M UNI votes, is required to move forward to the last phase.
Governance Vote. 11 days (7 day voting period). Write the calldata that will create the Additional Use Grant and associate it with the ENS subdomain v3-core-license-grants.uniswap.eth. You can review how to put together the calldata for this kind of proposal here or here. You can see Celo’s successfully executed transaction as an example here and here (check the “Executable code” section at the bottom).
You are required to have 2.5M votes delegated to you in order to post the proposal – if you need assistance, reach out to a Uniswap delegate (here) or the Uniswap Foundation directly to assist. A majority of votes in favor, with a quorum of 40M UNI votes, is required for the vote to pass.
Once the final phase has been completed and the proposal has passed, your team can deploy Uniswap v3 on your chain!
A Github has been put together summarizing the core steps for deploying Uniswap v3 on another chain. The Github is here. It includes links to the v3 deployment script, as well as steps for creating a subgraph, token list, and
Beware of missteps made in previous deployments, and double check questions with the Uniswap Foundation if necessary.
One example of an error which was previously made is during the Arbitrum deployment. The Uniswap Factory was deployed to an unaliased address rather than an aliased address, requiring subsequent correction via another round of governance. This is an issue specific to Arbitrum - in other words, you likely do not need to deploy to an aliased address unless your chain leverages address aliasing like the Arbitrum chain - however, this is a good example of the kinds of errors which can be made during the deployment process without clear communication. Issue is further explained here.
Over time, we are happy to update this post with additional helpful details. If you think more should be added to this guide, post it in the comments!