# 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="/files/311Ym1AQL3YkNfl0hhoB" 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="/files/bTiui6LV6mGUWSvo4Kqv" 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="/files/bTiui6LV6mGUWSvo4Kqv" 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="/files/Br31WqjvHKFz4679EG2i" 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="/files/nLf0WQvjkswpBJZ2asaU" 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="/files/nLf0WQvjkswpBJZ2asaU" 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.exa.community/getting-started/protocol.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
