# Welcome to Bulba

**The fastest, lowest-slippage DEX & cross-chain aggregator on Morph.**&#x42;ulba is a high-performance trading dapp built on **Morph**, designed to make swapping crypto **fast, cheap, and reliable**. We obsess over execution quality: smarter routes, tighter slippage, and sub-second responsiveness. Liquidity starts on Morph and progressively expands via cross-chain aggregation.

**What to Expect**

In this GitBook, we'll dive deep into the background of Bulba, exploring its origins, development, and mission. We'll also provide an overview of the platform's key features and functionalities, guiding you through the process of trading on Bulba and maximizing your experience.

Whether you're new to crypto trading or a seasoned investor, this GitBook is designed to provide you with all the information you need to understand and utilize Bulba to its fullest potential. Let's embark on this journey together and revolutionize the world of crypto trading!


# Introduction

Bulba is a decentralized trading and liquidity hub built on the Morph blockchain, designed for fast, secure, and low-cost token swaps.

As the first DEX aggregator in the Morph ecosystem, Bulba connects users to the best liquidity routes across multiple sources, delivering seamless execution for both casual traders and experienced investors.

Whether you’re chasing new coins or rotating yield positions, Bulba makes trading frictionless—with minimal setup, visible incentives, and transparent performance.

<br>

**Why Bulba**

* **Execution first:** Targeting sub-**400ms** front-end-to-execution latency with real-time.
* **Best price routes:** Advanced pathfinding with fewer splits (≤ **3 legs**) and **MEV-aware** protection.
* **High success rate:** Routing tuned for **≥98%** completion in volatile markets.
* **For pros & newcomers:** Clean UI, clear fees, and deep analytics as we roll out V4-style liquidity tools.

<br>

**How to Get Started**

1. Visit[ bulbaswap.io](https://bulbaswap.io) → click Launch App.
2. Connect your wallet (e.g. MetaMask).
3. If you’re not on Morph chain, follow the prompt to switch networks.
4. Choose your tokens, set your amount, and confirm the swap.

That’s it—you’re now trading on one of the fastest Layer-2 DEXs in the ecosystem.

In the following chapters, we’ll explore how Bulba works, how to earn Credits, and how to join the community leaderboard.

<br>


# Background

**Origins of Bulba**

Bulba was created with a simple goal: to make decentralized trading more accessible, fair, and fun.

As interest in AI and Meme coins surged, the founding team saw a gap between complex DEX interfaces and what most users wanted—a fast, intuitive, and rewarding place to trade trending assets.

**Development Journey**

From concept to launch, Bulba has been built around one principle: speed meets simplicity.

Leveraging Morph’s ultra-low fees and sub-second confirmations, the team designed Bulba from the ground up to address key pain points in traditional DEXs—slow execution, fragmented liquidity, and poor UX.

<br>


# Roadmap

## Q3 2024: DEX Launch

* [x] Get Grants from Morph, MEXC Ventures, Foresight Ventures, and Kronos.
* [x] Bulbaswap v2 & v3 on Morph Holesky Testnet.

## Q4 2024: Attention Building Tools

* [x] Integrate with Bitget Wallet.
* [x] Achieve $100M Trading Volume on Morph chain.
* [x] Launch the Bulba Boost and Credits features.

## Q1 2025: Platform Optimization

* [x] Ensure seamless integration with trading tools for optimal performance.
* [x] Exchange Credits for Tokens.
* [x] Boost popular trading pairs.

## Q2 2025: Seamless Cross-Chain

* [x] QuickSwap enables seamless cross-chain swaps between multiple networks.
* [x] Ensure seamless integration with trading tools for optimal performance.

## Q3 2025: Upgrade Bulba

* [x] Bulba Launchpool.
* [x] Expansion of Bulba Credits.
* [x] Brand upgrade for Bulba — refining identity, visuals, and messaging to align with the next phase of ecosystem growth.

## Q4 2025: **Trade Optimization**

* [ ] Slippage & Latency Reduction.
* [ ] Aggregator with Smart Routing.
* [ ] Yield Earning.

## Q1 2026: **Liquidity Depth & Cross-Chain Expansion**

* [ ] LP Fees Management (V4 Model).
* [ ] Cross-Chain Bridge Integration.
* [ ] Bulba Credit System Optimization.

## Q2 2026: **Ecosystem Launch & DAO**

* [ ] Morph Launchpad.
* [ ] DAO Launch.

## Q3 2026: **PayFi Integration**

* [ ] Stablecoin checkout for merchants (via Morph).
* [ ] Yield-bearing payments (earn while spending).
* [ ] NFT + DeFi collateralized loans.

## Q4 2026: **Hybrid Trade**

* [ ] Full trade anonymity + MEV resistance.
* [ ] Hybrid mode (public/private pools).


# FAQ

**What is Bulba?**

Bulba is a decentralized exchange (DEX) and liquidity aggregator on the Morph blockchain.

It enables users to swap tokens with best-route execution, low fees, and instant settlement.

Think of it as the entry point for trading and liquidity across the Morph ecosystem.

**What Makes Bulba Unique?**

* Hot-asset optimized: Designed for trending-asset trading with minimal setup—open, connect, and swap instantly.
* Native to Morph: Officially recognized as a core DEX route for onboarding new users to the Morph ecosystem.
* Visible progress: Leaderboard and Credit pages turn trading into a gamified, rewarding experience.
* Ecosystem presence: Listed across major trackers and platforms as Morph’s go-to aggregator.\ <br>

**How to Trade on Bulba**

1. Enter & connect: Visit[ bulbaswap.io](https://bulbaswap.io) → Launch App → Connect Wallet.
2. Pick tokens: Select tokens in You Pay / You Receive, or paste the contract address.
3. Configure & submit: Check quote, expected output, gas fee, and slippage. Approve once, then confirm swap.
4. Verify outcome: Wait for confirmation and verify via transaction hash if needed.\ <br>

**If your funds are not on Morph, you can:**

* Use the Bridge page to move assets on-chain, or withdraw directly from Bitget to the Morph network.

Once bridged, return to Bulba to trade freely.

<br>


# How to Swap (Morph)

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FgjcqDP8oAAcrUUNbZ8HK%2FPicture1.png?alt=media&amp;token=9e5c93d5-8865-437d-9b50-ea7000f9b317" alt=""><figcaption></figcaption></figure>

1\. Connect Your Wallet:

• Visit the <https://app.bulbaswap.io/swap/>

• Click on the “Connect Wallet” button on the top right corner of the homepage.

• Select your wallet provider and follow the prompts to connect.

2\. Select the Tokens:

• Once your wallet is connected, navigate to the “Swap” section on the platform.

• You will see two dropdown menus: “You Pay” and “You Receive.”

• In the “You Pay” section, select the token you wish to swap.

• In the “You Receive” section, select the token you wish to receive.

3\. Enter the Amount:

• Enter the amount of the token you want to swap in the “You Pay” box.

• The AMM will automatically calculate the amount of the new token you will receive based on the current market rates and liquidity available.

4\. Review Swap Details:

• Take a moment to review the details of the swap, including the exchange rate, liquidity provider fee, and estimated gas cost.

• Some platforms offer a “slippage tolerance” setting that you can adjust to prevent your transaction from failing due to price movements during the transaction process.

5\. Confirm the Swap:

• Once you’re satisfied with the details, click the “Swap” button.

• A confirmation window will pop up. Review the transaction once more.

• Confirm the transaction in your wallet. You might need to approve the tokens for trading if it’s your first time swapping these tokens.

6\. Transaction Submitted:

• After confirming the transaction, it will be processed on the blockchain.

• This can take from a few seconds to a few minutes, depending on network congestion and transaction fees.

• Once the transaction is confirmed, you’ll receive a notification, and the new tokens will appear in your wallet.

7\. Check Your Wallet:

• Open your wallet to confirm that the new tokens have been added to your balance.

• If there are any issues, check the transaction on a blockchain explorer by using the transaction hash provided post-swap.

&#x20;


# Provide AMM Liquidity (Morph)

#### **How to add liquidity to a V2 pool:**

1\. Navigate to the 'Pool' tab on the app and connect your wallet.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2F1XmZ1QB2WOp2VpAEQBwy%2FPicture2.png?alt=media&amp;token=207eab2c-7c4f-41ea-be24-cb1984924ade" alt=""><figcaption></figcaption></figure>

2\. Then click add V2 Liquidity

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FENx0iV7ywRc2tz0WVkzG%2FPicture3.png?alt=media&amp;token=bfa13c9b-8f49-42f1-b839-86e9d7f6bfe1" alt=""><figcaption></figcaption></figure>

3\. Select the tokens you wish to add to the liquidity pool. You must add liquidity to the pool in the form of two tokens at a 1:1 ratio according to USD value. Enter the amount of the first coin you wish to add, the second coin will adjust to match a 1:1 ratio. Then click 'ADD LIQUIDITY'. You will then need to approve the transaction in your wallet.

You should see a confirmation for the transaction. You should now be able to view your LP tokens in your wallet balance.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2F4XhcW0L0me2zUcwd8HTO%2FPicture4.png?alt=media&amp;token=d3539ef4-cca8-472c-9d2c-a00942c3a5fc" alt=""><figcaption></figcaption></figure>

You have now successfully added to liquidity pool. If you wish to reclaim your tokens, simply click 'Remove Liquidity' and confirm the transactions.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2F1njGq11zOQX4w4WDw0V1%2FPicture5.png?alt=media&amp;token=d33dd59e-ab33-47a3-9fcc-ad23ed51c71a" alt=""><figcaption></figcaption></figure>

That's it, you're now a liquidity provider on Morph Testnet!&#x20;

#### **How to add liquidity to a V3 pool:**

1. Navigate to the 'Pool' tab on the app and connect your wallet.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FCfq6qb1zhyLhLO7sg33o%2FPicture6.png?alt=media&amp;token=4695eeb3-414e-42cd-9843-64daf0ae7e8c" alt=""><figcaption></figcaption></figure>

2. Then click add V3 Liquidity

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FgVA20esNMOu5x6cUEG3G%2FPicture7.png?alt=media&amp;token=d42a9482-6159-441d-8399-2ea2c4fddd2f" alt=""><figcaption></figcaption></figure>

3.Select the tokens and fee tier you wish to add to the liquidity pool. You must add liquidity to the pool in the form of two tokens at a 1:1 ratio according to USD value. Enter the amount of the first token you wish to add, and the amount of the second token will automatically adjust to match the 1:1 ratio. You can also set it to only be effective within a certain price range. Then click "ADD LIQUIDITY." You will then need to approve the transaction in your wallet.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FMGxBFs7clpsKYcJ68pGn%2FPicture9.png?alt=media&amp;token=0b8c81cd-fe60-428a-8118-72ab4172fae1" alt=""><figcaption></figcaption></figure>

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2Fa5yRkql0cAgUhvvK5yj7%2FPicture10.png?alt=media&amp;token=2e290673-32ef-49c8-b44b-aae210627097" alt=""><figcaption></figcaption></figure>

4. You have successfully added to the liquidity pool. If you wish to reclaim your tokens, simply click on the liquidity pool, go to the details page, and then click "Remove Liquidity" and confirm the transaction.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FtEzTBoIvNCdRI0T7AlG2%2FPicture11.png?alt=media&amp;token=e392e6ff-a62f-4c5f-8959-85bc26e2d3a0" alt=""><figcaption></figcaption></figure>

5. If you are creating V3 Pool for the first time, you need to enter the initial exchange rate conversion

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FJJmGSziVbF7b3ZmHBY4Q%2Fimage.png?alt=media&amp;token=0fc1d843-5f54-48bf-9c82-2126528ebc79" alt=""><figcaption></figcaption></figure>


# Traders


# How to Swap(Solana)

**How to Swap**

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FfwZwqJt62F25ZXbhSVuI%2Fimage.png?alt=media&amp;token=8db991c0-f5f1-4c72-be0a-7938483068f0" alt=""><figcaption></figcaption></figure>

1. Navigate to Swap, then connect your wallet.
2. Next, select from the drop-down the tokens you want to swap. For this example, we'll be swapping **From** SOL **To** Bulba.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FHVcoZOxzrhv9m2a50bAO%2Fimage.png?alt=media&amp;token=58d3fb78-8fea-448e-af8a-a89ecd097923" alt=""><figcaption><p>Bulba is a test ticker</p></figcaption></figure>

3\. Enter the amount of tokens you wish to swap. Finally, click Swap!

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FncEU6ebGHCeySg3SMsT2%2Fimage.png?alt=media&amp;token=b25935ae-1391-480d-b4d1-c9529a6af90b" alt=""><figcaption></figcaption></figure>

4\. Shortly after the transaction is confirmed you should be able to see your new balance, although this can sometimes take a few seconds to refresh.

You have now done your first swap on Raydium. Now let's get swapping!

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FLGVdanFInMyBgB5ZUndh%2Fimage.png?alt=media&amp;token=0d600d54-9618-4b4a-a9aa-d018ba41537d" alt=""><figcaption></figcaption></figure>

Pay close attention to Price Impact and remember to check 'Minimum Received' when executing large swaps or when swapping in a low liquidity pool.

**Minimum Received** is the least amount of tokens a user will receive on a trade.

**Price Impact** is the difference between the market price and the estimated execution price based on the size of the trade.

**Slippage Tolerance** is the maximum difference between a user's estimated price and execution price. You can access this parameter both by clicking "settings" on the navigation tab and "more information" on the swap interface.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FBycaPoT05Lp4nhDTitNX%2Fimage.png?alt=media&amp;token=07651692-b76e-4c11-8614-2b21bf18430c" alt=""><figcaption></figcaption></figure>


# Liquidity Providers


# Provide AMM Liquidity(Solana)

**How to add liquidity to a pool:**

1. Navigate to the 'Liquidity' tab on the app and connect your wallet.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FrLWlwb8yzKMpIRILEwyL%2Fimage.png?alt=media&amp;token=bdcb4a5a-7dbb-4b84-b8a7-3b7ef1393090" alt=""><figcaption></figcaption></figure>

2\. Select the tokens you wish to add to the liquidity pool. You must add liquidity to the pool in the form of two tokens at a 1:1 ratio according to USD value. Enter the amount of the first coin you wish to add, the second coin will adjust to match a 1:1 ratio. Then click 'Supply'. You will then need to approve the transaction in your wallet.

You should see a confirmation for the transaction. You should now be able to view your LP tokens in your wallet balance.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FPgeCHjxpBynPhD3oZn0v%2Fimage.png?alt=media&amp;token=ffc45909-e868-417b-bd2b-730bc8903f75" alt=""><figcaption></figcaption></figure>

You have now successfully added to liquidity pool. If you wish to reclaim your tokens, simply click 'Remove Liquidity' and confirm the transactions.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FKuTbd7Qtfq2gLOEOLDRR%2Fimage.png?alt=media&amp;token=d4be8a52-0e5a-40e9-a7a0-6065a704d416" alt=""><figcaption></figcaption></figure>

That's it, you're now a liquidity provider on Raydium!

**Liquidity pool explanation:**

When you add to a pool you will receive Liquidity Provider tokens (LP tokens). For example, if a user deposited $SOL and $BULBA into a pool, you would receive SOL-BULBA RLP tokens.

These tokens represent a proportional share of the pooled assets, allowing a user to reclaim their funds at any point.


# Create AMM Pool(Solana)

coming soon.


# Developers

Github, <https://github.com/BulbaSwap>&#x20;

## Address

| Description                 | Address                                                                   |
| --------------------------- | ------------------------------------------------------------------------- |
| Standard AMM(Solana)        | <https://solscan.io/account/dexrBFKXSS5Mge5FN8DRRMfsqigjgj2P9ifm38orQRx>  |
| AMM Factory Address(Solana) | <https://solscan.io/account/2Ha2Z2a8DaJiexdiWLQVfqk3XBC7KBcugQofyRmdJKDr> |

## Access Control

BulbaSwap's programs are all owned by the BPF Upgradeable Loader, which allows an Upgrade Authority to upload updates and improvements when necessary. BulbaSwap holds the following Upgrade Authorities for the respective programs which can be found below. The only role is OnlyOwner. Programs are fully upgradeable and labelled as such when searched on [Solscan](https://solscan.io/), however all changes are reviewed by core team members before implementation.

| **Upgrade Authority** | EpdDsvU1RcTeEnVA7zgizJyL8o3E6zHpJJAwm13MkhNy`FMJ` |
| --------------------- | ------------------------------------------------- |


# Audit

## Morph

**Bulbaswap has been working with ExVul for the security review of Bulbaswap future-proofing multi-pool design.**

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FKQnODGftdMhGBUJZ404q%2Fimage.png?alt=media&amp;token=cbf4e0b6-b8dd-4fdd-bea9-d38941e4d228" alt=""><figcaption></figcaption></figure>

* **BulbaSwap has successfully passed the audit conducted by ExVul.**

{% file src="/files/FCP8NjNn1lIlW2AbZaHy" %}

{% file src="/files/6361FLAz15dldvNlFESW" %}

&#x20;


# Grants for AI and MEME COINS

Apply available coming soon.

BulbaSwap offers three types of grants for projects, from AI to MEME Coins. It includes not only pre-launch projects but also post-launch tokens.

## Liquidity Grant.

Amount: $50k - $200k

Goal: Provide Liquidity on Raydium and Bulbaswap.

## Trading Bot Grant.

Amount: $10k - $50k

Goal: Maintain the trading volume at $1 mil /24 hours

## Marketing  Grant.

Amount: $50k - $200k

Goal:  Working with a marketing agency to collaborate with over 2000 KOLs for promotional purposes.


# Ecosystem Support for Projects

BulbaSwap will provide ecosystem support with top backers.

* Foresight Ventures
* PepeBoost
* Morph
* Bitget Wallet
* Native


# Early Birds on LP and Bot

Apply available coming soon.

Introducing a new opportunity to apply as a trading bot or Liquidity Provider on Solana.<br>

\
Advantages for Early Birds:

* Morph Points Boost
* BulbaSwap Airdrop Boost
* MEME COIN Airdrop
* Early access to deploy a trading bot&#x20;
* Opportunity to become a liquidity provider
* Join the Early Birds Group with Whales/Investors/Founders/Devs<br>

Requirements for Early Birds:

* Whales
* Arbitrage developers
* On-chain Market Makers
* Solana MEME Traders


# MEME Library

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2Fn2USxxlbPqZpcTh7stNP%2Fimage.png?alt=media&amp;token=a8946643-4f1e-49cf-bda9-097f90c7a2c4" alt=""><figcaption><p>Source: Bulbagarden, <a href="https://bulbagarden.net/home/">https://bulbagarden.net/home/</a></p></figcaption></figure>

BulbaSwap is derived from Bulbasaur and creates meme libraries.&#x20;

BulbaSwap will provide incentives to meme libraries around Bulbagarden.


# Get Started (Morph)

**Get Started on Morph**&#x20;

* Bridge ETH  to Morph : [https://bridge.morph.network/ ](https://bridge.morph.network/)

**Get Started on Bulba(Morph)**

1. Visit <https://app.bulbaswap.io/swap/>
2. Connect your wallet: Select "Connect Wallet" to link your Metamask wallet, which will automatically connect to the Morph Mainnet.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FeObFiauA0SuaPOxXQNPm%2FPicture12.png?alt=media&amp;token=65ae2777-312e-42a7-88f0-4bf8bd169f70" alt=""><figcaption></figcaption></figure>

3. Then you can trade, create pairs, add liquidity, and remove liquidity.
4. When clicking the swap trade button, it will check if it is connected to the Morph Mainnet. If not, a popup window will automatically appear to add it.


# Quote API

The API allows developers and users to get the best swap quotes to speed up integration.

#### API base path

```
https://api.bulbaswap.io/v2/quote
```

#### Params

<table><thead><tr><th width="183">Name</th><th width="80">Require</th><th width="113">Type</th><th>Note</th></tr></thead><tbody><tr><td>amount</td><td>true</td><td>number</td><td>e.g. 0.1</td></tr><tr><td>tokenInAddress</td><td>true</td><td>string</td><td>eth, ETH, weth, WETH, 0x...</td></tr><tr><td>tokenOutAddress</td><td>true</td><td>string</td><td>eth, ETH, weth, WETH, 0x...</td></tr><tr><td>slippage</td><td>false</td><td>number</td><td>min: 0.01, max: 100, default: auto</td></tr><tr><td>minAmountOut</td><td>false</td><td>number</td><td>e.g. 0.2</td></tr><tr><td>protocols</td><td>false</td><td>string</td><td>v2/v3/v2,v3 (default: v2,v3)</td></tr><tr><td>recipient</td><td>false</td><td>string</td><td>0x...</td></tr><tr><td>deadline</td><td>false</td><td>number</td><td>Positive integer, min: 60, max: 600</td></tr></tbody></table>

#### Example

<pre class="language-sh"><code class="lang-sh"><strong>// Get query
</strong><strong>https://api.bulbaswap.io/v2/quote?amount=0.1
</strong><strong>    &#x26;tokenInAddress=ETH
</strong><strong>    &#x26;tokenOutAddress=0xc7D67A9cBB121b3b0b9c053DD9f469523243379A
</strong><strong>    &#x26;slippage=0.5
</strong><strong>    &#x26;minAmountOut=270.9
</strong><strong>    &#x26;recipient=0x3210f5d1a49842634F224dD50a8BadF02e9aB3a4
</strong><strong>    &#x26;deadline=600
</strong><strong>    &#x26;protocols=v2,v3
</strong></code></pre>

```json
{
  "code": 0,
  "msg": "success",
  "data": {
    "methodParameters": {
      "calldata": "0xd984396a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c7d67a9cbb121b3b0b9c053dd9f469523243379a0000000000000000000000003210f5d1a49842634f224dd50a8badf02e9ab3a4000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000010259b200000000000000000000000000000000000000000000000000000000010aa5a6e00000000000000000000000000000000000000000000000000000000d2519ef800000000000000000000000000000000d85d1221bb31493b9d1ccb8bd1220e140000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0ce9a3b911f2f52f93f6bf35475be703998aa670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005300000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000003210f5d1a49842634f224dd50a8badf02e9ab3a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000005191035d329f481eff0143e690e0a4e366dd1e0c0000000000000000000000005300000000000000000000000000000000000011000000000000000000000000c7d67a9cbb121b3b0b9c053dd9f469523243379a0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000000",
      "value": "0.1",
      "to": "0xc0Ce9a3B911f2F52f93F6bf35475be703998aa67"
    },
    "amount": "100000000000000000",
    "amountDecimals": "0.1",
    "quote": "279599726",
    "quoteDecimals": "279.599726",
    "slippage": "0.5",
    "minAmountOut": "270.9",
    "priceImpact": "0.0024",
    "fromTokenPrice": "2802.85",
    "toTokenPrice": "1",
    "swapFee": {
      "swapType": 1,
      "feeType": 0,
      "feeRate": "0.001",
      "feeChain": "morph",
      "feeSymbol": "ETH",
      "feeContract": "",
      "feeDecimals": 18,
      "feeTokenPrice": "2802.85",
      "feeDueAmount": "0.0001"
    },
    "gasFee": {
      "gasLimit": "1200000",
      "gasPrice": "0.000000000015",
      "gasFeeAmountInUsd": "0.0651809846024520615",
      "gasTotalAmount": "0.00002325525254739",
      "gasLevel": "fast"
    },
    "route": [
      [
        {
          "poolAddr": "0x0000000000000000000000000000000000000000",
          "label": "NativeWrapper",
          "percent": 100,
          "tokenIn": {
            "address": "0x0000000000000000000000000000000000000000"
          },
          "tokenOut": {
            "address": "0x5300000000000000000000000000000000000011"
          },
          "amountIn": "99900000000000000",
          "amountOut": "99900000000000000"
        }
      ],
      [
        {
          "poolAddr": "0x5191035d329f481eff0143e690e0a4e366dd1e0c",
          "label": "BulbaV3",
          "percent": 100,
          "tokenIn": {
            "address": "0x5300000000000000000000000000000000000011"
          },
          "tokenOut": {
            "address": "0xc7d67a9cbb121b3b0b9c053dd9f469523243379a"
          },
          "amountIn": "99900000000000000",
          "amountOut": "279599726"
        }
      ]
    ]
  }
}
```


# Bulba Credits

The Bulba Credits System rewards your active participation on the platform. By trading, providing liquidity, and inviting friends, you can enjoy a higher-return trading experience!

**Feature Overview**

* Credits: View your Credits details, track your accumulation progress, and check your reward redemption status on the Credits page.
* Boost: Special recommended trading pairs offer additional point rewards! Visit the Boost page to explore current hot recommended trading pairs and maximize your point earnings.

**How to Earn Credits**

* Trading Recommended Pairs: Trade in the recommended pairs and earn Credits instantly.
* Providing Liquidity to Recommended Pairs: Add liquidity to the recommended pairs and receive extra point rewards.
* Inviting Friends: View and share your exclusive referral link in the personal center. Invite friends to participate and earn additional Credits, creating a win-win trading experience.
* Joint Activities: Participate in special activities hosted by Bulba and its partners to earn special point rewards. Stay tuned for platform activities and more surprises!

**Credits Redemption**

Credits are not just numbers—they represent your trading value! Bulba credits can be redeemed for exclusive platform rewards, including tokens and limited edition NFTs. Accumulate credits through trading and activities to unlock greater rewards. Join the Bulba Credits Program today and make your trading experience more enjoyable!

**Referral Link**

Get your exclusive referral link in the personal center and invite friends to join Bulba. For each friend who participates in trading, you will earn additional credits. The larger your network, the more you earn!

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7rWEnt9FOnVNor6kVQEpT6OvWUruA_zoGghA5E8-2Yih0DwP24iV2gWxPICO2-Ztuv3S2pDZrzmQvWR1KQUK_70Kjy47pkO4VNljSJtijFQW-kKlrydSIoyiY-j4NVJu5L0Dtew?key=10eVUZYNcgDqBV_NLPuQyGGT" alt=""><figcaption></figcaption></figure>

**Important Notes**

* Registration Signature: Before trading, please complete the registration signature (wallet connection requests excluded). Users who have not signed the registration cannot earn credits.
* Types of Registration Signature:
  * No Referral Signature: For users who did not register via the referral link.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcBDmbfBVdRO1qbEyILojb_Ec0qOSeXRkN19PP7vRFBDkvYbdujselwva8JUOT_spRgqPYSMSR1NRyCjBcuE6Xgi8uTYQndRPK-hCahm39MfSF3Qy4fADATHJGRmHHEA_YTJW0YQg?key=10eVUZYNcgDqBV_NLPuQyGGT" alt=""><figcaption></figcaption></figure>

* Referral Signature: For users who registered via the referral link.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcLU7Ae1UlNdZ2zO_VRyZdeMQX7Fdw3PDMe6BGEUdt4Y9y8hLta3OFqH6QRtiWiaVGe-Kj7Z6qleGaqzhGqvuimRp4z2yjd_ys-x24PJdYvC2xwC9_DJcnzEAMZmZ6Uhymx99G1?key=10eVUZYNcgDqBV_NLPuQyGGT" alt=""><figcaption></figcaption></figure>

* Point Eligibility:
  * Credits can only be earned by trading or providing liquidity in the recommended pairs.
  * The transaction or liquidity amount must be at least $10 for credits to be counted.
* Credits can only be earned by trading or providing liquidity in the recommended pairs.
* The transaction or liquidity amount must be at least $10 for credits to be counted.
* The first transaction of the day will earn an additional 2% points reward.

**Start Your Credits Accumulation Journey!**

Join the Bulba Credits System, accumulate credits quickly through trading, liquidity provision, and inviting friends, and enjoy unique rewards. Join us now and create your high-yield trading experience!

<br>


# Mainnet FAQ

**Q1: After completing a transaction, I can see my ETH has decreased but I can't see the other tokens I received. Why?**

You need to manually add the token contract address to your wallet. You can find the corresponding token contract address on the Tokens page in the Explore section. If it's not found on this page, you can go to the personal center page, click on the transaction to enter the blockchain explorer (note that data on the personal center page may not sync after clearing the cache or switching devices).

<div data-full-width="true"><figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FegaEWl9CFUS5fAuyZMbu%2F8dbf0ece53fa886737207d721f629886.png?alt=media&amp;token=cc76c317-8703-404b-81f6-1989aa3bf8c8" alt=""><figcaption></figcaption></figure></div>

**Q2: I added liquidity for token pairs A/B, but now I can't see it in the Swap-Pool after clearing my cache or switching devices. What should I do?**

You can import it via Import Pool; this issue does not occur with Swap V3.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FAFUsWYYVhOLI6EMrGC9V%2FPicture2.png?alt=media&amp;token=267ea660-c0a3-43da-8f4c-6318679fae84" alt=""><figcaption></figcaption></figure>

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FoXCl7MnD9QngeAH5S3OT%2FPicture3.png?alt=media&amp;token=f4624a49-6142-4a5c-a049-6dc1c0edcfff" alt=""><figcaption></figcaption></figure>

**Q3: I received an error message when trying to execute a swap transaction. What should I do?**

&#x20;If you encounter a transaction error during a swap, try adjusting the slippage tolerance settings.

<figure><img src="https://840489826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hSzKpriOyD38Jiq53Sw%2Fuploads%2FJMsluUsjlbI0M1yq1S1G%2FPicture4.png?alt=media&amp;token=529e5f35-d04c-4c9d-a58c-fdb58dee8fdf" alt=""><figcaption></figcaption></figure>

**Q4: How can I earn the points displayed in credits?**

Please first visit the app.bulbaswap.io/swap interface and click on "Connect Wallet." A signature prompt will pop up; once you complete the signature, you can trade or add liquidity through the pairs recommended by Boost to earn points. Please note that points can only be earned after signing, and transactions below $10 will not count towards points. Liquidity addition points are settled once an hour, while trading points will take 5 to 10 seconds to appear.


# Token Logo Submission Guide

Thank you for choosing to collaborate with BulbaSwap! We provide two ways for you to submit your Token Logo. Please follow the steps below to ensure your submission meets the requirements.

**Submission Methods**

**Method 1: Submit PR via GitHub**

1. **Visit Our GitHub Repository**
   1. Go to BulbaSwap Token Lists.

2. **Add Token Information**

   1. Find and edit the following file:
      * `tokens/morph-mainnet/list.json`
   2. Add your token information in the following format:
   3. `{"name": "Test",`
   4. `"symbol": "Test",`
   5. `"address": "0xxxx....",`
   6. `"chainId": 2818,`
   7. `"decimals": 6,`
   8. `"logo": "https://raw.githubusercontent.com/BulbaSwap/token-lists/main/assets/morph-mainnet/{address}/logo.{png/svg}"}`
   9. **Note:** The address must be all lowercase; simply add the Token you are submitting.

3. **Submit Logo**
   1. Create the {address} folder (token contract address in lowercase) under the assets/morph-mainnet folder and upload your logo file to the following path:
      * `assets/morph-mainnet/{address}/logo.(png/svg)`
   2. **Logo Requirements:**
      * Format: Rounded PNG or SVG
      * Size: 200 x 200 pixels
   3. **Submit Pull Request**

      1. After completing the above steps, please submit a PR, and we will review it.

**Method 2: Submit via Google Form**

1. **Prepare Logo File**
   1. Please ensure your Logo file meets the following requirements:
      * Format: Rounded PNG or SVG
      * Size: 200 x 200 pixels
2. **Submit the Form**
   1. Please visit the following link, fill in the relevant information, and upload your Logo:[ Submit Form](https://forms.gle/7CVmhb9HTjDYwGRy8)

#### Important Notes

* Ensure the information is accurate to avoid delays in review.
* After submission, please wait patiently; once approved, we will display your token logo in BulbaSwap.

Thank you for your participation! If you have any questions, please feel free to contact our support team. You can reach us via:

* **Telegram:** [BulbaSwapOfficial](https://t.me/BulbaSwapOfficial)
* **Twitter:** <https://x.com/BulbaSwap>

We look forward to your Token joining the Bulbaswap community!


# Smart Contracts

## Morph Mainnet

| Version                              | Description                          | Address                                                            |
| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------ |
| v2                                   | Factory address                      | 0x8D2A8b8F7d200d75Bf5F9E84e01F9272f90EFB8b                         |
|                                      | Init code hash                       | 0xe0d4c9aa46e27dc0f29e1fbc328dadb3455bbfc8dd936b2ea1abd5d028cc2813 |
|                                      | Router address                       | 0x81606E6f8aAD6C75c2f383Ea595c2b9f8ce8aE3a                         |
| v3                                   | Factory address                      | 0xFf8578C2949148A6F19b7958aE86CAAb2779CDDD                         |
|                                      | Init code hash                       | 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54 |
| v2 and v3 use this address uniformly | Universal router address             | 0xb789922D715475F419b7CB47B6155bF7a2ACECD6                         |
|                                      | Multicall address                    | 0xAcD82113982479B25E7c1D09858F0130921Dbbca                         |
|                                      | Quoter address                       | 0xc312e6417D07Ae7Ba73FeF0832B1811194A7BbEf                         |
|                                      | Migrator Address                     | 0xe87c01ca304d69a94c4E079275B276BE659EE5eF                         |
|                                      | Nonfungible position manager address | 0xC6B60EE77854b7c11c39b6E3f5BCfe1866cbC20A                         |
|                                      | TickLens address                     | 0xA8da1415a3310d4b3759a683839947e6F8223ee2                         |
|                                      | Swap router02 address                | 0xa7304d322219553d4A85c9cE8eB7462Dcaf6453C                         |
|                                      | Permit2                              | 0x90a8a8E2Abb67d300593C714b687De109B4bCE5e                         |

## Morph Hoodi Testnet

| Version                              | Parameter                            | Address                                                            |
| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------ |
| v2                                   | Factory address                      | 0xbD3A2aABA47f3cb1359bAb25EFE90fB5f8837506                         |
|                                      | Init code hash                       | 0x0472ad46dfde1c6b9ff93ad1668a75cbad773ac1a3f91e82cba7069e8175b487 |
|                                      | Router address                       | 0x0Fbc1878d0a8BE4f071dF201C8b53d0A7db0C671                         |
| v3                                   | Factory address                      | 0xb6fD0b4F948b260102e6c96dEB7De6c8a4e7Fd9C                         |
| v2 and v3 use this address uniformly | Universal router address             | 0xCb14f819761Bde40AFcC8c54044aBED23aea24AF                         |
|                                      | Multicall address                    | 0x81bb09C7E199c7eED49B2a9C6eDe3e64b5B4Dd63                         |
|                                      | Quoter address                       | 0x12b085A63B31dC14Bb0fEf8bfEA251E220B243B8                         |
|                                      | Migrator address                     | 0x5152ca514a8B2E586732975F0d20cfE9Da0bd431                         |
|                                      | Nonfungible position manager address | 0x3c692a7416f6875D7dfCb552ABa5236af471e66a                         |
|                                      | TickLens address                     | 0x884B2F3B075C1f2fe7620B011f56ae80a5Ff36e2                         |
|                                      | Swap router02 address                | 0xd77Cabe8e6626cAA0E7793B59E4abfD6b1a86B9C                         |
|                                      | Permit2                              | 0xc3065F76f0890B75AD2d7E7B631D71d8EA4466Ce                         |


# Morph Mainnet

| Version                              | Description                          | Address                                                            |
| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------ |
| v2                                   | Factory address                      | 0x8D2A8b8F7d200d75Bf5F9E84e01F9272f90EFB8b                         |
|                                      | Init code hash                       | 0xe0d4c9aa46e27dc0f29e1fbc328dadb3455bbfc8dd936b2ea1abd5d028cc2813 |
|                                      | Router address                       | 0x81606E6f8aAD6C75c2f383Ea595c2b9f8ce8aE3a                         |
| v3                                   | Factory address                      | 0xFf8578C2949148A6F19b7958aE86CAAb2779CDDD                         |
|                                      | Init code hash                       | 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54 |
| v2 and v3 use this address uniformly | Universal router address             | 0xb789922D715475F419b7CB47B6155bF7a2ACECD6                         |
|                                      | Multicall address                    | 0xAcD82113982479B25E7c1D09858F0130921Dbbca                         |
|                                      | Quoter address                       | 0xc312e6417D07Ae7Ba73FeF0832B1811194A7BbEf                         |
|                                      | Migrator Address                     | 0xe87c01ca304d69a94c4E079275B276BE659EE5eF                         |
|                                      | Nonfungible position manager address | 0xC6B60EE77854b7c11c39b6E3f5BCfe1866cbC20A                         |
|                                      | TickLens address                     | 0xA8da1415a3310d4b3759a683839947e6F8223ee2                         |
|                                      | Swap router02 address                | 0xa7304d322219553d4A85c9cE8eB7462Dcaf6453C                         |
|                                      | Permit2                              | 0x90a8a8E2Abb67d300593C714b687De109B4bCE5e                         |


# Morph Hoodi Testnet

| Version                              | Parameter                            | Address                                                            |
| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------ |
| v2                                   | Factory address                      | 0xbD3A2aABA47f3cb1359bAb25EFE90fB5f8837506                         |
|                                      | Init code hash                       | 0x0472ad46dfde1c6b9ff93ad1668a75cbad773ac1a3f91e82cba7069e8175b487 |
|                                      | Router address                       | 0x0Fbc1878d0a8BE4f071dF201C8b53d0A7db0C671                         |
| v3                                   | Factory address                      | 0xb6fD0b4F948b260102e6c96dEB7De6c8a4e7Fd9C                         |
| v2 and v3 use this address uniformly | Universal router address             | 0xCb14f819761Bde40AFcC8c54044aBED23aea24AF                         |
|                                      | Multicall address                    | 0x81bb09C7E199c7eED49B2a9C6eDe3e64b5B4Dd63                         |
|                                      | Quoter address                       | 0x12b085A63B31dC14Bb0fEf8bfEA251E220B243B8                         |
|                                      | Migrator address                     | 0x5152ca514a8B2E586732975F0d20cfE9Da0bd431                         |
|                                      | Nonfungible position manager address | 0x3c692a7416f6875D7dfCb552ABa5236af471e66a                         |
|                                      | TickLens address                     | 0x884B2F3B075C1f2fe7620B011f56ae80a5Ff36e2                         |
|                                      | Swap router02 address                | 0xd77Cabe8e6626cAA0E7793B59E4abfD6b1a86B9C                         |
|                                      | Permit2                              | 0xc3065F76f0890B75AD2d7E7B631D71d8EA4466Ce                         |


# Brandkit

{% file src="/files/Y562vsnjsKpdQ4NSiWKo" %}


# Social Links

If you have any questions or concerns, the BulbaSwap team can be contacted through our various social media platforms. Let's stay connected.

* Website: [bulbaswap.io](https://bulbaswap.io/)
* Twitter: <https://x.com/BulbaSwap>
* Telegram: <https://t.me/BulbaSwapOfficial>


