> ## Documentation Index
> Fetch the complete documentation index at: https://docs.story.foundation/llms.txt
> Use this file to discover all available pages before exploring further.

# NFT Client

> Used to mint a new SPG collection for use with Story.

## NFTClient

### Methods

* create\_nft\_collection
* get\_mint\_fee\_token
* get\_mint\_fee

### create\_nft\_collection

Creates a new SPG NFT Collection.

| Method                  |
| ----------------------- |
| `create_nft_collection` |

Parameters:

* `name`: The name of the collection.
* `symbol`: The symbol of the collection.
* `is_public_minting`: If true, anyone can mint from the collection. If false, only the addresses with the minter role can mint.
* `mint_open`: Whether the collection is open for minting on creation.
* `mint_fee_recipient`: The address to receive mint fees.
* `contract_uri`: The contract URI for the collection. Follows ERC-7572 standard. See [here](https://eips.ethereum.org/EIPS/eip-7572).
* `base_uri`: \[Optional] The base URI for the collection. If baseURI is not empty, tokenURI will be either baseURI + token ID (if nftMetadataURI is empty) or baseURI + nftMetadataURI.
* `max_supply`: \[Optional] The maximum supply of the collection.
* `mint_fee`: \[Optional] The cost to mint a token.
* `mint_fee_token`: \[Optional] The token to mint.
* `owner`: \[Optional] The owner of the collection.
* `tx_options`: \[Optional] Transaction options dictionary.

<CodeGroup>
  ```python Python theme={null}
  # Create a new SPG NFT collection
  #
  # NOTE: Use this code to create a new SPG NFT collection. You can then use the
  # `new_collection["nft_contract"]` address as the `nft_contract` argument in
  # functions like `mint_and_register_ip_asset_with_pil_terms` in the Story SDK.
  #
  # You will mostly only have to do this once. Once you get your nft contract address,
  # you can use it in SPG functions.
  #
  new_collection = story_client.NFTClient.create_nft_collection(
    name="Test NFT",
    symbol="TEST",
    is_public_minting=True,
    mint_open=True,
    mint_fee_recipient="0x0000000000000000000000000000000000000000",  # Zero address
    contract_uri=""
  )

  print(f"New SPG NFT collection created at transaction hash {new_collection['tx_hash']}")
  print(f"NFT contract address: {new_collection['nft_contract']}")
  ```

  ```python Request Parameters theme={null}
  name: str  # The name of the collection
  symbol: str  # The symbol of the collection
  is_public_minting: bool  # If true, anyone can mint from the collection
  mint_open: bool  # Whether the collection is open for minting on creation
  mint_fee_recipient: str  # The address to receive mint fees
  contract_uri: str  # The contract URI for the collection
  base_uri: str = ""  # Optional: The base URI for the collection
  max_supply: int = None  # Optional: The maximum supply of the collection
  mint_fee: int = None  # Optional: The cost to mint a token
  mint_fee_token: str = None  # Optional: The token to mint
  owner: str = None  # Optional: The owner of the collection
  tx_options: dict = None  # Optional: Transaction options dictionary
  ```

  ```python Response theme={null}
  {
    "tx_hash": str,  # The transaction hash
    "nft_contract": str  # The address of the newly created contract
  }
  ```
</CodeGroup>

### get\_mint\_fee\_token

Returns the current mint fee token of the collection.

| Method               |
| -------------------- |
| `get_mint_fee_token` |

Parameters:

* `nft_contract`: The address of the NFT contract.

<CodeGroup>
  ```python Python theme={null}
  mint_fee_token = story_client.NFTClient.get_mint_fee_token("0x01")
  ```

  ```python Request Parameters theme={null}
  nft_contract: str  # The address of the NFT contract
  ```

  ```python Response theme={null}
  str  # The address of the mint fee token
  ```
</CodeGroup>

### get\_mint\_fee

Returns the current mint fee of the collection.

| Method         |
| -------------- |
| `get_mint_fee` |

Parameters:

* `nft_contract`: The address of the NFT contract.

<CodeGroup>
  ```python Python theme={null}
  mint_fee = story_client.NFTClient.get_mint_fee("0x01")
  ```

  ```python Request Parameters theme={null}
  nft_contract: str  # The address of the NFT contract
  ```

  ```python Response theme={null}
  int  # The mint fee amount.
  ```
</CodeGroup>
