# NFT Kit

**Easy NFT SDK Methods** is a set of functions provided by the Easy NFT SDK in the KrypCore Web3 SDK. This SDK simplifies the process of creating and interacting with NFTs (Non-Fungible Tokens) on the blockchain. With the Easy NFT SDK, developers can easily deploy ERC-721 and ERC-1155 NFT collections, as well as mint NFTs within those collections.

To use the Easy NFT SDK, import the required modules and initialize the necessary objects:

## **Table of Contents**

* Create Collection
* Mint NFT

## Bootstrapping the SDK for NFT kit

```javascript
const krypcore_web3_sdk = require("@krypc/krypcore-web3-sdk");
const EasyNftService = new krypcore_web3_sdk.Services.EasyNft(configFilePath);
```

Now, let's explore the available methods and their usage:

## SDK Methods

### createNFTCollection (ERC-721)

Deploys an ERC-721 or ERC-1155 NFT collection on a specific blockchain network.

**Parameters:**

* `standard` (string): The NFT standard to deploy (`"ERC721"` or `"ERC1155"`).
* `chainId` (string): The ID of the blockchain network where the collection will be deployed.
* `name` (string): The name of the NFT collection.
* `description` (string): The description of the NFT collection.
* `symbol` (string): The symbol or ticker of the NFT collection.
* `accessToken` (string): The access token for wallet authentication.
* `isPublic` (boolean, optional): Flag indicating if the collection is public (default: `false`).

**Usage:**

```javascript
const createERC721CollectionStatus = await EasyNftService.createNFTCollection("ERC721", "80001", "Bored Apes", "Its an NFT collection", "APE", process.env.WALLET_ACCESS_TOKEN, false);
console.log(createERC721CollectionStatus);
```

***

### mintNFT (ERC-721)

Mints a new ERC-721 or ERC-1155 NFT.

**Parameters:**

* `chainId` (string): The ID of the blockchain network where the NFT will be minted.
* `contractAddress` (string): The address of the NFT contract.
* `standard` (string): The NFT standard (`"ERC721"` or `"ERC1155"`).
* `name` (string): The name of the NFT.
* `description` (string): The description of the NFT.
* `quantity` (number or null): The quantity of NFTs to mint (set to `null` for ERC-721).
* `attributes` (array): An array of NFT attributes.
* `file` (File): The file object of the NFT image or media.
* `recipientAddress` (string): The address of the recipient.
* `accessToken` (string): The access token for wallet authentication.

**Usage:**

```javascript
const file = fs.readFileSync("test.png");
const mintERC721NftStatus = await EasyNftService.mintNFT("80001", "0x8beF71d2443812D907986295e3878dFBc03Ad141", "ERC721", "Sample Token", "This is a sample token", null, [], file, "0x5A5D02cdb3D8904d996feD9911EdfFe070d6E6EF", process.env.WALLET_ACCESS_TOKEN);
console.log(mintERC721NftStatus);
```

***

### createNFTCollection (ERC-1155)

Deploys an ERC-1155 NFT collection on a specific blockchain network.

**Parameters:**

* `standard` (string): The NFT standard to deploy (`"ERC1155"`).
* `chainId` (string): The ID of the blockchain network where the collection will be deployed.
* `name` (string): The name of the NFT collection.
* `description` (string): The description of the NFT collection.
* `symbol` (string): The symbol or ticker of the NFT collection.
* `accessToken` (string): The access token for wallet authentication.
* `isPublic` (boolean, optional): Flag indicating if the collection is public (default: `false`).

**Usage:**

```javascript
const createERC1155CollectionStatus = await EasyNftService.createNFTCollection("ERC1155", "80001", "Bored Apes 1155", "Its an NFT collection", "APE", process.env.WALLET_ACCESS_TOKEN, false);
console.log(createERC1155CollectionStatus);
```

***

### mintNFT (ERC-1155)

Mints a new ERC-1155 NFT.

**Parameters:**

* `chainId` (string): The ID of the blockchain network where the NFT will be minted.
* `contractAddress` (string): The address of the NFT contract.
* `standard` (string): The NFT standard (`"ERC1155"`).
* `name` (string): The name of the NFT.
* `description` (string): The description of the NFT.
* `quantity` (number): The quantity of NFTs to mint.
* `attributes` (array): An array of NFT attributes.
* `file` (File): The file object of the NFT image or media.
* `recipientAddress` (string): The address of the recipient.
* `accessToken` (string): The access token for wallet authentication.

**Usage:**

```javascript
const file = fs.readFileSync("test.png");
const mintERC1155NftStatus = await EasyNftService.mintNFT("80001", "0x795807CCB4F1286528bD33e4Ff2ef5Cb1432655B", "ERC1155", "Sample Token", "This is a sample token", 20, [], file, "0x5A5D02cdb3D8904d996feD9911EdfFe070d6E6EF", process.env.WALLET_ACCESS_TOKEN);
console.log(mintERC1155NftStatus);
```

***

These methods allow you to deploy and mint ERC-721 and ERC-1155 NFTs on the specified blockchain network. Make sure to provide the necessary parameters based on your requirements and utilize the returned data as needed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.krypcore.com/dev-docs/sdk-reference/core-service-methods/nft-kit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
