# Introduction

***

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-8aaac61c7797b13de9941102798d84ae2cc1873c%2Fintroduction.jpg?alt=media)

CrowdSwap is the **best-price-routing and aggregation protocol for decentralized finance (DeFi).** It aims to reach mass adoption in crypto for every human being and overcome actual problems that reside from a fast-growing business space like DeFi.

With decentralized finance (DeFi), the possibilities have increased significantly. Every new project on the launch platforms, e.g., Polkastarter, did amazingly well afterward, sometimes reaching valuations of 100x or even more. In a bull market, everybody wants to trade these tokens that are first available on the decentralized exchanges (DEXes), e.g., Uniswap.

Lately, the popularity of DeFi has created some problems. Network traffic exceeded former expectations, so especially Ethereum had to suffer from high transaction fees. These high transaction costs gave other network providers the chance to step in. With lower prices, they can catch up to Ethereum as the number 1 network. Different chains bring new dimensions of complexity to the DeFi space. Now the number of DEXes not only grows on Ethereum, but it also spreads across all kinds of networks. The majority of users cannot keep track of all DEXes anymore. Not to mention the overhead of transferring their coins and tokens across networks.

The future of DeFi is bright, and CrowdSwap believes in DeFi. We strongly believe that crypto and DeFi should be a place of equality for every human being. That's the reason why we aim to get everybody on board. The mentioned issues are to be solved to make DeFi a place of equality for every human being.


# Brand Assets

***

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-b4cbf4b1a392c0bf2c807ccbc88c3b0a84ee0660%2Fbrand-book.png?alt=media)

Use the assets provided below.

> [Logo.svg](https://github.com/CrowdSwap/docs/blob/master/.gitbook/assets/Logo.svg)

> [Logo with text.svg](https://github.com/CrowdSwap/docs/blob/master/.gitbook/assets/Logo-with-text.svg)

> [Logo.png](https://github.com/CrowdSwap/docs/blob/master/.gitbook/assets/Logo.png)

> [Logo with text.png](https://github.com/CrowdSwap/docs/blob/master/.gitbook/assets/Logo-with-text.png)

> [Token icon.svg](https://github.com/CrowdSwap/docs/blob/master/.gitbook/assets/Token-Logo.svg)


# Search

Find the best price!

With Crowdswap app, you will always find the best price in the crypto space regardless of the network. The best price search is based on our best price routing algorithm and simplifies the translation between token amounts and fiat currencies. In the search result, you will find all the ancillary costs that come with a possible swap. The best price is always the cheapest including all transaction costs and fees.

Search finds the best price for your token pair across the Defi Space including all ancillary costs. Network boundaries are no longer a barrier anymore. If the price is better on another network, CrowdSwap will guide you through cross-chain swaps with ease.

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-d013c77be9c32ac50fbca438a47fc109d89274dd%2Fsearch.png?alt=media)


# Swap

Exchange one cryptocurrency for another

Currently, you can swap (trade) the tokens which white listed by CrowdSwap. CrowdSwap offers the possibility of swapping. Built on search, the transition to the Swap app is fluid and transparent. CrowdSwap makes it particularly easy and transparent for the user. The latter does not have to worry about the exchange's technical challenges but can receive his traded tokens. Based on best price routing (BPR), CrowdSwap takes care of all actions to successfully execute the swap and save on ancillary costs where possible. These features increase user-friendliness and reduce complexity significantly.

Before doing the swap, you can see all the extra costs and fees on the right side of the swap panel transparently.

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-d013c77be9c32ac50fbca438a47fc109d89274dd%2Fsearch.png?alt=media)


# Cross-Chain

CrowdSwap's cross-chain protocol enables users to effortlessly move crypto assets across different blockchains, unlocking access to the best opportunities within the DeFi ecosystem. By leveraging advanced technology and secure protocols, CrowdSwap simplifies and streamlines token swaps, removing the usual complexities of cross-chain transactions. Built on a proof-of-stake security model that mirrors many of the blockchains it connects, the service ensures secure token bridging and swapping, regardless of the underlying consensus mechanisms. This innovation provides users with maximum value, flexibility, and security, all within a user-friendly platform.

## TL;DR

To utilize CrowdSwap's cross-chain protocol, start by invoking the callContract method of the CrowdSwapGateway on the source chain. At the same time, pay the fixed validator fee, the protocol’s variable fee, and the execution cost for the destination network to the CrowdSwapGasService contract on the source chain. Once your transaction is initiated, you can track its progress using the CrowdSwap Scanner, a dedicated blockchain explorer designed to monitor your transaction status in real time.

## Get started

Executing a cross-chain transaction with CrowdSwap involves key components, including Routers, Gateways, CrowdHub (built on the Cosmos SDK), Validators and Operators. Here’s an overview of the key steps:

1. Quote and Estimation: When requesting a cross-chain swap, CrowdSwap’s Swap service provides a quote by calculating the output based on the CROWD pair on the destination chain. It considers the incoming volume from the source chain and prepares a transaction payload optimized for execution on the destination network.
2. Initiate Source Transaction: Begin by executing the transaction on the source blockchain, where a cross-chain event is emitted. The CrowdSwap Operator System actively monitors the source chain for this event and ensures the transaction reaches finality (i.e., confirmed by the network). Once the transaction is confirmed, the Operator broadcasts an InitContractCall message to CrowdSwap's native blockchain, CrowdHub.
3. Create Poll: After receiving the InitContractCall, CrowdHub initiates a Poll. This Poll requests Validators to assess and verify the source transaction’s validity on the originating chain.
4. Voting Process: Validators then retrieve the transaction receipt from the source chain and verify key details, such as transaction finality and event logs. Once the transaction is validated, Validators broadcast a Vote message to confirm the authenticity and accuracy of the cross-chain event.
5. Listen for EVMEventCompleted: Once sufficient votes are received, CrowdHub processes tasks like distributing fees or penalties based on the voting results. After this, it emits an EVMEventCompleted event. The Operator listens for this event and uses it to trigger the start of signing-related operations for the destination chain.
6. Approve Command Execution: Once the signing process is complete, the Operator forwards the signed commands to the Gateway on the destination chain, verifying the execution of the fulfillment transaction.
7. Fulfillment of Destination Transaction: Finally, the Operator executes the original destination address and payload on the destination network. This step completes the cross-chain transaction, ensuring the token bridge or swap is successfully carried out on the destination blockchain.
8. CROWD Buyback mechanism: To maintain the value of CROWD and enhance liquidity, CrowdSwap employs a dynamic buyback mechanism. After the transaction is fulfilled on the destination network, a buyback service automatically repurchases the sold CROWD using funds from the source chain. This ensures continuous liquidity and preserves CROWD's value, creating a sustainable and efficient cross-chain ecosystem.

## Liquidity in Cross-Chain Transactions

One of the key challenges in cross-chain transactions is ensuring sufficient liquidity across networks. CrowdSwap addresses this by utilizing its native token, CROWD, as a core liquidity source for cross-chain fulfillment. This design ensures that users can execute trades with optimized pricing, benefiting from lower fees and better swap rates.

For more details, check out: [Token Use Cases](https://crowdswap.org/token-usecases/#cross_chain)


# Architecture

CrowdSwap is the best-price-routing and aggregation protocol for decentralized finance (DeFi). It aims to reach mass adoption in crypto for every human being and overcome actual problems that reside in a fast-growing business space like DeFi. CrowdSwap concentrates on providing these features:

* Best Price Search Inside Multiple Decentralized Exchanges (like Uniswap, SushiSwap, and more) on different blockchain networks
* On-Chain and Cross-Chain Swap

The following picture illustrates the blueprint of the CrowdSwap architecture and its main parts:

* Front-Office Application
* Web3 Provider and Wallet Connection
* Best Price Router and Dex Aggregator APIs
* Swap Smart Contract

![Crowdswap-Architecture](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-d92882c2f5076ee67231084938bd889a7abb5e31%2Farchitecture.png?alt=media)

## Front-Office Application

This is a secured SPA application that provides all services for the end-users. It interacts with both the user wallet and the back-end APIs. CrowdSwap uses the web3 library to connect to the user wallet and communicate with the blockchain networks. We support these networks so far:

* Ethereum
* BSC
* Polygon

The access to the back-end APIs is secured with an SSL certificate. Web3 Provider and Wallet Connection Support CrowdSwap app interacts with the user wallet through a Web3 provider that is a data structure providing a link to publicly accessible Ethereum nodes. CrowdSwap app currently supports these providers:

* MetaMask
* Torus
* Authereum

The WalletConnect protocol is also supported. It is the web3 standard to connect blockchain wallets to Dapps. These wallets allow users to manage private keys and sign transactions within their web browser.

\##Best Price Router and Dex Aggregator APIs

DEX aggregators serve as a unified explorer for prices and liquidity offered by decentralized exchanges (DEXs). You can consider this service a search engine that accumulates data from a wide array of decentralized exchanges and facilitates split trades to offer the best possible prices. We have developed algorithms to find the best routing path for a swap. This API can be called with these two methods: Call from CrowdSwap app inside the user browser Call using an SDK for a third-party application that integrates with our service Currently, We support these DEXs:

* Uniswap (Both V2 and V3)
* Sushiswap
* Balancer
* Bancor
* Kyber
* Appswap
* Pancake
* Quickswap

## Swap Smart Contract

When the user wants to swap in our platform, we use an audited smart contract. This smart contract is deployed on all supported networks. This smart contract provides two main functionalities: Calculate and transfer the platform swap fee Delegate and call the appropriated DEX based on the best routing price path


# Protocol

### Cross-Chain Fees

At CrowdSwap, we believe in transparency and fairness, which extends to our fee structure for the Cross-Chain feature. CrowdSwap charges a nominal fee for each trade to facilitate the transaction and maintain the platform. The fee is a small percentage of the transaction amount, ensuring it remains affordable for all users.\
The transaction fee consists of:

1. Flat Protocol Fee
2. Variable Protocol Fee
3. CrowdSwap Fee

| Chain     | Flat Protocol Fee | Variable Protocol Fee       | CrowdSwap Fee          |
| --------- | ----------------- | --------------------------- | ---------------------- |
| Ethereum  | 0.001 ETH         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |
| BSC       | 0.005 BNB         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |
| Polygon   | 0.5 MATIC         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |
| Avalanche | 0.01 AVAX         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |
| Arbitrum  | 0.001 ETH         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |
| Optimism  | 0.001 ETH         | 0.04% - 0.08% of the amount | 0.2%- 1% of the amount |

### Swap Fees/Estimation calculation

The price of source and destination tokens in USD is inquired from coingecko or Binance APIs.\
The fee of each DEX and network cost are inquired from that DEX. Crowdswap fee is calculated as 0.1% of source price in USD.\
All fees are deducted from destination amount except liquidity provider fee which is deducted from source token amount.

###

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-e0b76d46ab185f0843f1311e576e7bb197f8185b%2Fcalculation-fees-table.png?alt=media)

* Gas Price: <https://ethgasstation.info/>
* Gas Cost: Historical gas usage of functions in the target DEX
* Amount In USD: source token amount \* source token price in USD

###

For example, by selecting ETH as source token and AUC as destination token, you can see fees are calculated based on data from estimation.\
Keep in mind that by clicking swap button, a new estimation will be performed based on the best price DEX.

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-c5fd3b83705c35133c2fd51f43f6d741842033f9%2Festimate.png?alt=media)

### Supported Networks and DEXes (current state)

* **Ethereum Network**
  * Uniswap V2
  * Uniswap V3
  * Sushiswap
  * Bancor
  * Balancer
  * Kyber
  * Crypto.com
  * Curve v1
  * Radioshack
  * Dodo

####

* **BSC Network**
  * Pancake
  * Sushiswap
  * Apeswap
  * Biswap
  * Curve v1
  * Radioshack
  * Dodo

####

* **Polygon Network**
  * Quickswap
  * Sushiswap
  * Uniswap V3
  * Apeswap
  * Curve v1
  * Radioshack

####

* **Avalanche Network**
  * Trader Joe
  * Sushiswap
  * Curve v1
  * Radioshack
  * Pangolin
  * Dodo

### Contracts

* Token:
  * Polygon: [0x483dd3425278C1f79F377f1034d9d2CaE55648B6](https://polygonscan.com/token/0x483dd3425278C1f79F377f1034d9d2CaE55648B6)
  * Ethereum: [0xeDCC68Cc8b6Ec3eDE0979f8A52835b238A272027](https://etherscan.io/address/0xedcc68cc8b6ec3ede0979f8a52835b238a272027)
  * Arbitrum: : [0x250Caff618cf205997309940c14C52B5DcEb351E](https://arbiscan.io/address/0x250caff618cf205997309940c14c52b5dceb351e)
  * BSC: [0xA5d4B64a639d93b660cdA04D331374dA1108F8f5](https://bscscan.com/address/0xa5d4b64a639d93b660cda04d331374da1108f8f5)
  * BASE: [0x9e2C392c0B3D75824D735Cb57719AA3B794D1Eb0](https://basescan.org/address/0x9e2C392c0B3D75824D735Cb57719AA3B794D1Eb0)
  * Optimism: [0xBeDf619c69f5C1655E58463B85A4EE67629dE409](https://optimistic.etherscan.io/address/0xbedf619c69f5c1655e58463b85a4ee67629de409)
  * Avalanche: [0x5032fB113dBe54037825d7059740314edE131004](https://snowtrace.io/address/0x5032fB113dBe54037825d7059740314edE131004)
  * zkSync: [0x405a7426277C288E963a9B6Ab2c9E5E6C4b5f05C](https://explorer.zksync.io/address/0x405a7426277C288E963a9B6Ab2c9E5E6C4b5f05C)


# Governance

CROWD tokens are needed for the voting process and staking, among other things. Those who invest their tokens with CrowdSwap benefit from the revenues generated by the project and get to participate in the future of CrowdSwap. The decentralized approach of the project is fundamental to CrowdSwap. Concentrating 20% of the voting rights on one address is not a decentralized approach. Therefore, CrowdSwap provides additional rules that we believe contribute to the decentralization of a DAO:

#### 1. Voting rights of a staker are measured based on quadratic voting

* I.e., if a staker has invested 5 million tokens, he will also benefit from at least 0.5% of the distribution from the sales of the project. However, he can only participate in the governance process with the square root value of the tokens owned.

#### 2. The votes gain weight the more prolonged the tokens remain in the staking

* Each month that tokens remain longer in staking or in the voters' wallet, they are added by a factor + 0.1. I.e. Every year, the voting power of the owner doubles. This way, the voting power can exceed the square root value. And large volumes of CROWD tokens in the staking secure the project and stabilize the token price.

#### 3. Inputs into the project and their total reconciliation

* Every staker can make suggestions for the improvement of the CrowdSwap project. If these are supported by more than 90% of the eligible voters absolutely (each address counts only once), the proposer receives a VIP rank, which increases the number of votes again. Depending on levels yet to be worked out. (double, triple). Furthermore, VIP users can use the comment function to describe the proposals of others in the spirit of the project.

The governance process is the process of voting on changes in the CrowdSwap project. The community takes over after the essential functions of the CrowdSwap DAO have been created. Any change (e.g., development, distribution of fees, use of liquidity reserves) is due to voting for all stakers. The proposed changes are described similarly to the EIP (Ethereum Improvement Protocol) so that everyone eligible to vote can learn about the issue in advance. Only ballots received will count.


# Crowd Token

### Token Distribution

#### Tokens are crucial to any project. At CrowdSwap, we have a fixed total supply of 100,000,000 CROWD tokens that fund the CrowdSwap mission.

![](https://crowdswap.org/wp-content/uploads/2021/07/Token_distribution2-1024x421.png)

### Marketing

#### One of our goals is to bring more people into crypto. The barrier to get involved is increasing as this sector moves forward at a high pace. CrowdSwap not only has an easy-to-use UI for newbies in the space, but we also want to spread knowledge and inform people about unique new possibilities. The marketing portion is well defined to secure our mission. Our fees guarantee that our marketing budget is always healthy.

#### 15% goes into Marketing.\*

### Business Operational ​

#### A great effort in many different areas needs to be organized and valued. This part of the distribution secures the functioning of the project.

#### 10% goes into this area.\*

### Advisors

#### Advisors play a significant role in every project. They are the ones who question everything, who are sometimes annoying to no end, and yet have precisely the same goal. They secure the success of the project. At the same time, the advisors push the project through their participation. The performance of the advisors is entitled to a rightful part in the success.

#### 5% of the token distribution will go to our advisors.\*

### Team

#### The team has put much time, commitment, and hardship into the project in the past. The team should contribute to the further development of CrowdSwap for as long as possible. The token distribution to the team ensures that CrowdSwap has the happiest team members.

#### 10% of the token distribution is kept for the founding team behind CrowdSwap.\*

#### &#x20;

### Sales

#### Sales are divided into pre and public sales.&#x20;

#### 5% of the token goes into pre-sales for venture capital.\*\*

#### 7,5% of the token will be available in public sales on a launch platform.

\*\* tokens that were not sold during pre-sale go into public sale.

### Liquidity

#### 10 million tokens are reserved to provide liquidity on the different networks. Due to the cross-chain approach, we need to provide sufficient liquidity on not only the Ethereum network. Crowd Tokens are utilized to drive the atomic token transfer to other networks.

### Development

#### Development is the heart of CrowdSwap and the place where people implement the project’s goals so that everyone can benefit from it.

#### 25% of the initial token distribution will be spent on development to ensure the CrowdSwap mission.

### Governance & Staking

#### Everybody who is staking more than 5000 CROWD tokens for at least one month is allowed to take part in governance activities that can be subject to various topics. Staking interest is calculated daily on the fee revenue distribution.

#### CrowdSwap takes 5% of the initial token distribution for its own stake.

### Strategic Reserve

#### Strategic reserve as its name says is kept for opportunities that might arise on the path CrowdSwap is going. We have seen many issues come up that nobody thought about a couple of years before. This sector is moving very fast and the unexpected happens more often than not. But this is not only true for issues, but strategic reserve might also come in handy to fund interesting projects, but that also improves CrowdSwap´s features.

#### 7,5% of the token distribution goes into this area.


# Security

Security is the first-class citizen in our architecture. We have used many effective methods to secure our platform. The following sections describe the main concepts of security in three essential parts of our architecture.

## Smart Contracts

We have developed smart contacts using Solidity deployed on the Ethereum based networks. To secure smart contracts against attacks and vulnerabilities, we make these key points:

* Some well-known auditors audit this smart contract
* Write a more secure smart contract code with best practices followed by leading organizations
* Periodically perform smart contract security audits and penetration tests
* Follow a blockchain security checklist
* Run automated security scans on a smart contract
* Use the trusted blockchain tools for design, development, security, auditing and exploiting

## Back-end Services and APIs

CrowdSwap is a DeFi application. So, main features like Swap and wallet management are provided On-Chain. Only the best routing service is hosted as Off-Chain services. We deploy some public APIs in our back-end servers to provide this feature. To secure this part, We use the following features:

* No sensitive data pass from a browser application to back-end services
* APIs are developed as public services, So, there are no vulnerabilities against them
* The hosted servers are protected with Firewalls
* We prevent our service from DOS attack by using a Rate limit service

## UI

We use a web3 provider to communicate with the user wallet and blockchain network. Users pass the final transactions by signing them with their private key using a secure wallet like Metamask.

The CrowdSwap app is developed as a SPA using the Angular framework. The production version is deployed on a CDN. This protects the app from some security attacks. As UI uses some back-end service, all data is passed using the SSL. Also, a couple of methods are used to protect the app against CORS, CSRF and Code Injection attacks.


# VIP Program

This page explains how the VIP Score is calculated and provides a breakdown of all factors involved.

## 1. Criteria and Score Multipliers

* **Hold CROWD:** 0.5
* **CROWD Stake:** 1
* **CROWD Locked Stake:** 1.5
* **CROWD in Opportunity:** 5
  * Notes:
    * CROWD in the Opportunity pool is multiplied by **5**.
    * Rewards earned from Opportunity are multiplied by **1**.
* **Cross-Chain Transactions:** 50
  * Notes:
    * Each cross-chain transaction contributes **50** (It means 50x The transaction's Dollar value).
    * Cross-Chain points are calculated daily and reset every day.

## 2. Rules for LTH (Long-Term Holders)

### Eligibility Criteria for LTH

* The **CROWD** bought and held until **August 21, 2022**, including those purchased during the **Private Sale** and **Public Sale**, will be considered as the **LTH Amount**.
* If **less than 10%** of this LTH Amount has been sold until today, you will be considered a **Long-Term Holder** (LTH).
* **LTH Point** represents the score for CROWD that you have bought and held until now.
* If you qualify as a Long-Term Holder (LTH), your total score will be calculated as:\
  **Total Score = Score based on all your CROWDs (Holding, Staking, ...) + LTH Points**

## 3. VIP Rewards

### Cross-Chain Transaction Bonus

* VIP members share **0.5%** of the revenue generated from cross-chain transactions.
* The transactions must use liquidity from **CrowdSwap liquidity pools** and have **CROWD** as the intermediary token (CROWD Route).

#### Notes

* This excludes CROWD bridges, as most of the revenue from those transactions is allocated to liquidity pools as incentives, with another portion being burned.

### Profit Distribution

* Rewards are distributed **daily** to users based on their **VIP level** and activity.

#### VIP Program Levels

* **Bronze:** 20% revenue share
* **Silver:** 30% revenue share
* **Gold:** 50% revenue share

Your **VIP level** and the **number of points** you have within that level decide how much of the revenue share you receive.

#### Example

* Someone with **3 million points** in the **Gold** level might get **10%** of the **50%** revenue share for Gold.
* Someone with **9 million points** in the same level could get **30%** of the **Gold** revenue share.

#### Key Takeaway

* The more points you have, the bigger your share of the revenue!

## Key Notes

* All multipliers and formulas are applied automatically in the system.
* **CrowdSwap** does not currently generate 0.5% revenue from other routes, but in the future, we may be able to share that with VIP members as well.

## Additional Information

This page will be updated if there are any changes to the rules or score multipliers.

For more information about the **VIP Dashboard** and how to view your score, visit:

<https://app.crowdswap.org/vip>


# Overview

CrowdSwap Tokenmocs and Business Model are built around the project developing into a DAO. This section gives you an overview and security as an investor on how CROWD tokens are distributed and used by the project. Furthermore you get an overview of the vested tokens and when those are being released.

## 1. Total vs. Circulating supply forcast 2025

The diagram gives you a fast overview of the Total to circulating supply for the following two years. We will break down the distribution of CROWD based on liquidity usage down below.

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-409c4af2b56b101d4b8b4619c6bd192303b842f9%2Ftokenomics1.jpg?alt=media)

The diagram shows that the circulating supply will exceed 50% of the total supply already beginning of 2024 resulting in 80% at the end of 2025 reducing the risks of investors.

The strategic reserve of the project will go down to aproximately 100M CROWD tokens that will be distributed into the DAO once the pahse starts.

| Category                     | 2023  |       |       |       | 2024  |       |       |       | 2025  |       |       |       |
| ---------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
|                              | Q1    | Q2    | Q3    | Q4    | Q1    | Q2    | Q3    | Q4    | Q1    | Q2    | Q3    | Q4    |
| New Circulating supply       | 100,6 | 123,7 | 230,8 | 266,8 | 293,3 | 312,8 | 329,3 | 345,8 | 362,3 | 378,8 | 395,3 | 411,8 |
| Total Supply                 | 809   | 749   | 689   | 569   | 569   | 513   | 513   | 513   | 513   | 513   | 513   | 513   |
| optimistic Strategic Reserve | 708,4 | 625,3 | 458,2 | 302,2 | 275,7 | 200,2 | 183,7 | 167,2 | 150,7 | 134,2 | 117,7 | 101,2 |

## 2. Breakdown into different categories of distribution

The following table is a breakdown of the planned distribution of CROWD token until 2025 based on liquidity and incentives, payments for advisors and influencers as well as community events and vested tokens (private sale, team & advisors)

| Category                      | 2023 |     |     |       | 2024 |     |     |     | 2025 |     |     |    |
| ----------------------------- | ---- | --- | --- | ----- | ---- | --- | --- | --- | ---- | --- | --- | -- |
|                               | Q1   | Q2  | Q3  | Q4    | Q1   | Q2  | Q3  | Q4  | Q1   | Q2  | Q3  | Q4 |
| **Incentives**                |      |     |     |       |      |     |     |     |      |     |     |    |
| Staking Incentives\*          |      | 2.5 | 2.5 | 2.5   | 2.5  | 2.5 | 2.5 | 2.5 | 2.5  | 2.5 | 2.5 |    |
| Pool Incentives\*             |      | 12  | 12  | 12    | 12   | 12  | 12  | 12  | 12   | 12  |     |    |
| Cross-chain Distribution\*    |      | 20  | 50  | 20    | 10   |     |     |     |      |     |     |    |
| **Payments**                  |      |     |     |       |      |     |     |     |      |     |     |    |
| Advisors                      | 0.2  | 0.2 | 0.2 | 1     | 1    | 1   | 1   | 1   | 1    | 1   | 1   | 1  |
| Influencers                   | 0.5  | 1   | 1   | 1     | 1    | 1   | 1   | 1   | 1    | 1   | 1   | 1  |
| **Community**\*\*\*           |      |     |     |       |      |     |     |     |      |     |     |    |
| Long-term holder              |      |     | 3   |       |      |     |     |     |      |     |     |    |
| **Vested token distribution** |      |     |     |       |      |     |     |     |      |     |     |    |
| Private Sale                  |      | 14  |     |       |      |     |     |     |      |     |     |    |
| Team& Advisors                |      | 40  |     | 0\*\* |      |     |     |     |      |     |     |    |

1\* Unused CROWD token go into DAO treasury

2\*\* Voluntary burn event - Total supply has been reduced as well (keeping ratio)

3 \*\*\* More community events can be planned from strategic reserve

We assume that the revenue the protocol will reach will take over Incentives as needed to provide enough engagement in non active times. Strategic reserve can be used for any purpose but is due to DAO being established and proposals reach executable amount of votes.

Cross-chain: CROWD token are needed as utility in transfer between chains. The distribution started already and will be goind on until Q2 2024. More chains will be integrated. 100M CROWD token should be enough for the start and will be rebalanced if fragmentation starts to be a problem.

\##3. DAO Phase distribution and revenue stream

Once the DAO has started the revevnue stream will be used to secure the mission of the project and it´s supporters. The following numbers are the starting factors and can be changed based on a valid proposal with appropriate voting and absolut majority.

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-821b29718a57dbbe963faf418fe88cdd9457b824%2Ftokenomics2-fee_distribution.jpg?alt=media)

Before any distribution expenses have to be payed!

Staking option will be open to sCROWD holders only.

The liquidity section is used to reward liquidity providers and pay incentives for staking.

Burn/Buy can be used to reduce the total supply of CROWD further.

Anyway Staking, Liquidity and Burn/Buy streams can be used to buy valuable token from the market and store these as treasury for winter times. This proposal should always be considered voting upon on a monthly basis.


# Overview

### Introduction

CrowdSwap provides dozens of APIs that help DeFi apps to be more tangible for end users.

* Finding the best route and dex for swapping is one of these APIs. We've been trying to create and update a list of the most profitable dexes and offer them to our users.
* Cross-chain swap is another service that let users to swap their assets between different chains. Similar to swap, we tried to provide an API that simplifies the process of swapping in a way that end users do not need to worry about cross-chain steps.

Before explaining more about the details of the API, here is the link of endpoints in the swagger format: [Swagger UI](/developers/api)

### API Key

In order to use CrowdSwap's API, you should send a request via this link: [Request API Key](https://docs.google.com/forms/d/e/1FAIpQLScnLpbly_9_4FoiOmS4VHFpWFQzQXSLZa-Eenb-wl15-mehJg/viewform?usp=sf_link)

### Connect wallet

You can connect your dApp to a wallet like this:

```
npm install web3

npm install --save web3modal
```

This code is for Angular:

```javascript
import { Injectable } from '@angular/core';
import Web3 from "web3";
import Web3Modal from "web3modal";
import WalletConnectProvider from "@walletconnect/web3-provider";
import { Subject } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class ContractService {
  private web3js: any;
  private provider: any;
  private accounts: any;
  web3Modal

  private accountStatusSource = new Subject<any>();
  accountStatus$ = this.accountStatusSource.asObservable();

  constructor() {
    const providerOptions = {
      walletconnect: {
        package: WalletConnectProvider, // required
        options: {
          infuraId: "INFURA_ID" // required
        }
      }
    };

    this.web3Modal = new Web3Modal({
      network: "mainnet", // optional
      cacheProvider: true, // optional
      providerOptions, // required
    });
  }

  async connectAccount() {
    this.web3Modal.clearCachedProvider();

    this.provider = await this.web3Modal.connect(); // set provider
    this.web3js = new Web3(this.provider); // create web3 instance
    this.accounts = await this.web3js.eth.getAccounts();
    this.accountStatusSource.next(this.accounts)
  }

}
```

Then you can see a modal like this:

![](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-78734e4c7f1636c03798e868c07a8bd0b1c4e168%2Fconnect-wallet-modal.png?alt=media)


# Swagger

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/swap/estimate-all" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/swap/{dex}" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/crossChainSwap/estimate-all" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/investByToken" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/investByTokenAAndTokenB" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/investByTokenAOrTokenB" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/investByLP" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/leaveByLP" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/getDetails/{opportunity}" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}

{% openapi src="/files/aPcLbXE4hCYlz9TgBpGQ" path="/api/v1/opportunity/{opportunity}/crossChainEstimation" method="get" %}
[swagger.json](https://2902265042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mi75UBPqZIbtHh_kkrQ%2Fuploads%2Fgit-blob-af2c21866778bee04db50daccbfe3b4d7a28e7a6%2Fswagger.json?alt=media)
{% endopenapi %}


# Swap & Cross-Chain

## Swap

### Estimation

This endpoint retrieves a list of decentralized exchanges (dexes) where the selected pair can be swapped. The list is sorted by profit, so we recommend choosing the first dex in the list.

```
curl -X 'GET' 'https://api.crowdswap.org/api/v1/swap/estimate-all?fromToken%5Baddress%5D=0x0000000000000000000000000000000000001010&fromToken%5BchainId%5D=137&fromToken%5Bdecimals%5D=18&fromToken%5Bname%5D=Matic%20Token&fromToken%5Bsymbol%5D=MATIC&toToken%5Baddress%5D=0x483dd3425278C1f79F377f1034d9d2CaE55648B6&toToken%5BchainId%5D=137&toToken%5Bdecimals%5D=18&toToken%5Bname%5D=Crowd%20Token&toToken%5Bsymbol%5D=CROWD&amount=1000000000000000000' \
  -H 'accept: application/json'
  -H 'x-api-key: YOUR_API_KEY'
```

#### Request

| Field                | Description                                                                                         | Example                                    |
| -------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| fromToken\[address]  | Address of source token                                                                             | 0x0000000000000000000000000000000000001010 |
| fromToken\[chainId]  | Chain id of source token                                                                            | 137                                        |
| fromToken\[decimals] | Decimals of source token                                                                            | 18                                         |
| fromToken\[name]     | Name of source token                                                                                | Matic Token                                |
| fromToken\[symbol]   | Symbol of source token                                                                              | MATIC                                      |
| toToken\[address]    | Address of destination token                                                                        | 0x483dd3425278C1f79F377f1034d9d2CaE55648B6 |
| toToken\[chainId]    | Chain id of destination token                                                                       | 137                                        |
| toToken\[decimals]   | Decimals of destination token                                                                       | 18                                         |
| toToken\[name]       | Name of destination token                                                                           | Crowd Token                                |
| toToken\[symbol]     | Symbol of destination token                                                                         | CROWD                                      |
| amount               | An amount of the source token to be swapped (The decimal of token must be considered in the amount) | 1000000000000000000                        |

#### Response

```
{​
  "successfulEstimationsList": [​
    {​
      "swapName": "string",​
      "delegatedDex": "string",​
      "fromToken": "string",​
      "fromTokenPrice": "string",​
      "toToken": "string",​
      "toTokenPrice": "string",​
      "amountIn": "string",​
      "amountOut": "string",​
      "minAmountOut": "string",​
      "route": "string",​
      "reserves": [​
        "string"​
      ],​
      "priceImpact": "string",​
      "poolInfo": "string",​
      "swapFee": "string",​
      "networkFee": "string",​
      "gasPrice": "string",​
      "currentDexFeePercentage": "string",​
      "crowdswapFeePercentage": "string",​
      "swapFeeInUSDT": "string",​
      "networkFeeInUSDT": "string",​
      "crowdswapFeeInUSDT": "string",​
      "totalFeeInUSDT": "string",​
      "pricePerToken": "number",​
      "cost": "number",​
      "totalPaidInUSDT": "string",​
      "totalIncomeInUSDT": "string",​
      "amountOutInUSDT": "string",​
      "amountInInUSDT": "string",​
      "amountOutPerAmountInRatio": "string",​
      "amountInPerAmountOutRatio": "string",​
      "approveAddress": "string",​
      "tradeType": "number",​
      "trade": {}​
    }​
  ]​
​}
```

### Transaction

This endpoint returns `from`, `to`, `data`, `value`, and `gasLimit`, all of which needed for executing a swap.

* A dex name must be added to the url. The dex name can be found in estimation response e.g., CrowdSwapV2, Quickswap

```
curl -X 'GET' \
  'https://api.crowdswap.org/api/v1/swap/{dex}?fromToken%5Baddress%5D=0x0000000000000000000000000000000000001010&fromToken%5BchainId%5D=137&fromToken%5Bdecimals%5D=18&fromToken%5Bname%5D=Matic%20Token&fromToken%5Bsymbol%5D=MATIC&toToken%5Baddress%5D=0x483dd3425278C1f79F377f1034d9d2CaE55648B6&toToken%5BchainId%5D=137&toToken%5Bdecimals%5D=18&toToken%5Bname%5D=Crowd%20Token&toToken%5Bsymbol%5D=CROWD&amount=1000000000000000000&userAddress=0x000000000000000000000000000000000000000&receiverAddress=0x000000000000000000000000000000000000000' \
  -H 'accept: application/json'
  -H 'x-api-key: YOUR_API_KEY'
```

#### Request

| Field                | Description                                                                              | Example                                    |
| -------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------ |
| fromToken\[address]  | Address of source token                                                                  | 0x0000000000000000000000000000000000001010 |
| fromToken\[chainId]  | Chain id of source token                                                                 | 137                                        |
| fromToken\[decimals] | Decimals of source token                                                                 | 18                                         |
| fromToken\[name]     | Name of source token                                                                     | Matic Token                                |
| fromToken\[symbol]   | Symbol of source token                                                                   | MATIC                                      |
| toToken\[address]    | Address of destination token                                                             | 0x483dd3425278C1f79F377f1034d9d2CaE55648B6 |
| toToken\[chainId]    | Chain id of destination token                                                            | 137                                        |
| toToken\[decimals]   | Decimals of destination token                                                            | 18                                         |
| toToken\[name]       | Name of destination token                                                                | Crowd Token                                |
| toToken\[symbol]     | Symbol of destination token                                                              | CROWD                                      |
| amount               | An amount of input tokens to swap (the entrance amount must be based on token's decimal) | 1000000000000000000                        |
| userAddress          | Address of the user who initiates the swap transaction                                   | any arbitrary address                      |
| receiverAddress      | Address of the recipient if it is different from the userAddress                         | any arbitrary address                      |

#### Response

```
{
  "from": "string",
  "to": "string",
  "data": "string",
  "value": "string",
  "gasLimit": "string"
}
```

## Cross-Chain

### Estimation and Transaction

This endpoint finds a route with potentially the best possible outcome for the requested cross-chain pair and returns an estimation.

```
curl -X 'GET' \
  'https://api.crowdswap.org/api/v1/crossChainSwap/estimate-all?fromToken%5Baddress%5D=0x0000000000000000000000000000000000001010&fromToken%5BchainId%5D=137&fromToken%5Bdecimals%5D=18&fromToken%5Bname%5D=Matic%20Token&fromToken%5Bsymbol%5D=MATIC&toToken%5Baddress%5D=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE&toToken%5BchainId%5D=56&toToken%5Bdecimals%5D=18&toToken%5Bname%5D=Binance%20Coin&toToken%5Bsymbol%5D=BNB&amountIn=1000000000000000000' \
  -H 'accept: application/json'
  -H 'x-api-key: YOUR_API_KEY'
```

#### Request

| Field                | Description                                                                                    | Example                                    |
| -------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------ |
| fromToken\[address]  | Address of source token                                                                        | 0x0000000000000000000000000000000000001010 |
| fromToken\[chainId]  | Chain id of source token                                                                       | 137                                        |
| fromToken\[decimals] | Decimals of source token                                                                       | 18                                         |
| fromToken\[name]     | Name of source token                                                                           | Matic Token                                |
| fromToken\[symbol]   | Symbol of source token                                                                         | MATIC                                      |
| toToken\[address]    | Address of destination token                                                                   | 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE |
| toToken\[chainId]    | Chain id of destination token                                                                  | 56                                         |
| toToken\[decimals]   | Decimals of destination token                                                                  | 18                                         |
| toToken\[name]       | Name of destination token                                                                      | Binance Coin                               |
| toToken\[symbol]     | Symbol of destination token                                                                    | BNB                                        |
| amountIn             | An amount of `fromToken` to be swapped (The decimal of token must be considered in the amount) | 1000000000000000000                        |
| userAddress          | Address of the user who initiates the cross-chain swap transaction                             | any arbitrary address                      |

#### Response

```
{
  "crossChainName": "string",
  "tokenIn": {
    "address": "string",
    "chainId": "number",
    "decimals": "number",
    "amount": "string",
    "symbol": "string"
  },
  "tokenOut": {
    "address": "string",
    "chainId": "number",
    "decimals": "number",
    "amount": "string",
    "symbol": "string"
  },
  "amountIn": "string",
  "amountOut": "string",
  "minAmountOut": "string",
  "approveAddress": "string",
  "status": "number",
  "msg": "string",
  "swapTx": {
    "to": "string",
    "data": "number",
    "value": "number",
    "gasLimit": "string"
  },
  "fees": {
    "token": {
      "address": "string",
      "chainId": "number",
      "decimals": "number",
      "name": "string",
      "symbol": "string"
    },
    "amount": "string",
    "type": "number"
  },
  "includedInOutputFees": {
    "token": {
      "address": "string",
      "chainId": "number",
      "decimals": "number",
      "name": "string",
      "symbol": "string"
    },
    "amount": "string",
    "type": "number"
  },
  "swapSpecData": {}
}
```

## How to send a transaction

Both `Swap` and `Cross-Chain` APIs return the data needed for executing a transaction. The data, which named `tx` in below code, contains `from (user address)`, `to (contract address)`, `data (populated data)`, `value (coin value if needed)`, `gasLimit`. You can use below code to run your transaction.

To send a transaction, you can get `tx` from the response of Swap and Cross-Chain end-points.

```javascript
import { ExternalProvider, Web3Provider } from '@ethersproject/providers';

export class TransactionService{
  private provider?: Web3Provider;

  constructor(){
    this.provider = new Web3Provider(provider as ExternalProvider, 'any');
  }

  function sendTransaction(tx){
    this.provider?.getSigner().sendTransaction(tx);
  }
}
```


# Swap Widget

The CrowdSwap Swap Widget is a versatile tool that seamlessly integrates with other applications, providing users with a powerful and user-friendly decentralized finance (DeFi) experience. This innovative widget allows users to access and interact with decentralized exchanges, swapping functionalities, and cross-chain ability directly from their favorite apps.

Integrating the CrowdSwap Swap Widget into your project is a straightforward process that brings the power of cross-chain swaps to your application. By utilizing the standalone component approach, you can seamlessly embed the widget's functionality without requiring extensive technical know-how.

## Here is how you can do it in just a few steps:

### Include Resources

In your HTML file's section, place the widget's HTML tag. Customize the configurations like fromTokenAddress, fromChainId, toTokenAddress, toChainId, and theme to match your requirements. Finally, include the widget's JavaScript file at the end of the section. This file will load the widget's assets and make it interactive on your webpage.

Following these simple steps, you can seamlessly integrate the CrowdSwap Swap Widget into your project, enabling your users to engage in cross-chain swaps easily. This approach ensures that your application benefits from advanced functionality without the complexities of building it from scratch.

## A step-by-step guide to integrating the CrowdSwap Swap Widget into your project

### Add the Widget Element

In your HTML file's `<body>` section, add the `<crowdswap-swap-widget>` element to embed the CrowdSwap Swap Widget. This element will include the configuration parameters for the widget.

```
<crowdswap-swap-widget
  id="crowdswapWidget"
  config='{
    "fromTokenAddress":"0x0000000000000000000000000000000000001010",
    "fromChainId":137,
    "toTokenAddress":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
    "toChainId":56,
    "theme":"light",
    "affiliateId":"your affiliate Id"
}'></crowdswap-swap-widget>
```

| property name    | description                                                          |
| ---------------- | -------------------------------------------------------------------- |
| fromTokenAddress | default from token for first time visitors                           |
| fromChainId      | default network that will be looked up for from token address        |
| toTokenAddress   | default to token for first time visitors                             |
| toChainId        | default network that will be looked up for to token address          |
| theme            | can be light or dark. This will make the widget's look light or dark |
| affiliateId      | your Affiliate IDs                                                   |

You can receive your affiliate ID by using this [link ](https://crowdswap.org/ambassador-program/).

By using the affiliate ID key, you will earn commission whenever any user registers and trades through your website. This commission is usually calculated based on the trading volume. By using an affiliate ID, CrowdSwap can track your performance and deposit earned commission amount into your account.

Make sure to replace the fromTokenAddress, fromChainId, toTokenAddress, and toChainId values with the appropriate token addresses and chain IDs.

### Include the Widget Script

At the end of the `<body>` section, include the widget's script just before the closing `</body>` tag. This script will initialize and render the widget:

```
<script src="https://widget.crowdswap.org/loadAssets.js"></script>
```

### Test and Verify

Save your HTML file and open it in a web browser. You should see the CrowdSwap Swap Widget, and users can interact with it to perform swaps.

### Custom Splash Loading (Optional)

To customize the splash loading, start by adding the CSS code snippet to your CSS file:

```
.app-splash-screen {
    display: none !important;
}
```

Next, create your splash loading within an HTML tag with the given ID (below), so that the functions can work properly:

```
<div id="splash-div"></div>
```

Using this easy step-by-step guide, you can integrate the CrowdSwap Swap Widget into your project and bring the power of cross-chain swaps to your business and application.


# Smart Contract


