# Protocol

## Empowering users <a href="#empowering-users" id="empowering-users"></a>

The EXA Market protocol introduces a new range of possibilities for peer-to-peer trading on the Algorand network.

The protocol allows users to:

* **Trade both NFTs and fungible tokens**
  * Unlike Ethereum where NFTs use ERC721/ERC1155 standards and fungible tokens use the ERC20 standard, Algorand assets share the same standard called [ASA (Algorand Standard Assets)](https://developer.algorand.org/docs/get-details/asa/). This gives the ability to natively support a wide range of operations without any extra layer.
* **Exchange up to 4 assets\* at once (bundle of assets)**
  * Up to 4 assets can be bundled for sales at the moment.
  * For instance: a user could sell (ASA 1 + ASA 2 + ASA 3 + 100 ALGO) for (ASA 4).
  * Important to point out that the 4 assets limit could be extended in the future according to market needs.
* **Sell NFT for any type of assets**
  * Users are not just limited to the native ALGO payment token, any type of ASA can be used as a payment method thus enabling NFT to NFT trades by design.
* **Make offers**
  * Negotiate with any user for both NFTs and fungible tokens.
* **Perform standard sales, auctions and multi-mints.**

{% hint style="info" %}
**\***&#x61;ssets here refer to NFTs and fungible tokens.
{% endhint %}

## Sales types <a href="#sales-types" id="sales-types"></a>

As mentioned in the last section standard sales, auctions and multi-mints can be performed.

### **Standard sales**

Baskets\* are sold for a fixed price specified by the seller. This sale can be made public (to the market) or private (to a specific user) and can have start and end listing dates.

{% hint style="info" %}
\*basket(s) represent(s) the container(s) whereby assets are sold
{% endhint %}

### **Auctions**

1. **Normal auction** – Potential buyers bid in an auction in order to claim the assets in the basket, and the highest bidder wins.
2. **Reverse/dutch auction** – The price of a basket is reduced according to the progression of time.

### Multi-mints

A basket containing a supply of a single asset type, where different buyers can purchase portions of the supply available.<br>

## Creator fees <a href="#algorand-inheritance" id="algorand-inheritance"></a>

The Creator sets its fee (up to 15%) globally on-chain using its Creator Address. That means that all assets created by this address will be governed by this fee.\
​\
In addition to earning royalties in ALGO, Creators could also earn royalties over time in the following currencies, if they have opted-in the assets.\
\
Here is the list of assets that the protocol currently supports as means of payment:

| Asset   | ASA ID                                                           |
| ------- | ---------------------------------------------------------------- |
| ALGO    | N/A                                                              |
| USDC    | [31566704](https://explorer.perawallet.app/assets/31566704/)     |
| USDT    | [312769](https://explorer.perawallet.app/assets/312769/)         |
| gALGO   | [793124631](https://explorer.perawallet.app/assets/793124631/)   |
| goBTC   | [386192725](https://explorer.perawallet.app/assets/386192725/)   |
| goETH   | [386195940](https://explorer.perawallet.app/assets/386195940/)   |
| goUSD   | [672913181](https://explorer.perawallet.app/assets/672913181/)   |
| AKTA    | [523683256](https://explorer.perawallet.app/assets/523683256/)   |
| xUSD    | [760037151](https://explorer.perawallet.app/assets/760037151/)   |
| PEPE    | [1096015467](https://explorer.perawallet.app/assets/1096015467/) |
| COOP    | [796425061](https://explorer.perawallet.app/assets/796425061/)   |
| mALGO   | [1185173782](https://explorer.perawallet.app/assets/1185173782/) |
| GORA    | [1138500612](https://explorer.perawallet.app/assets/1138500612/) |
| EURS    | [227855942](https://explorer.perawallet.app/asset/227855942/)    |
| COSG    | [1065092715](https://explorer.perawallet.app/assets/1065092715/) |
| Finite  | [400593267](https://explorer.perawallet.app/asset/400593267/)    |
| BLOOM   | [1930070705](https://explorer.perawallet.app/asset/1930070705/)  |
| META    | [712012773](https://explorer.perawallet.app/asset/712012773/)    |
| SILVER$ | [246519683](https://explorer.perawallet.app/asset/246519683/)    |
| GOLD$   | [246516580](https://explorer.perawallet.app/asset/246516580/)    |

### Listing of a single asset

Let’s say Creator has created 10 NFTs with Creator Address and sets its royalty to 8%. All of these NFTs will have a 8% royalty attached to them, meaning that 8% of the listing price will be paid to Creator whenever a sale occur.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/qvZPqKXvfiH9IwYkryWF/listing%20an%20asset.png" alt="" width="563"><figcaption></figcaption></figure>

#### Case study 1 <a href="#h_15e44d01be" id="h_15e44d01be"></a>

Seller lists an NFT from Creator for 100 ALGO.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/OwT0lwBVDGScltcuAvYC/single%20listing.png" alt="" width="563"><figcaption><p>Listing for 100 ALGO</p></figcaption></figure>

Buyer purchases the NFT:

* 8 ALGO goes to Creator
* 1.99 ALGO goes to Platform fee
* 90.01 ALGO goes to Seller

#### Case study 2

Seller lists an NFT from Creator for 200 USDC.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/OwT0lwBVDGScltcuAvYC/single%20listing.png" alt="" width="563"><figcaption><p>Listing for 200 USDC</p></figcaption></figure>

Buyer purchases the NFT:

* 16 USDC goes to Creator
* 3.98 USDC goes to Platform fee
* 180.02 USDC goes to Seller

{% hint style="warning" %}
Note that if the Creator has not opted-in USDC, the royalties will be sent to the Platform fee address. This is applicable for any ASA (USDC, USDT, gALGO, goBTC, goETH…etc).
{% endhint %}

### Listing of a bundle of assets

The EXA protocol allows users to create bundles of up to 4 assets but how do the royalties are computed? Especially for bundles with assets from different Creators? \
Let’s find out in this section. ​ \
\
The royalties are computed according to the following formula:

$$
R = \frac{P}{N}\sum\_{i}^{N} r\_{i}
$$

* $$R$$ is the total royalties a Buyer will pay to the Creators
* $$P$$ is the price of the listing
* $$N$$ is the number of assets with a Creator fee set (> 0%)
* $$r\_{i}$$ is the royalty of asset of index i

#### Case study 1 <a href="#h_51dd924ce5" id="h_51dd924ce5"></a>

Seller lists a bundle of 3 NFTs from Creator for 100 ALGO. ​ \
\
Creator has 5% royalties set.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/UiBDvyOFzwaVwIAa0oq2/bundle%20a.png" alt="" width="563"><figcaption><p>Bundle of 3 NFTs listed for 100 ALGO</p></figcaption></figure>

Buyer purchases the NFT:

* 5 ALGO goes to Creator

$$
R = \frac{100}{3}\sum\_{1}^{3} r\_{i}=\frac{100}{3}\ \times (r\_{1}+r\_{2}+r\_{3})=\frac{100}{3}\ \times (0.05+0.05+0.05)=5
$$

* 1.99 ALGO goes to Platform fee
* 93.01 ALGO goes to Seller

#### Case study 2 <a href="#h_fec47fe1d5" id="h_fec47fe1d5"></a>

Seller lists a bundle of 3 NFTs from Creator1, Creator2, and Creator3 for 100 ALGO.\
​

Creator1 has 9% royalties set.\
Creator2 has 4% royalties set.\
Creator3 has 8% royalties set.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/feYuCvBAyKh23nGhBPjU/bundle%20b.png" alt="" width="563"><figcaption><p>Bundle of 3 NFTs listed for 100 ALGO</p></figcaption></figure>

Buyer purchases the NFT:

* 7 ALGO in royalties goes to the Creators (Creator1, Creator2, and Creator3)

$$
R = \frac{100}{3}\sum\_{1}^{3} r\_{i}=\frac{100}{3}\ \times (r\_{1}+r\_{2}+r\_{3})=\frac{100}{3}\ \times (0.09+0.04+0.08)=7
$$

* 3 ALGO goes to Creator1
* 1.33 ALGO goes to Creator2
* 2.66 ALGO goes to Creator3
* 1.99 ALGO goes to Platform fee
* 91.01 ALGO goes to Seller

#### Case study 3 <a href="#h_431a39c6b1" id="h_431a39c6b1"></a>

Seller lists a bundle of 3 NFTs from Creator1, Creator2, and Creator3 for 100 ALGO.\
​

Creator1 has 9% royalties set.\
Creator2 has 4% royalties set.\
Creator3 has 0% royalties set.

<figure><img src="https://content.gitbook.com/content/MIPbG7fpxliRhzq9owmJ/blobs/feYuCvBAyKh23nGhBPjU/bundle%20b.png" alt="" width="563"><figcaption><p>Bundle of 3 NFTs listed for 100 ALGO</p></figcaption></figure>

Buyer purchases the NFT:

* 6.5 ALGO in royalties goes to the Creators (Creator1, and Creator2)

$$
R = \frac{100}{2}\sum\_{1}^{2} r\_{i}=\frac{100}{2}\ \times (r\_{1}+r\_{2})=\frac{100}{2}\ \times (0.09+0.04)=6.5
$$

* 4.5 ALGO goes to Creator1
* 2 ALGO goes to Creator2
* 0 ALGO goes to Creator3
* 1.99 ALGO goes to Platform fee
* 91.51 ALGO goes to Seller

## Markets

| Market    | Sales type                            | Platform fee |
| --------- | ------------------------------------- | ------------ |
| Primary   | Standard sales, Auctions, Multi-mints | 3.99%        |
| Secondary | Standard sales, Auctions              | 1.99%        |

## Algorand inheritance <a href="#algorand-inheritance" id="algorand-inheritance"></a>

Being built on Algorand, the protocol natively inherits essential features such as:

* **Low gas fee**
  * Network fees cost less than a penny. This limits the risk of paying more fees than the value of the asset itself, opening the doors to new users and use cases.
* **Low carbon footprint**
  * Its [Pure Proof of Stake (PPoS)](https://www.algorand.com/technology/algorand-protocol) consensus algorithm makes Algorand a sustainable blockchain with very low power consumption in contrast to other chains. In addition to that it offsets its additional carbon footprint with environment-focused organizations (more details provided [here](https://www.algorand.com/resources/blog/how-algorand-offsets-carbon-footprint)).
* **Low block confirmation time**
  * It takes less than 3 seconds for a transaction to get validated.
