> For the complete documentation index, see [llms.txt](https://yuga.gitbook.io/zkyuga-whitepaper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yuga.gitbook.io/zkyuga-whitepaper/developer-guide/erc1155/mint.md).

# mint

The `mint` method for the ERC-1155 token standard facilitates the creation of a specified quantity of a token with a given ID for a specified Ethereum address. This functionality is pivotal for various applications, such as issuing rewards or creating new token batches. The method is incorporated within the `ERC1155Instance` object, which can be fetched through the relevant method of the `ZkyugaClient` or a similar library.

## Method Signature

```javascript
async mint(
    userAddress: string,
    id: string,
    amount: string,
    data: string = "0x",
    signer: WalletSigner
): Promise<TransactionResponse>
```

### Parameters

| Parameter   | Type         | Description                                                                     |
| ----------- | ------------ | ------------------------------------------------------------------------------- |
| userAddress | string       | The Ethereum address receiving the minted tokens.                               |
| id          | string       | The specific ID of the ERC-1155 token to be minted.                             |
| amount      | string       | The quantity of the token to be minted for the provided ID.                     |
| data        | string       | Additional data or bytes to accompany the minting function, defaulting to "0x". |
| signer      | WalletSigner | The wallet signer instance responsible for signing the transaction.             |

### Returns

* A `Promise` resolving to a `TransactionResponse`, which contains details about the minting transaction.

## Usage Example

First, instantiate the desired ERC-1155 token contract:

```javascript
const erc1155 = zkyugaClient.getERC1155Instance("your ERC-1155 contract address here");
```

Then, call the `mint` method with the appropriate parameters:

```javascript
const recipientAddress = "0xBbF289D846208c16EDc8474705C748aff07732dB";
const tokenId = "specific-token-id";
const mintAmount = "100";
const dataBytes = "0x";  // Optional data bytes
const signer = zkyugaClient.createWalletSigner("your private key");

const mintTransaction = await erc1155.mint(recipientAddress, tokenId, mintAmount, dataBytes, signer);
console.log(`Mint Transaction Hash: ${mintTransaction.hash}`);
```

## Notes

* The `mint` method enables the dynamic creation of ERC-1155 tokens. Ensure proper permissions when invoking this method, as unrestricted minting can lead to vulnerabilities or imbalances.
* Always validate the Ethereum address, token ID, and other parameters before invoking the `mint` method to prevent errors or unintentional minting.

***
