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

# How to create and mint NFT/SFT?

### How do I create and mint an NFT?

To create your NFT collection, call the `nft.createCollection()` extrinsic with the following parameters:

```typescript
await api.tx.nft.createCollection(
	collectionName,
	initialIssuance,
	maxIssuance,
	tokenOwner,
	metadataScheme,
	royaltiesSchedule,
	crossChainCompatibility
);
```

<warning>
  **Caution**: The `royaltiesSchedule` is in per mill (parts per million) scaling, so if you want a 10% royalty, that would be `100,000` (as `100_000 / 1_000_000 = 0.1`).
</warning>

Once your collection is created, the collection owner can call the `nft.mint()` method on the collection to start minting additional tokens so long as the max issuance has not been reached:

```typescript
await api.tx.nft.mint(collectionId, quantity, beneficiary);
```

### How do I create and mint an SFT?

SFTs are similar to NFTs however due to their similarity to ERC1155, there can be multiple tokens per SFT collection. Each SFT token has a unique ID, and the collection owner can mint multiple tokens with the same ID. To create your SFT collection, call the `sft.createCollection()` extrinsic with the following parameters:

```typescript
await api.tx.sft.createCollection(
    collectionName,
    collectionOwner,
    metadataScheme,
    royaltiesSchedule
)
```

To create an SFT token within the collection, call the `sft.createToken()` extrinsic with the following parameters:

```typescript
await api.tx.sft.createToken(
    collectionId,
    tokenName,
    initialIssuance,
    maxIssuance,
    tokenOwner
)
```

Once your token is created, the collection owner can call the `sft.mint()` method to start minting additional tokens so long as the max issuance for that token has not been reached. The owner can pass in a tuple of serialNumbers and quantities to mint multiple tokens at once.

```typescript
await api.tx.sft.mint(collectionId, serialNumbers, tokenOwner);
```
