> 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/launch-a-collection/smart-contract-requirements-for-minting-on-layer-2.md).

# Smart contract requirements for minting on layer 2

## Smart contract requirements for minting on layer 2

In order to mint tokens from a smart contract on XpansionChain's layer 2, there needs to be a deployed token smart contract on L1 with certain properties. These are:

* Must be a non-fungible token contract (read more here)
* Must have a `mintFor()` function that allows other contracts to mint on its behalf (<mark style="color:blue;">see how to implement this</mark>)
