> For the complete documentation index, see [llms.txt](https://xpansionchain-1.gitbook.io/xpansionchain/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xpansionchain-1.gitbook.io/xpansionchain/overview-of-xpansionchain/what-can-you-build-on-it.md).

# What can you build on it ?

## What can you build on it?

XpansionChain allows you to create applications on layer 2 by interacting with its <mark style="color:blue;">API</mark> and <mark style="color:blue;">developer tools</mark>. It provides the key functionality you'll need to build Web3 games or NFT applications without having to deploy your own complicated smart contracts.

Before starting to build on XpansionChain, it's important to understand:

* <mark style="color:blue;">What functionality does your application need?</mark>
* <mark style="color:blue;">Does XpansionChain provide this functionality?</mark>

### What functionality do Web3 games and applications typically need?[​](https://docs.x.immutable.com/docs/x/what-can-you-build#what-functionality-do-web3-games-and-applications-typically-need) <a href="#what-functionality-do-web3-games-and-applications-typically-need" id="what-functionality-do-web3-games-and-applications-typically-need"></a>

**There are two main types:**[**​**](https://docs.x.immutable.com/docs/x/what-can-you-build#there-are-two-main-types)

1. <mark style="color:blue;">Facilitate user transactions</mark>
2. <mark style="color:blue;">Retrieve data about current state and historical transactions</mark>

#### 1. Facilitate user transactions[​](https://docs.x.immutable.com/docs/x/what-can-you-build#1-facilitate-user-transactions) <a href="#id-1-facilitate-user-transactions" id="id-1-facilitate-user-transactions"></a>

These enable users to *do things* that update state on the blockchain. These transactions include:

* Buying and selling assets
* Minting NFTs
* Transferring assets to other users
* Depositing assets to L2 (ie. ERC20 tokens)

These transactions require user signatures to authorize because they update state on the blockchain (as opposed to simply reading data).

**Examples and use cases:**[**​**](https://docs.x.immutable.com/docs/x/what-can-you-build#examples-and-use-cases)

<table><thead><tr><th width="181.33333333333331">Example</th><th width="263">Description</th><th>Use cases</th></tr></thead><tbody><tr><td>Minting assets</td><td>Minting assets simply means to call a function in a token smart contract that brings into existence new tokens.<br><br>Users can mint an asset either for themselves, or another user.</td><td><ul><li>Creators can launch a collection of NFTs on a website that users can mint from</li><li>Games can release a new category of in-game items and allow players to mint them</li></ul></td></tr><tr><td>Creating orders</td><td>An order is a sale listing. It can be created by users who want to sell an asset that they own. They can specify things like price, sale period, etc.</td><td><ul><li>A marketplace wanting to allow users to put their assets up for sale so that other users can buy them.</li><li>Games can create their own in-game marketplace, allowing players to sell in-game items that they own.</li></ul></td></tr><tr><td>Creating trades</td><td>A trade is simply filling an order. A user executes a trade by agreeing to purchase an asset at the terms specified in the order and then becomes the new owner of the asset.</td><td><ul><li>An NFT marketplace can display assets for sale and enable users to buy them.</li><li>An exchange can allow users to trade their fungible (ERC-20) tokens.</li><li>Games can allow players to buy assets from other players in their own in-game marketplace.</li></ul></td></tr><tr><td>Transfers</td><td>A user can transfer the ownership of an asset that they own to another user.</td><td><ul><li>Games may allow players to give assets to each other.</li><li>Games might mint a collection of in-game items and transfer them to players based on the fulfilment of certain achivements.</li></ul></td></tr><tr><td>Deposit assets from L1 to L2</td><td>Deposits are when users transfer assets that they own on layer 1 to layer 2 (ie. ETH or ERC20 tokens)<br></td><td><ul><li>An NFT marketplace can implement a 'bridging mechanism' which allows users to transfer ETH that they own from L1 to L2 so that they can purchase assets on L2</li></ul></td></tr></tbody></table>

#### 2. Retrieve data about current state and historical transactions[​](https://docs.x.immutable.com/docs/x/what-can-you-build#2-retrieve-data-about-current-state-and-historical-transactions) <a href="#id-2-retrieve-data-about-current-state-and-historical-transactions" id="id-2-retrieve-data-about-current-state-and-historical-transactions"></a>

Applications often need to provide information about the current state (ie. who owns which assets) and historical transactions (ie. past owners of an asset, previous sales of an asset) on a blockchain. This information can be used for analysis purposes, or to provide users with the information they need in order to execute a transaction (ie. an NFT marketplace application providing information on current sale orders enables users to be able to create a trade that fills the order - purchases the asset).

**Examples and use cases:**[**​**](https://docs.x.immutable.com/docs/x/what-can-you-build#examples-and-use-cases-1)

<table><thead><tr><th width="140.33333333333331">Example</th><th>Description</th><th>Examples of use</th></tr></thead><tbody><tr><td>Asset data</td><td>Details about non-fungible tokens on XpansionChain, like metadata, image URL, current owner, etc.</td><td><ul><li>NFT marketplaces display the details of an asset that is listed for sale so that buyers know what they are purchasing</li><li>Game mechanics utilize the attributes of an in-game asset in order to know what action to execute</li></ul></td></tr><tr><td>Order data</td><td>Details about orders, like sale price, sale period, etc.</td><td><ul><li>NFT marketplaces will list orders in order to show buyers what is for sale and provide them with the opportunity to purchase</li></ul></td></tr><tr><td>User data</td><td>Details about users, like the types of tokens they own and the balance of each token.</td><td><ul><li>Wallet applications can display to their users their token balances</li><li>Marketplaces can let users know that an attempt to purchase an asset will fail because the user has insufficient tokens to fulfil the order</li></ul></td></tr></tbody></table>

### What functionality does XpansionChain provide?[​](https://docs.x.immutable.com/docs/x/what-can-you-build#what-functionality-does-immutable-x-provide) <a href="#what-functionality-does-immutable-x-provide" id="what-functionality-does-immutable-x-provide"></a>

Our <mark style="color:blue;">basic guides</mark> cover the key functionality provided for by the XpansionChain platform.

For the full list of functionality, please see our <mark style="color:blue;">API reference</mark>.

#### ⚒️ Get started building[​](https://docs.x.immutable.com/docs/x/what-can-you-build#%EF%B8%8F-get-started-building) <a href="#get-started-building" id="get-started-building"></a>

XpansionChain provide SDKs which are a wrapper around the API functions and make it easy for developers to integrate XpansionChain with their application's particular language or framework.

For more information on the SDKs that we have and how they work together, please see <mark style="color:blue;">here.</mark>

GUIDES:📘 <mark style="color:blue;">Launch a collection</mark>\ <mark style="color:blue;">📘 Basic guides</mark>
