# Mint Permissions Functions

## Mint Permissions Contract Functions

<details>

<summary>approveMint</summary>

*Gets approval to mint*

<mark style="color:blue;">Input Parameters: extension address, address, tokenID</mark>

ERC721

```solidity
interface IERC721CreatorMintPermissions is IERC165 {

    /**
     * @dev get approval to mint
     */
    function approveMint(address extension, address to, uint256 tokenId) external;
}
```

ERC1155

```solidity
interface IERC1155CreatorMintPermissions is IERC165 {

    /**
     * @dev get approval to mint
     */
    function approveMint(address extension, address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) external;
}
```

</details>

## Setting Mint Permissions

<details>

<summary>setMintPermissions</summary>

*Adds a Mint Permissions contract to a registered extension contract*

<mark style="color:blue;">Input Parameters: extension address, mint permissions contract address</mark>

```solidity
function setMintPermissions(address extension, address permissions) external override adminRequired {
        _setMintPermissions(extension, permissions);
    }
```

</details>
