# Home

Welcome to the Ubeswap documentation site!

Ubeswap is a decentralized exchange and automated market maker protocol for Celo assets.

Ubeswap is based on elements from Uniswap, Sushiswap, Synthetix, and Compound. This is to ensure that the Ubeswap ecosystem can support as many existing tools and projects from the Ethereum ecosystem as possible.

## Mission

Ubeswap's goal is to increase liquidity on Celo. We envision a world where anyone can trade any asset from their phone or browser, without having to rely on decades-old clearinghouse technology or other centralized systems. This is only possible if people can invest in good assets. Ubeswap seeks to bring in liquidity from all of DeFi by harnessing the fast transaction times, high block gas limit, and stablecoin system of Celo.

Join us today in creating a more prosperous, more inclusive financial system!

## Roadmap

Our public roadmap was shared [here](https://medium.com/ubeswap/introducing-the-new-ubeswap-roadmap-and-core-contributors-ace63ae0a5a5). See the overview below:

<figure><img src="/files/t8B0NqOdTvE6myN2XsxR" alt=""><figcaption></figcaption></figure>

A new roadmap has been [announced](https://medium.com/ubeswap/ubeswaps-strategic-roadmap-and-innovations-in-2024-0d5802bf993c) in 2024 and shared with the community.&#x20;

<figure><img src="/files/Pf3HFxW0Ifmvhwp48BV3" alt=""><figcaption></figcaption></figure>

## Links

* [Github](https://github.com/Ubeswap)
* [Twitter](https://twitter.com/ubeswap)
* [Discord](https://discord.gg/zZkUXCMPGP)
* [Telegram](https://t.me/ubeswapofficial)
* [Blog](https://medium.com/ubeswap): Full roadmap, tokenomics, milestones, etc.


# FAQ

## What is Ubeswap?

Ubeswap is a mobile compatible fork of Uniswap running on the Celo blockchain.

## How do I use Ubeswap?

To use Ubeswap, first download and set up the [Valora wallet](https://valoraapp.com/) or one of the [other supported wallets](https://docs.ubeswap.org/wallet-support/wallets). You can then purchase Celo Dollars (cUSD) on the Valora app or CELO on an exchange like [Coinbase](https://www.coinbase.com/).

Once you have some CELO or cUSD to trade, log on to [app.ubeswap.org](https://app.ubeswap.org/) with your wallet and a compatible browser.

## Is Ubeswap open source?

Yes. The code is available on GitHub [here](https://github.com/ubeswap).

## How do I get listed on Ubeswap?

We're excited that you're choosing to launch a token on Celo! You should first send a pull request to the [Ubeswap default token list repo](https://github.com/Ubeswap/default-token-list) on GitHub.

Once you've published your pull request, please reach out to our team on [Discord](https://discord.gg/zZkUXCMPGP). Alternatively, you can email us at <info@ubeswap.org>.

## How do I get the UBE token?

You can a) swap for the token or while yield farming is active b) provide liquidity in yield farms.

##


# Intro

Ubeswap is a *decentralized exchange*, meaning that you can directly interact with the exchange using a wallet whose private keys you control.

First, connect a wallet. If you need to set one up, our [wallet guides](https://docs.ubeswap.org/wallet-support/wallets) can serve as a reference. Next, fund your wallet with a small amount of CELO in order to pay for transactions.

In this tutorial, we'll show you how to use Ubeswap to exchange tokens, provide liquidity, and deposit LP tokens in staking pools to earn yield.

{% hint style="info" %}
If you run into any issues, reach out on our [Discord](https://discord.gg/zZkUXCMPGP).
{% endhint %}


# Swapping Tokens

Ubeswap allows you to swap between any two tokens, granted an Ubeswap pair between those two tokens exist.

Let's say you have cUSD and want to swap it for CELO.

* On the interface, select the tokens you want to exchange from (cUSD) and to (CELO)
* Enter a quantity of cUSD to swap from. This quantity should be more than 0 but less than your maximum balance

<figure><img src="/files/UrhAjDscrTGRXyQKebwC" alt=""><figcaption><p>Desktop</p></figcaption></figure>

<figure><img src="/files/tfzRwuBAEPjLs1oXLVEV" alt=""><figcaption><p>Mobile</p></figcaption></figure>

* Click `Approve cUSD` and accept the transaction on your wallet
  * Tip: Approving means you grant the Ubeswap smart contract permission to spend your cUSD tokens. Ubeswap will **never** spend your cUSD without your explicit permission to swap
* Once the approval has succeeded, you can click `Swap` to perform the swap between cUSD and CELO. Again, accept the transaction on your wallet.

<figure><img src="/files/Wxe8vZlxditj3gexvyPR" alt=""><figcaption><p>Desktop</p></figcaption></figure>

<figure><img src="/files/1NIBXP7ytegCnc7RTVX9" alt=""><figcaption><p>Mobile</p></figcaption></figure>

Congrats! You just swapped cUSD for CELO.

## How do I get a certain token?‌

In most cases, you can get a certain token by [swapping for it on Ubeswap](https://app.ubeswap.org/#/swap).

If it's an mToken, you can also get it from Moola. For example, you can get mcUSD or mcEUR either by a) [swapping on Ubeswap](https://app.ubeswap.org/#/swap) or b) depositing cUSD / cEUR into Moola on the [deposit page](https://app.moola.market/#/deposit).

<figure><img src="/files/odqKBn4HUlc3GHZMK33W" alt=""><figcaption></figcaption></figure>

## Where can I see my tokens?

You can see your tokens either directly in certain Wallets or on Celo Explorer at [https://explorer.celo.org/address/\[YOUR\_WALLET\_ADDRESS\]/tokens](https://explorer.celo.org/address/%5BYOUR_WALLET_ADDRESS%5D/tokens) (put in your wallet address where it says \[YOUR\_WALLET\_ADDRESS]).

## Where can I find the prices for the various tokens?

You can find token price and other analytics at <https://info.ubeswap.org/>.


# Providing Liquidity

Pools are a way to provide *liquidity*, or the ability to trade, between two different tokens on Ubeswap. They allow you to get exposure to the price of two tokens while earning trading fees on your tokens.

Staking tokens in a pool gives you a token called a *liquidity provider token*, or LP token for short. These LP tokens are extremely useful, as they can be used to provide loan collateral, to earn rewards in a yield farming platform, and many other use cases.

More info on pools is available on [Uniswap's website here](https://uniswap.org/docs/v2/core-concepts/pools/).

## Adding tokens to Liquidity Pools

First, connect a wallet that you want to supply liquidity from.

<figure><img src="/files/ZFuft0ZZY81ln03XiLwr" alt=""><figcaption></figcaption></figure>

Next, choose the provider of your wallet. In this tutorial, we'll use a Ledger.

<figure><img src="/files/Y8XlDBHlESnc6Uml6pqO" alt=""><figcaption></figcaption></figure>

Next, you'll want to navigate to the ["Pool" tab](https://app.ubeswap.org/#/pool) and click "Add Liquidity".

<figure><img src="/files/M62lIB4mLwIfD7MvwaQ9" alt=""><figcaption></figcaption></figure>

On this page, specify the pair you'd like to provide liquidity to. At the time of writing, the only pair that exists on the UI is Celo/cUSD.

<figure><img src="/files/oYvO1S08EjoEOuNfkuQE" alt=""><figcaption></figcaption></figure>

Once you've picked the tokens you'd like to supply to the pool, enter the amount of tokens you'd like to provide.

You need an equal amount of tokens on both sides of the liquidity pool, so ensure that you have enough of each token. You can use [Ubeswap to swap tokens](https://docs.ubeswap.org/tutorial/swapping-tokens) for the token you don't have enough of.

<figure><img src="/files/SbwjKuMrzBEEUE684RHp" alt=""><figcaption></figcaption></figure>

Once you have enough of both tokens, you'll come to a screen where you can supply liquidity.

If you haven't sent either of the tokens to Ubeswap before, you will see an "Approve" button for one or two of the tokens. You must click "Approve" for each token before the "Supply" button shows up.

*Note: Ubeswap currently doesn't have an option to allow you to specify an approval limit. If you want to ensure that your funds can never leave your wallet, it may be better to use a wallet specifically for Ubeswap.*

<figure><img src="/files/sLPHP2Xn0o4foEVrRJpm" alt=""><figcaption></figcaption></figure>

After clicking the "Supply" button, you should come to a screen asking for you to confirm the amount of tokens being supplied. If everything looks good, click "Confirm Supply".

<figure><img src="/files/mAYib85GvJoG9AswnBu0" alt=""><figcaption></figcaption></figure>

Clicking this button will give you a link to Blockscout, where you can view the status of your sent transaction.

## What's the ratio of tokens required for providing liquidity?

If you're providing liquidity, you need to provide a 50:50 ratio of tokens to the pool. For example, if you're providing tokens to the UBE-mcEUR pool, you'll have to provide an equal value (in USD) of UBE and mcEUR tokens.

## Where can I see my LP tokens?

You can see your LP tokens either directly in certain Wallets or on Celo Explorer at [https://explorer.celo.org/address/\[YOUR\_WALLET\_ADDRESS\]/tokens](https://explorer.celo.org/address/%5BYOUR_WALLET_ADDRESS%5D/tokens) (put in your wallet address where it says \[YOUR\_WALLET\_ADDRESS]). Or you can navigate to the [pool tab](https://app.ubeswap.org/#/pool) and see LP tokens that aren't deposited in yield farms.


# Yield Farming

## How do I join a yield farm?

1. Choose a pool on the [farm tab](https://app.ubeswap.org/#/farm) and click deposit. \[See Figure 1] You should already have liquidity in the pool. If not, you will be prompted to add liquidity to the pool and can reference [this guide](https://docs.ubeswap.org/tutorial/providing-liquidity).
2. If you have the right LP tokens for that yield farming pool, you should see them present and be able to deposit the tokens in the pool. \[See Figure 2]
3. Choose how many tokens to deposit or hit "MAX" in order to deposit all tokens available. If this is your first time depositing LP tokens in this yield farm, you'll first need to approve the transfer and then click "Deposit" to make it final. \[See Figure 3]

<figure><img src="/files/hFl5Q6QPprRnyvVBUg2p" alt=""><figcaption><p>Figure 1. Selecting yield farming pool to deposit in</p></figcaption></figure>

<figure><img src="/files/1iK8XdhY6T8oRJzERLV7" alt=""><figcaption><p>Figure 2. Deposit UBE-LP tokens</p></figcaption></figure>

<figure><img src="/files/yVZUZ4GyvPMbI4iXFvTh" alt=""><figcaption><p>Figure 3. Select deposit amount and confirm your deposit</p></figcaption></figure>

## Is there a minimum amount of time required to get rewards?

No. Once your LP tokens are deposited in the pool, they'll start earning rewards right away. You can claim the rewards at anytime.

## How long will yield farming be available?

You can find the full schedule for Ubeswap's tokenomics, including the mining rewards, in this [article](https://medium.com/ubeswap/introducing-ube-the-start-of-celo-yield-farming-82d88488d2aa).

The exact numbers distribution schedule can be found in this [spreadsheet](https://docs.google.com/spreadsheets/d/1-pOYidiOgABNh8mAr33gyToeoTB-W9ZuKqv88BnJ7OY/edit#gid=1886014844). How UBE is distributed between pools is up to our community! So join the conversation on Discord and vote on [Romulus](https://romulus.page/romulus/0xa7581d8E26007f4D2374507736327f5b46Dd6bA8).

## How do I see the value of my deposited LP tokens?‌

You can go to the [farm](https://app.ubeswap.org/#/farm) page to see your active pools. At the bottom of each pool will be the rate of your reward earnings as well as the value of your stake.

<figure><img src="/files/jNgncLRD77ZGukKTO6Is" alt=""><figcaption></figcaption></figure>

## How are fees for liquidity providers paid out in a yield farm?

Liquidity providers earn a 0.25% fee on all trades proportional to their share of the pool. They are still accrued while yield farming. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity.


# Tokenomics

To make Ubeswap more sustainable a new tokeneconomy has been created and voted by the holders. With the passing of the proposal, the swich to the new token economy has been made on March 16th, 2024 (TGE).&#x20;

More details about the vesting wallets can be found under contract addresses.&#x20;

<table data-header-hidden><thead><tr><th width="225"></th><th width="104"></th><th width="136"></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>Allocation</td><td>%</td><td>$UBE</td><td>% on TGE</td><td>Cliff</td><td>Vesting</td></tr><tr><td>Holders</td><td>%30,00</td><td>75.000.000</td><td>%100,00</td><td>0</td><td><br></td></tr><tr><td>Mining Reserve</td><td>%12,00</td><td>30.000.000</td><td>%10,00</td><td>0</td><td>36</td></tr><tr><td>Partnership/Ecosystem</td><td>%17,00</td><td>42.500.000</td><td>%30,00</td><td>0</td><td>36</td></tr><tr><td>Marketing / Listing</td><td>%23,00</td><td>57.500.000</td><td>%20,00</td><td>2</td><td>2</td></tr><tr><td>Team</td><td>%13,00</td><td>32.500.000</td><td>%5,00</td><td>0</td><td>36</td></tr><tr><td>Advisors</td><td>%2,00</td><td>5.000.000</td><td>%0,00</td><td>3</td><td>33</td></tr><tr><td>DAO Treasury</td><td>%3,00</td><td>7.500.000</td><td>%100,00</td><td>0</td><td>0</td></tr><tr><td>Total</td><td>%100,00</td><td>250.000.000</td><td><br></td><td><br></td><td><br></td></tr></tbody></table>


# Wallets

## What is a wallet?

Wallets are applications that let you interact with your Celo account. Think of it like an internet banking app – without the bank. Your wallet lets you read your balance, send transactions, and connect to applications.

Your wallet is only a tool for managing your Celo account. That means you can swap wallet providers at any time. Many wallets also let you manage several Celo accounts from one application.

That's because wallets don't have custody of your funds, you do. They're just a tool for managing what's really yours.

*Read the full guide on wallets at* [*https://ethereum.org/en/wallets/*](https://ethereum.org/en/wallets/)*. (Celo is based on Ethereum, so the two blockchains share many concepts.)*

## Support

Ubeswap currently supports the following wallets:

* Mobile wallets:
  * Valora
* Desktop wallets:
  * Ledger **(recommended for storing amounts greater than $1,000 USD)**
  * MetaMask
  * Celo Extension Wallet

If you're a building a wallet and want us to support it at Ubeswap, please reach out to us at <partnerships@ubeswap.org> or on our [Discord](https://discord.gg/zZkUXCMPGP)!

## MetaMask support

With the Celo network's [Donut Hardfork](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md), which was activated on Mainnet on May 19th, 2021, the protocol now supports [Ethereum-compatible transactions](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md). This means that users are now able to use MetaMask to interact with the Celo blockchain and dApp developers can more easily port over Ethereum dApps onto Celo.


# Valora (mobile)

Using Ubeswap via Valora

## Prerequisites

* Smartphone (iOS or Android)
* A small amount of **CELO is required for transaction fees**. Users should be able to swap cUSD to CELO in the Valora app or purchase CELO directly.
* Most users have the best experience by using their **phone's native browser** (i.e. Safari on iOS), **not being in a private** browsing session, and after having **verified their phone number** on the Valora app.

## Installing Valora

To install Valora, install the mobile wallet from <https://valoraapp.com/>.

## Connecting Valora to Ubeswap

* Go to and click `Connect to a wallet`
* Select `Valora` as the wallet

<figure><img src="/files/Xrfk3HA1sTi3Yo6G09XU" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/pogLY4AU0lsHR0pPSDci" alt=""><figcaption></figcaption></figure>

* Accept the popup to open the link in the Valora app

<figure><img src="/files/gT9S5aq6TskMchFfWHjI" alt=""><figcaption></figcaption></figure>

* Click `Allow` to connect your Valora wallet to Ubeswap

  * NOTE: This action only allows Ubeswap to see your public wallet information i.e. your wallet address

<figure><img src="/files/txSXPN57PThJEsYHQ14i" alt=""><figcaption><p>Wallet connected!</p></figcaption></figure>

## Using the Alfajores Testnet

If you are following this tutorial for the Alfajores testnet, you can obtain CELO via <https://celo.org/developers/faucet> by providing your wallet's address. Your wallet's address can be found on Valora here:

<figure><img src="/files/BIIjZXB0A5WkKScjnkvM" alt=""><figcaption></figcaption></figure>

Tip: Your wallet address will start with `0x`.


# Ledger (desktop)

Using Ubeswap via the Ledger Nano S or X

## Prerequisites

* A small amount of **CELO is required for transaction fees**.
* Ledger Nano S or X
* [Celo app installed on Ledger](https://docs.celo.org/celo-owner-guide/ledger)

## Connecting your Ledger to Ubeswap

* Ensure your Ledger device is connected to your computer
* Open the Celo app on your Ledger device
* On <https://app.ubeswap.org/>, click `Connect to a wallet`
* Select Wallet Connect as the wallet

<figure><img src="/files/i7MZ7X8UoHw7zhrx1vsx" alt=""><figcaption></figcaption></figure>

* Press `Connect` after which Ubeswap can interact with your Ledger device

## Using the Alfajores Testnet

If you are following this tutorial for the Alfajores testnet, you can obtain CELO via <https://celo.org/developers/faucet> by providing your wallet's address. See [*Using the Alfajores Testnet*](https://docs.ubeswap.org/code-and-contracts/using-the-alfajores-testnet#testnet-funds) for more details.


# MetaMask (desktop)

## Prerequisites

* A small amount of **CELO is required for transaction fees**.
* Install [MetaMask](https://metamask.io/).
* Follow their directions to create a new wallet. Be sure to store your seed phrase in a safe place (offline preferably). If you ever lose control or access to that seed phrase and/or private key, your funds will be lost.

## What is MetaMask?

[MetaMask](https://metamask.io/) is a crypto wallet that can be used in-browser and on mobile to interact with the Ethereum blockchain.

With the Celo network's [Donut Hardfork](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0027.md), which was activated on Mainnet on May 19th, 2021, the protocol now supports [Ethereum-compatible transactions](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md). This means that users are now able to use MetaMask to interact with the Celo blockchain and dApp developers can more easily port over Ethereum dApps onto Celo. Here is a guide that details step-by-step how to use MetaMask with Celo: <https://docs.celo.org/getting-started/wallets/using-metamask-with-celo>

## Connecting MetaMask to Ubeswap

Having just downloaded MetaMask and set up a new wallet, you're likely connected to the Ethereum network. Below we're going to **change from the Ethereum network to the Celo network in order to connect to Ubeswap**. Manual instructions can be found [here](https://docs.celo.org/getting-started/wallets/using-metamask-with-celo) if you have any issues or concerns.

{% hint style="info" %}
Your public address and private key will be the same on both networks when switching between the two. The seed phrase you generated on Ethereum is not in the same format as a seed phrase on Celo. Read more [here](https://docs.celo.org/getting-started/wallets/using-metamask-with-celo#importing-via-private-key) if wanting to import / export wallets between the two networks.
{% endhint %}

1. Navigate to [app.ubeswap.org](https://app.ubeswap.org/).
2. **Click on "Connect to a wallet"** in the top right corner \[See Figure 1]
3. **Select "MetaMask"** from the menu that appears \[See Figure 2]
4. After approving the connection on MetaMask, a prompt should appear. **Click on "Switch to the Celo Network"** to continue. \[See Figure 3 step 1]
5. Approve switching networks within MetaMask and then **exit out of the prompt**. \[See Figure 3 step 2]
6. Repeat steps 2. and 3. found above to connect your wallet to the website. Congrats! You're now connected to Ubeswap on the Celo network!

<figure><img src="/files/LV9KqVGIHuGukVpeHoq8" alt=""><figcaption><p>Figure 1. Connect to a wallet</p></figcaption></figure>

<figure><img src="/files/3RTHMEEACNNifNIfjZ1t" alt=""><figcaption><p>Figure 2. Select MetaMask</p></figcaption></figure>

<figure><img src="/files/SN034dQLd02CZ4Uz5WAv" alt=""><figcaption><p>Figure 3. Switch to the Celo Network</p></figcaption></figure>


# Celo Extension Wallet (desktop)

## What is Celo Extension Wallet?

The [Celo Extension Wallet](https://github.com/dsrvlabs/celo-extension-wallet) is a fork of MetaMask developed by [DSRV](https://www.dsrvlabs.com/en/), a South Korean blockchain firm.

The wallet can be downloaded [here](https://chrome.google.com/webstore/detail/celoextensionwallet/kkilomkmpmkbdnfelcpgckmpcaemjcdh). Connecting should be as simple as selecting "Connect to a wallet" and selecting "Celo Extension Wallet".

{% hint style="info" %}
Celo Extension Wallet is a browser extension. **Not to be confused with Celo Wallet** which is a separate app/website. Please ensure when selecting which wallet you want to connect with that you select the correct one.
{% endhint %}

## Exporting keys from Celo Extension Wallet to MetaMask

#### Why would you switch?

Some users have had issues confirming transactions with CEW while using Ubeswap. These issues are likely because it's [not an actively maintained fork](https://github.com/dsrvlabs/celo-extension-wallet) of MetaMask and needed updates haven't been added. The choice is up to you, but MetaMask is actively being maintained and has been more reliable for users [since it became compatible with the Celo network](https://docs.celo.org/getting-started/wallets/using-metamask-with-celo).

#### Pre-requisites

1. Setup MetaMask in a browser and [connect it to the Celo network](https://docs.ubeswap.org/wallet-support/metamask#connecting-metamask-to-ubeswap)
2. Securely store your seed phrase generated for your Celo Extension Wallet in case you need to recover your keys (hopefully you already have). You can't import an existing Celo account into the MetaMask wallet using its seed phrase directly, as you'd get the Ethereum version of it. Instead, you have to import it using the associated private key.

#### Private Key Export + Import

1. Click on Celo Extension Wallet extension within your browser, click on the triple dots next to the name of the account you wish to export, and then select "Account details" from the drop down \[See Figure 1]
2. From the pop-up that appears, select "Export Private Key" \[See Figure 2]
3. Enter in your password for Celo Extension Wallet and click "Confirm" to reveal your private key
4. Copy the private key and store securely \[See Figure 3]
5. Click on MetaMask extension within your browser, click on the account selection within MetaMask, and then select "Import Account" from the drop down \[See Figure 4]
6. Select "Private Key" for import type, paste in the private key you copied from Celo Extension Wallet, and click "Import" \[See Figure 5]
7. Success! You should now see your account from Celo Extension Wallet within MetaMask. Verify that you've imported the correct account onto the Celo network and that your private key plus pass phrase are stored securely before uninstalling Celo Extension Wallet.

<figure><img src="/files/4OrpckfvM2BLR0pF6r5Z" alt=""><figcaption><p>Figure 1. Navigate to Account details</p></figcaption></figure>

<figure><img src="/files/PXZfapf8nnsfpuk6sHBx" alt=""><figcaption><p>Figure 2. Select "Export Private Key"</p></figcaption></figure>

<figure><img src="/files/fWhZIOAtkCVJhnFp84Dk" alt=""><figcaption><p>Figure 3. Copy private key from Celo Extension Wallet (store securely and don't share!)</p></figcaption></figure>

<figure><img src="/files/CGj0XNrvk3GpDwIKyA8z" alt=""><figcaption><p>Figure 4. Navigate to MetaMask import</p></figcaption></figure>

<figure><img src="/files/JPiozSmWSFOplwB3S8iG" alt=""><figcaption><p>Figure 5. Paste private key and import the wallet</p></figcaption></figure>


# Common Issues and Fixes

## Transaction / Connection Issue

1. Check to make sure you have **CELO** to pay for transaction fees. Only a small amount is needed per transaction.
2. **Disconnect** your wallet (if connected)
3. Do a **hard refresh** of your browser
4. Attempt to **reconnect** your wallet


# Overview

There are 4 smart contract repos that make up Ubeswap:

* [Core/Exchange](https://github.com/ubeswap/ubeswap) -- Handles trading, liquidity provision, etc.
* [Governance](https://github.com/Ubeswap/ubeswap-governance) -- Token and voting
* [Farming](https://github.com/Ubeswap/ubeswap-farming) -- Liquidity mining pools


# Exchange V2

This article goes over the deployed V2 contracts at <https://github.com/Ubeswap/ubeswap/tree/master/contracts/uniswapv2>, which consists of:

* UniswapV2Factory: internal contract that creates trading pairs
* UniswapV2Router02: router that connects to the frontend to safely make trades

## Diffs

Contracts has been forked from SushiSwap codebase.  Below are diffs between Sushiswap and Ubeswap:

Diff: <https://gist.github.com/macalinao/2ca9a77e221643061465df04a1872507>

### Deployment process

1. The [solidity-create2-deployer](https://github.com/Ubeswap/solidity-create2-deployer) was deployed at `0x4a27c059FD7E383854Ea7DE6Be9c390a795f6eE3` using [this script](https://github.com/Ubeswap/celo-utility-contracts/blob/d8c9af828939ff2f2361a2b36fda326b1d6acb1d/tasks/deploy-create2.ts).
2. Ubeswap was deployed at commit [`a88cca4007e57586a19ccfee3a0968dfbab5c736`](https://github.com/Ubeswap/ubeswap/tree/a88cca4007e57586a19ccfee3a0968dfbab5c736) using the following commands:
   1. `yarn build` to build the contracts
   2. `yarn hardhat deploy --network mainnet --step exchange` to deploy the initial exchange
      1. The deployer address was used as the `feeToSetter` of the factory. This will later be migrated to a smart contract. This is the only centralized part of the protocol.
      2. see <https://github.com/Ubeswap/ubeswap/blob/a88cca4007e57586a19ccfee3a0968dfbab5c736/tasks/deploy/001_exchange.ts> for full details
   3. `yarn hardhat deploy --network mainnet --step liquidity` to seed the initial liquidity pool of CELO/cUSD
      1. see <https://github.com/Ubeswap/ubeswap/blob/a88cca4007e57586a19ccfee3a0968dfbab5c736/tasks/deploy/002_liquidity.ts> for full details

### Other details

* There are **no proxy contracts** used in the entire system. This means that other than being able to set who the fees go to, **we have no control over user funds**.
* The code is a fork of Sushiswap, which is a fork of Uniswap. No code was added other than a helper view function to be able to get the pair address of a given set of tokens. The full diff and more information on what changed is available [here](https://github.com/Ubeswap/ubeswap/tree/master/contracts/uniswapv2).
* The deployer address is a normal wallet with a seed phrase. It is not stored on a hardware device. If the wallet's private key were to get compromised, the following could occur:
  * The `feeToSetter` could be set to a malicious party's address. However, they would only be able to obtain 0.05% of each swap. To get rid of the malicious party, the protocol would have to be fully migrated to a different deployment of the UniswapV2Factory. This would be very inconvenient, but no user funds would be at risk.
* **The contract implementation cannot be replaced.** There is no way to replace the UniswapV2Factory smart contract with a malicious implementation, as there is no self-destruct method and there is no way to overwrite the contract with a proxy.
* **When new contracts are deployed, they will not put funds of the Factory and Router at additional risk.**
  * Potential exploits in our yield farming and governance contracts will have exploits isolated to those contracts.


# Exchange V3

This article goes over the deployed V3 contracts at <https://github.com/Ubeswap/ubeswap/tree/master/contracts/uniswapv3>

## Difference From Uniswap V3

Core contracts are from [Uniswap/v3-core](https://github.com/Uniswap/v3-core) with no modification.

Periphery contracts are from [Uniswap/v3-periphery](https://github.com/Uniswap/v3-core) with the following modifications.

1. ERC721Permit Token names changed to Ubeswap in `NonfungiblePositionManager.sol:75`
2. Name has been changed to Ubeswap in `libraries/NFTDescriptor.sol:115`
3. Name has been changed to Ubeswap in `libraries/NFTDescriptor.sol:163`

### Security

Ubeswap V3 contract are direct copy of Uniswap V3 with very minimal changes. Uniswap contracts are battle tested and well audited contracts. So Ubeswap contracts are safe too.


# Governance

The Governance module manages the contracts that run Ubeswap.

## Contracts

The Governance module contains several important contracts:

* UbeToken: governance token; based on Uni
* RomulusDelgate:  This is a DAO governance contract similar to Compound Governance Alpha
* Timelock: based on the Uniswap timelock contract; ensures a minimum of 2 days must pass between the time an admin transaction is created and posted and the time that the transaction is executed.

A diff between Uni governance contracts and Ubeswap is available [here](https://gist.github.com/macalinao/03d181f7a2884a740db31e82450eb7a7/revisions).

## UbeToken

The UbeToken is the governance token of Ubeswap, used to vote on the direction of the protocol.&#x20;

The token is largely based on the Uni token; however, we have decomposed the contract into a series of contracts inherited from each other:

* [UbeToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/UbeToken.sol) -- the Ubeswap governance token.
* [VotingPower](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/VotingPower.sol) -- keeps track of how much voting power an address has
* [VotingToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/VotingToken.sol) -- a VotingPower that exposes a name, symbol, decimals, and balanceOf. Cannot be transferred.
* [TransferrableVotingToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/TransferrableVotingToken.sol) -- a VotingToken that is fully ERC20-compliant and can be transferred.

We were careful to preserve whitespace on `VotingPower` and `TransferrableVotingToken`, as the code was copy/pasted from [Uni](https://github.com/Uniswap/governance/blob/master/contracts/Uni.sol).

## Deployment (New)

There are 6 steps to the deployment (these are the deployment steps of new tokenomics)

* [Deploying UBE Token](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/001_deploy_ube_token.ts)
* [Deploying UbeConvert ](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/002_deploy_ube_convert.ts)This contract is used for converting old UBE tokens to new UBE tokens
* [Deploying Governance](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/003_deploy_governance.ts)
* [Deplying New Stake](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/004_deploy_ube_stake.ts)
* [Deploying Vesting Contracts](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/005_deploy_new_ube_vestings.ts)  These contracts are vesting contracts for new tokenomics


# Farming

The Farming module manages the contracts that allocate Reward to various liquidity mining pools.

With the launch of Ubeswap V3 a new farm protocol specific to Ubeswap has been deployed.&#x20;

This protocol creates incentives for Ubeswap V3 Liquidity Positions and reward distribution is based on the TVL that the position has.

Source Code for the contracts are in [Ubeswap/ubeswap-v3-farm-protocol](https://github.com/Ubeswap/ubeswap-v3-farm-protocol)


# Moola Router

The Moola Router automatically wraps and/or unwraps cUSD/cEUR/CELO into mcUSD/mcEUR/mCELO. It allows users to have an identical user experience to the traditional router while allowing for significantly less slippage when trading Moola assets.

We built the Moola Router in order to maximize the liquidity within Celo's early DeFi ecosystem. We want to ensure that there are always enough tokens for users to borrow, as being able to borrow allows long-term Celo holders to participate in DeFi farming without selling.

There is one deployed contract: MoolaRouter, which implements the `swapExactTokensForTokens` and `swapTokensForExactTokens` functions. A MoolaRouter user will specify the trading path, and if the first two or last two tokens of the path are "Moola duals", i.e. the tokens can be converted to/from each other via deposit or withdrawal, then the trade will route via the Moola LendingPool contract.

## Architecture

The swap functions perform the following steps:

1. Record all balances on the router.
2. Construct a "Swap Plan" to figure out which parts of the path will use Moola to route
3. If the Swap Plan determined that part of the route should go to the UbeswapRouter, approve the UbeswapRouter for the amount desired
4. Transfer the input tokens from the sender
5. If there is a Moola route for the first two tokens, withdraw or deposit.
6. If the UbeswapRouter has a path, perform the swap.
7. If there is a Moola route for the last two tokens, withdraw or deposit.
8. Check to see that the output balances are equal to the input balances, other than the final output token. Unless the output token is equivalent to a token in the path, or the token is the input token.
9. Transfer the output tokens to the `_to` address.

## Contract Owner

There is a contract owner on the Moola Router that can withdraw any stuck tokens. This is currently set to the "Operator" address but will be transitioned to the Executive Timelock if there are no issues.


# Contract Addresses

## Core/Exchange V3

| Contract Name           | Address                                                                                                              |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Ubeswap Core Factory V3 | [0x67FEa58D5a5a4162cED847E13c2c81c73bf8aeC4](https://celoscan.io/address/0x67FEa58D5a5a4162cED847E13c2c81c73bf8aeC4) |
| NFT Position Manager V3 | [0x897387c7B996485c3AAa85c94272Cd6C506f8c8F](https://celoscan.io/address/0x897387c7B996485c3AAa85c94272Cd6C506f8c8F) |
| V3 Migrator             | [0x7167338eA247CC20B7a559Bf171a3dcDb5DE7A8a](https://celoscan.io/address/0x7167338eA247CC20B7a559Bf171a3dcDb5DE7A8a) |
| Quoter                  | [0xA8864a18Fab1ED233Ce1921F329A6A92DBccA56f](https://celoscan.io/address/0xA8864a18Fab1ED233Ce1921F329A6A92DBccA56f) |
| Universal Router        | [0x3C255DED9B25f0BFB4EF1D14234BD2514d7A7A0d](https://celoscan.io/address/0x3C255DED9B25f0BFB4EF1D14234BD2514d7A7A0d) |

## Core/Exchange V2

| Contract Name     | Address                                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------------------------- |
| UbeswapFactory V2 | [0x62d5b84bE28a183aBB507E125B384122D2C25fAE](https://celoscan.io/address/0x62d5b84bE28a183aBB507E125B384122D2C25fAE) |
| UbeswapRouter V2  | [0xE3D8bd6Aed4F159bc8000a9cD47CffDb95F96121](https://celoscan.io/address/0xE3D8bd6Aed4F159bc8000a9cD47CffDb95F96121) |

## Governance

| Contract Name       | Address                                                                                                              |
| ------------------- | -------------------------------------------------------------------------------------------------------------------- |
| UBE Token           | [0x71e26d0E519D14591b9dE9a0fE9513A398101490](https://celoscan.io/address/0x71e26d0E519D14591b9dE9a0fE9513A398101490) |
| Romulus Delegate    | [0xD355A00220FbA16b69Cd8C4fbE16E02CA855f928](https://celoscan.io/address/0xD355A00220FbA16b69Cd8C4fbE16E02CA855f928) |
| GovTimelock         | [0x936F5b0164B08BF0E123Cdf356118343342Fdaf6](https://celoscan.io/address/0x936F5b0164B08BF0E123Cdf356118343342Fdaf6) |
| UBE Votable Staking | [0x388D611A57Ac15dCC1B937f287E5E908Ba5ff5c9](https://celoscan.io/address/0x388D611A57Ac15dCC1B937f287E5E908Ba5ff5c9) |

## Farming

| Contract Name            | Address                                                                                                              |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| Ubeswap V3 Farm Protocol | [0xA6E9069CB055a425Eb41D185b740B22Ec8f51853](https://celoscan.io/address/0xA6E9069CB055a425Eb41D185b740B22Ec8f51853) |

## Vesting

| Contract Name              | Address                                                                                                              |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Mining Reserve Vesting     | [0xAe4634bE8c69Ff602e6Dd9a1e3C5cEcCa3502968](https://celoscan.io/address/0xAe4634bE8c69Ff602e6Dd9a1e3C5cEcCa3502968) |
| Ecosystem Vesting          | [0x3924c6B0003135683B59bAB63C2b4A5631A6AE73](https://celoscan.io/address/0x3924c6B0003135683B59bAB63C2b4A5631A6AE73) |
| Team Vesting               | [0x74D4983a29044B68AADD2bdb86bC82cF8c6C8b5C](https://celoscan.io/address/0x74D4983a29044B68AADD2bdb86bC82cF8c6C8b5C) |
| Marketing Vesting          | [0xD733Bc0aCd4583ffa0816d92eE7Ef417370d0c5e](https://celoscan.io/address/0xD733Bc0aCd4583ffa0816d92eE7Ef417370d0c5e) |
| Marketing/Listing Multisig | [0x3CDB7098842621C22721F8C576d49dC366555167](https://celoscan.io/address/0x3CDB7098842621C22721F8C576d49dC366555167) |
| Advisory Vesting           | [0xf7D06202b0779f9c314D67BAd8538B3c661F7d10](https://celoscan.io/address/0xf7D06202b0779f9c314D67BAd8538B3c661F7d10) |

## Utility Contracts

| Contract Name    | Address                                                                                                                                 |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| CREATE2 deployer | [0x4a27c059FD7E383854Ea7DE6Be9c390a795f6eE3](https://explorer.celo.org/address/0x4a27c059FD7E383854Ea7DE6Be9c390a795f6eE3/transactions) |
| Multicall 2      | [0x4d446f092461A0bfDeBC72AbC831541ca949d63F](https://celoscan.io/address/0x4d446f092461A0bfDeBC72AbC831541ca949d63F)                    |


# Security

Security is our highest priority. Our team has created a protocol that we believe is safe and dependable. The protocol largely reuses code from Synthetix, Uniswap, Sushiswap, and Compound whenever possible. All smart contract code is publicly verifiable via [Sourcify](https://sourcify.dev/).

Ubeswap V2 contracts are audited by Bramah.systems and V3 contracts are audited by SolidityScan.

Security Info for V3 contracts can be found [here](https://github.com/Ubeswap/ubeswap/tree/master/contracts/uniswapv3).

We encourage our users to be mindful of risk and only use funds they can afford to lose. Smart contracts are still new and experimental technology. We want to remind our users to be optimistic about innovation while remaining cautious about where they put their money.


# Using the Alfajores Testnet

## Overview

As part of rolling out Ubeswap, we've deployed it to Alfajores, the Celo testnet, for you to interact with.

*Please report all bugs* [*in the #feedback channel on our discord*](https://discord.gg/EcurYuvUmT)*.*

## Frontend

The frontend is deployed at <https://app-alfajores.ubeswap.org/>.

You can confirm that you are using the testnet contracts by checking your URL and by looking for the "Alfajores" banner next to the wallet connection in the navbar.

<figure><img src="/files/47Q1lmKSgsqUP26RswXP" alt=""><figcaption></figcaption></figure>

## Pools / Markets

In Alfajores, right now we only support trading between cUSD and CELO, so there is only one pool: cUSD/CELO.

## Mobile users

Celo is mobile-first, and Ubeswap will work with Valora and any other future Celo wallets. The Alfajores deployment of Ubeswap will only work with the development mode version of the Valora app. It will not work with the normal version of Valora that you may have already installed on your phone

See [Mobile wallet - Valora (testnet)](https://docs.ubeswap.org/wallet-support/valora#connecting-valora-to-ubeswap) for instructions on connecting Valora to Ubeswap

## Desktop users

Ubeswap also supports desktop users. For the Aflajores deployment, we only support Chrome / Brave as browsers and Ledger users.

See [Desktop wallet - Ledger](https://docs.ubeswap.org/wallet-support/ledger#connecting-your-ledger-to-ubeswap) for instructions on connecting Ledger to Ubeswap

## Testnet funds

Celo provides a faucet where you can obtain CELO and cUSD on the Alfajores testnet free of charge:

{% embed url="<https://celo.org/developers/faucet>" %}

To obtain CELO and cUSD, provide your wallet address (starts with `0x`), complete the CAPTCHA, and click `Get started`

<figure><img src="/files/49RVJYPHObJsoNg5vKs6" alt=""><figcaption><p>Desktop</p></figcaption></figure>

<figure><img src="/files/X8hDsA3guLSvA79h8SlY" alt=""><figcaption><p>Mobile</p></figcaption></figure>

## Using Ubeswap

See [Basic usage](https://docs.ubeswap.org/tutorial/providing-liquidity#swapping-tokens) for instructions on how to swap.


# Ubestarter

### 1.     Introduction

Ubestarter is the premier launchpad built on the Celo network, designed to empower innovative projects by providing a decentralized and secure platform for token sales.

As the first launchpad on Celo, Ubestarter leverages the network’s unique features to facilitate seamless interactions between project creators and investors, ensuring transparency, accessibility, and efficiency in the fundraising process.

By utilizing Celo’s robust blockchain infrastructure, Ubestarter offers a reliable environment for launching and managing token sales, fostering a vibrant ecosystem of emerging projects and engaged investors.

#### 1.1 Why Choose Ubestarter?

* **Decentralization:** Facilitates direct interaction between users and projects, eliminating additional costs and delays introduced by intermediaries.
* **Transparency:** All transactions occur on the blockchain, allowing participants and investors to track every stage of the process.
* **Accessibility:** The platform's global user base enables projects to reach a wider audience.
* **Security:** Automated management and distribution of funds through smart contracts ensure secure handling.

#### 1.2 Important Note

Ubestarter does not guarantee the reliability or success rate of projects launched on the platform. Users should conduct their own research when evaluating projects. Projects launched on the platform are independent, and users must verify which launches are genuine and which may have malicious intent. Additionally, it's important to remember that cryptocurrency markets are volatile and risky.


# Getting Started

### 2. Getting Started

#### 2.1 Connecting a Wallet

To start using Ubestarter, you need to connect a supported cryptocurrency wallet. Ensure your wallet is set up and secure before proceeding.

**Security Tips**

* **Privacy:** Never share your wallet's private keys or recovery phrases with anyone.
* **Beware of Phishing Attacks:** Ensure you are using the official Ubestarter app (<https://app.ubeswap.org/#/ubestarter>) when connecting your wallet.

#### 2.2.1 Accessing Ubestarter

Ubestarter can be accessed in two ways:

* **From the Ubeswap Menu:** Navigate through the Ubeswap’s menu and select "Ubestarter."
* **Direct URL:** Visit <https://app.ubeswap.org/#/ubestarter/> to access Ubestarter directly.

#### 2.2.2 Projects Tab

The Projects tab presents active and completed token sales in separate sections:

* **Active:** Lists currently open token sales. Each project includes detailed information, sales duration, target amount, and other key data.
* **Completed:** Contains results and statistics of previously completed or ended token sales.

#### 2.2.3 Project Detail Page

Each project has its own detail page, which includes:

* **Project Introduction:** Detailed information about the project's purpose, goals, and vision.
* **Tokenomic Information:** Details on token distribution, total supply, use cases, and other essential economic data.
* **Team Members:** Biographies and previous experiences of the project’s team members.
* **Roadmap:** Future plans and milestones of the project.
* **Community and Social Media:** Links to the project’s active social media channels and community groups.


# Key Features

### 3. Key Features

#### 3.1 Creating a Launch

Creating a launch is the first step to initiating a successful token sale for your project. Follow these steps to streamline the process:

**3.1.1 Launchpad Creation Steps**

1\.     **Click on the "List Your Project" Button:**

2\.     **Read and Sign Disclaimer:**

* Read the required disclaimer form and sign it with the connected wallet.

3\.     **Fill in the Required Information:**

o   **Token Information:**

* **Token Address:** Enter the smart contract address of your token on the Celo network.
* **Token Logo:** Upload a clear and recognizable logo with the dimensions of 200x200 pixels.
* **Project Description:** Provide a detailed explanation of your project’s purpose, goals, and the solutions it offers.

o   **Links:**

* **Whitepaper:** Upload or share a link to your project’s technical and detailed documentation.
* **Github:** Add a link to your code repository or project development page.
* **Telegram:** Share the link to your Telegram community group for community engagement.
* **Medium:** Include the link to your Medium account for project updates and blog posts.
* **Other Social Media Accounts:** Add links to other social media platforms such as Twitter, LinkedIn, Discord, etc.

o   **Team Members:**

* **Team List:** Add names, roles, and LinkedIn profiles of the team members involved in your project.

#### 3.2 Tokenomic Settings

Tokenomics define how your token distribution and economy will be managed. However, on the Ubestarter platform, tokenomics are solely for informational purposes and do not have a functional role. Proper tokenomic structuring is crucial for the long-term success of your project.

**3.2.1 Allocation**

Determining how tokens will be distributed is critical for your project's sustainability. Common categories include:

* **Community and Airdrop:** Tokens allocated to community members.
* **Team and Advisors:** Tokens reserved for the project team and advisors.
* **Development Fund:** Funds allocated for project development and advancement.
* **Liquidity Pool:** Funds reserved for providing liquidity.
* **Reserve:** Tokens set aside for future needs.

**Total Supply:** Specify your project's total token supply. This information is aggregated and displayed to provide a clear overview of the token distribution.

**Distribution:**

* **Sale Allocation (Hard Cap):** The amount of tokens available for sale is determined by the hard cap. For example, if you have a total supply of 1B tokens and allocate 300M tokens for sale, this amount will be set on the launchpad.
* **Unsold Tokens Management:** Unsold tokens will be automatically returned to the owner's address if the softcap reached.

**3.2.2 Vesting Settings**

Vesting ensures that tokens remain locked for a specific period and are released in intervals. This helps keep the team committed to the project and prevents sudden large-scale token sales.

* **Vesting Period:** Specify how long tokens will remain locked (e.g., 12 months).
* **Vesting Rate:** Determine the percentage of tokens released at each interval (e.g., 25% every 3 months).

**3.2.3 Cliff Period**

A cliff is the waiting period before vesting begins. During this time, tokens remain locked and are not available for release.

* **Cliff Duration:** For example, set a 6-month cliff period before vesting starts.

#### 3.3 Launch Settings

Carefully configuring your launch settings is essential for a successful token sale.

**3.3.1 Funding Currency**

Determine which cryptocurrency will be used to collect funds during the token sale. Examples include:

* **UBE:** The platform's native token.
* **USDT, USDC, cUSD or USDGLO:** Stablecoins on the Celo network.

**3.3.2 Hard Cap and Soft Cap**

* **Hard Cap:** The maximum amount intended to be raised during the token sale. Once this limit is reached, no further investments are accepted.
* **Soft Cap:** The minimum target amount. If the soft cap is not reached, funds are typically refunded.

**3.3.3 Pricing**

* **Sale Price:** The price at which tokens are sold during the sale.
* **Listing Price:** The initial price at which tokens will be listed on exchanges.

**3.3.4 Launch Duration**

* **Start Date:** The date and time when the token sale will commence.
* **End Date:** The date and time when the token sale will conclude.

#### 3.4 Automated Liquidity Options

Liquidity is vital for ensuring that tokens can be smoothly bought and sold on exchanges. Ubestarter automates liquidity management.

**3.4.1 Liquidity Percentage**

Specify the percentage of funds raised that will be allocated to the liquidity pool. For example, allocate 50% of the raised funds to liquidity.

**3.4.2 Liquidity Range**

Define the minimum and maximum price ranges for the token within the liquidity pool:

* **Minimum Price:** The lowest price the liquidity pool will support for the token.
* **Maximum Price:** The highest price the liquidity pool will support for the token.

**3.4.3 Liquidity Preference**

Choose how the liquidity will be managed:

* **Burn:** Automatically send the liquidity to dead address
* **Locked:** Lock the liquidity for a specific time period.

**3.4.4 Unsold Tokens**

* **Return to Owner:** Unsold tokens are automatically returned to the owner's address after the sale period ends, only if the sale reaches the previously defined softcap limit.
* **Return to users: If the sale does not reach the softcap limit within the specified time period, users will receive their payment back and all tokens for sale will be returned to the owner.**

***Note: The 10000 UBE payment required to launch a token sale will not be refunded.***

#### 3.5 Preview and Launch

Final steps in creating your launchpad:

**Preview:**

* Click the "See Preview" button to review all settings and information.
* Check the project page for any missing or incorrect details and make necessary adjustments.

**Launch:**

* Once all information is verified, click the "Launch Project" button to start your token sale.
* At this stage, make sure you have at least 10000 UBE in your wallet and the amount of tokens you want to sell on the launchpad.
* Your project will appear in the Active Projects tab once the launch process begins.


# User Experience

#### 4. User Experience

#### 4.1 Exploring Projects

Ubestarter allows users to discover and evaluate various projects.

**4.1.1 Active Projects Tab**

This tab lists currently open token sales. Each project includes the following information:

* **Project Name and Logo:** For easy recognition.
* **Funds Raised:** The total amount of funds raised so far.
* **Participation Percentage:** The percentage of funds raised relative to the target.
* **Sale Duration:** Start and end dates of the token sale.
* **Participation Button:** Quick access to join the sale.

**4.1.2 Completed Projects Tab**

This section displays the results of completed projects:

* **Funds Raised:** The total amount raised at the end of the sale.
* **Success Status:** Whether the project met its fundraising goals.
* **Token Distribution:** Information on when and how tokens will be distributed to participants.

#### 4.2 Participation

To participate in a project, follow these steps:

**4.2.1 Opening the Project Detail Page**

1. **Select a Project:**

* Find the project you wish to join under the Active Projects tab.
* Click on the project name or logo to open its detail page.

1. **Review Project Details:**

* Carefully read through the project's purpose, tokenomics, and team member information.
* Understand the sale terms and how the funds will be used.

**4.2.2 Token Purchase Process**

1. **Specify Purchase Amount:**

* Enter the amount of tokens you wish to buy or the amount of funds you want to spend.

1. **Confirm the Transaction:**

* Review the entered information and click the "Buy Tokens" button.
* A transaction approval window will appear in your wallet. Approve the transaction to proceed.

1. **Confirmation and Notification:**

* Upon successful transaction, your tokens will be transferred to your wallet.
* You will receive the tokens after the sale concludes.

**4.2.3 Post-Participation Steps**

* **Store Tokens Safely:** Keep your purchased tokens in a secure wallet.
* **Follow Project Updates:** Stay informed about the project's progress by following its social media and official channels.
* **Provide Liquidity:** After the tokens are listed on exchanges, consider providing liquidity to support stable trading.


# Legal Notices

### 5. Legal Notices

Ubestarter provides legal notices to inform users and clarify responsibilities related to platform transactions.

#### 5.1 Disclaimer

Ubestarter does not control or manage the projects listed on the platform. The following scenarios are excluded from Ubestarter's responsibility:

* **User Errors:** Mistakes such as entering incorrect wallet addresses or making erroneous transactions.
* **Smart Contract Errors:** Losses due to coding bugs or security vulnerabilities in smart contracts.
* **Server Issues:** Problems arising from technical glitches or downtime of the platform.
* **Third-Party Attacks:** Losses resulting from phishing, brute-forcing, or other malicious attacks.

#### 5.2 User Obligations

Users must adhere to the following obligations before using the platform:

* **Accuracy of Information:** Ensure that the information provided is correct and up-to-date.
* **Security Measures:** Maintain the security of their wallets and accounts.
* **Compliance with Laws:** Act in accordance with the cryptocurrency laws of their respective countries.

#### 5.3 Legal Warnings

* **Risk Disclosure:** Inform users that cryptocurrency investments carry high risks and their values can fluctuate rapidly.
* **Compliance Policy:** While Ubestarter takes necessary measures to comply with legal regulations, users must also adhere to their own legal responsibilities.


# FAQ

### 6. Frequently Asked Questions (FAQ)

#### Question 1: How can I participate in a token sale?

**Answer:** Select a project from the Active Projects tab, specify the amount of tokens you wish to purchase, and confirm the transaction. Once the token sale period ends, the tokens will be transferred to your wallet.

#### Question 2: How much does it cost to launch my project?

**Answer:** The cost to create a launchpad is 10,000 UBE. This fee supports the launchpad creation process and promotes your project within the Ubestarter ecosystem.

#### Question 3: How is liquidity managed after the token sale?

**Answer:** A predetermined percentage of the raised funds is automatically allocated to the liquidity pool based on the settings you defined during the launchpad creation. This process ensures that the token can be traded smoothly on Ubeswap.

#### Question 4: When will the tokens be transferred to my wallet?

**Answer:** Your tokens will be transferred to your wallet after the sale concludes and according to the distribution schedule defined by the project. Detailed information about distribution dates and processes can be found on the project's detail page.

&#x20;


# Overview

The Ubeswap Limit Order system enables users to trade assets at fixed prices. This is the first system in Celo that efficiently allows for large trades. It is also the first limit order system that prioritizes fulfiller agents which in turn ensure that users' orders are filled in a timely fashion


# How it works

Let's go over what happens when you place a limit order on Ubeswap:

1. You want to buy 5 CELO at a price of 3 cUSD each so you place a limit order on the Ubeswap interface
2. The Ubeswap interface generates the order details: the tokens being traded, the token amounts etc. It then asks you to sign the order using your private key. This signature acts as an authorization for this order to be executable
3. Your order details and signature are sent together to the UbeswapOrderBook smart contract. This smart contract simply logs the order and signature so that order fulfillers can find the order on-chain. This smart contract will also take an order placement fee to prevent order spam
4. If the price of CELO falls below 3 cUSD, fulfillers will be incentivized to buy CELO at that cheaper price and fill your order for a profit. The more efficient the fulfiller, the closer they can fill your limit order to the current market price


# Creating a farm

## Prerequisite(s)

* A deployed single rewards or multi-rewards farm
* A reward token for your new farm

## Setup

* Visit <https://romulus.page/deploy>
* Pick `StakingRewards`
* Specify a wallet or multi-sig in your control as the `owner`
  * Owners have admin privileges like updating RewardsDistribution and RescueERC20
* Specify a wallet or multi-sig in your control as the `rewardsDistribution`
* Specify the reward token for this new farm as the `rewardsToken`
  * If you want a XX + UBE rewards farm, this is the XX token address
* Specify the deployed single rewards or multi-rewards farm as the `externalStakingRewards`
  * If you want a XX + UBE rewards farm, this is the UBE rewards farm address
* Specify every external reward token in `externalRewardsTokens`

  * If you want a XX + YY + UBE rewards farm, this is the XX and YY reward tokens

## Refreshing rewards

* Visit [https://romulus.page/rewards/\<farm-address>](https://romulus.page/rewards/0xefe2f9d62e45815837b4f20c1f44f0a83605b540)
* Send the number of reward tokens to this farm that you'd like to reward for a week
* Notify the **same** number of reward tokens to this farm that you'd like to reward for this week

NOTE: It's ok if you send more than you need. However, be careful about notifying more than once in a single week as the rewards will stack up.


# Importing a custom farm

## Guide

1. Click Import Farm button on the farm tab. \[See Figure 1] You should already be connected to a wallet. If not, the button will be disabled.
2. Once you click the button, you will be able to see the Import Farm modal. You can enter or paste the address of a farm that you are going to import on the input field. If the address is the correct farm address and you don’t have that farm already in available pools or on your browser, you can import the farm by clicking the Import Farm button. \[See Figure 2]
3. You can see the imported farms on the farm tab \[See Figure 3]

<figure><img src="/files/nBMIxBfX1UtkKhl30kw7" alt=""><figcaption><p>Clicking Import Farm button to open up import farm modal</p></figcaption></figure>

<figure><img src="/files/pnJV2ZqdoAmjW3rbTSOL" alt=""><figcaption><p>Import a farm from the modal</p></figcaption></figure>

<figure><img src="/files/mlUhFrCeAfyNcXv7AOu2" alt=""><figcaption><p>Imported farms are displayed on the farm tab</p></figcaption></figure>

*Disclaimer: Ubeswap is not responsible for any loss or claim that may arise from a participant's use of Import Farms. Third party tokens that may be available on Import Farm are not affiliated with Ubeswap in any way. Each participant must evaluate and research risks associated with each token before farming or staking such a token through Import Farms. DeFi is a new technology that comes with risk of loss. Statements may be forward-looking and are not intended as guarantees of future performance.*


