# ERC1155

## Overview

This contract is an advanced ERC1155 implementation, featuring mint limits, whitelisting, scheduled drops, airdrop functionality, and social media integration. It's designed to offer flexible and controlled NFT minting and distribution.

## Methods

## <mark style="color:blue;">`setPresaleTime`</mark>

Sets the timestamp for starting pre-sales.

### Parameters

| Name          | Type    | Description                      |
| ------------- | ------- | -------------------------------- |
| \_preSaleTime | uint256 | Timestamp to start the pre-sale. |

## <mark style="color:blue;">`perWalletPreSaleMint`</mark>

Allows whitelisted addresses to mint a specified amount of tokens during the pre-sale, adhering to per-wallet limits.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`preSaleMint`</mark>

Allows whitelisted addresses to mint a specified amount of tokens during the pre-sale.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setScheduleDropMintTime`</mark>

Sets the start and end times for scheduled drop mints.

### Parameters

| Name            | Type    | Description                   |
| --------------- | ------- | ----------------------------- |
| \_startDropTime | uint256 | Start time for the drop mint. |
| \_endDropTime   | uint256 | End time for the drop mint.   |

## <mark style="color:blue;">`scheduledDropMint`</mark>

Enables minting during a scheduled drop for whitelisted addresses.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setURI`</mark>

Updates the base URI for the token metadata.

### Parameters

| Name   | Type   | Description       |
| ------ | ------ | ----------------- |
| newuri | string | The new base URI. |

## <mark style="color:blue;">`addToWhitelist`</mark>

Adds addresses to the whitelist for pre-sale and scheduled drops.

### Parameters

| Name     | Type       | Description                             |
| -------- | ---------- | --------------------------------------- |
| accounts | address\[] | Addresses to be added to the whitelist. |

## <mark style="color:blue;">`removeFromWhitelist`</mark>

Removes addresses from the whitelist.

### Parameters

| Name     | Type       | Description                                 |
| -------- | ---------- | ------------------------------------------- |
| accounts | address\[] | Addresses to be removed from the whitelist. |

## <mark style="color:blue;">`isWhitelisted`</mark>

Checks if an address is whitelisted.

### Parameters

| Name    | Type    | Description                            |
| ------- | ------- | -------------------------------------- |
| account | address | Address to check for whitelist status. |

### Returns

| Name        | Type | Description                                          |
| ----------- | ---- | ---------------------------------------------------- |
| whitelisted | bool | True if the address is whitelisted, false otherwise. |

## <mark style="color:blue;">`mint`</mark>

Mint tokens and are only accessible by the owner.

## <mark style="color:blue;">`mintBatch`</mark>

Mint batches of tokens. Only accessible by the owner.

## <mark style="color:blue;">`airdrop`</mark>

Distributes tokens to multiple addresses.

### Parameters

| Name       | Type       | Description                                |
| ---------- | ---------- | ------------------------------------------ |
| recipients | address\[] | Array of recipient addresses.              |
| amounts    | uint256\[] | Array of token amounts for each recipient. |

## <mark style="color:blue;">`burn`</mark>

Burns a specified amount of tokens from a given account.

### Parameters

| Name    | Type    | Description                  |
| ------- | ------- | ---------------------------- |
| account | address | Address of the token holder. |
| id      | uint256 | Token ID to burn.            |
| amount  | uint256 | Amount of tokens to burn.    |

## <mark style="color:blue;">`setTwitterProfile`</mark>

Sets the respective social media or website URL for the contract.

### Parameters

| Name  | Type   | Description        |
| ----- | ------ | ------------------ |
| \_url | string | The URL to be set. |

## <mark style="color:blue;">`transferFromWhitelisted`</mark>

Allows whitelisted addresses to transfer a specified amount of tokens to any address.

### Parameters

| Name   | Type    | Description                      |
| ------ | ------- | -------------------------------- |
| to     | address | Recipient address.               |
| id     | uint256 | ID of the token.                 |
| amount | uint256 | Amount of the token to transfer. |

## <mark style="color:blue;">`mintByWhitelisted`</mark>

Allows a whitelisted address to mint a specified amount of tokens.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setWebsiteURL`</mark>

Sets the website URL for the contract.

### Parameters

| Name         | Type   | Description         |
| ------------ | ------ | ------------------- |
| \_websiteURL | string | URL of the website. |

## <mark style="color:blue;">`setTelegramChannel`</mark>

Sets the Telegram channel link for the contract.

### Parameters

| Name              | Type   | Description                  |
| ----------------- | ------ | ---------------------------- |
| \_telegramChannel | string | URL of the Telegram channel. |

## <mark style="color:blue;">`preSaleMintBatch`</mark>

Allows whitelisted addresses to mint batches of tokens during the pre-sale.

### Parameters

| Name    | Type       | Description             |
| ------- | ---------- | ----------------------- |
| to      | address    | Recipient address.      |
| ids     | uint256\[] | Array of token IDs.     |
| amounts | uint256\[] | Array of token amounts. |

## <mark style="color:blue;">`perWalletPreSaleMintBatch`</mark>

Allows whitelisted addresses to mint batches of tokens during the pre-sale, adhering to per-wallet limits.

### Parameters

| Name      | Type        | Description             |
| --------- | ----------- | ----------------------- |
| `to`      | `address`   | Recipient address.      |
| `ids`     | `uint256[]` | Array of token IDs.     |
| `amounts` | `uint256[]` | Array of token amounts. |

## <mark style="color:blue;">`pause`</mark>

Pauses all contract activities, preventing transfers and other state-changing operations.

## <mark style="color:blue;">`unpause`</mark>

Resumes all contract activities, allowing transfers and other state-changing operations to occur again.


---

# 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.volary.io/template-library/smart-contracts/erc1155.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.
