# 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>)
