> 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/stablecoin/mint.md).

# mint

The `mint` function in StableCoin Contracts is a critical mechanism for creating new tokens and assigning them to a specified address. This function is essential in various scenarios, including initial token distribution, reward issuance, or inflating the token supply. The ability to mint new tokens is usually restricted to specific roles or addresses within the contract, ensuring controlled token generation.

## Method Signature

```typescript
async mint(to: string, amount: string, signer: any): Promise<string>
```

## Parameters

* `to: string`: The Ethereum address where the minted tokens will be allocated. This can be a standard Ethereum address or an ENS name.
* `amount: string`: The quantity of tokens to be minted, represented as a string.
* `signer: any`: An object representing the signer of the transaction, often sourced from a wallet interface like MetaMask or ethers.js.

## Function Logic

1. **Resolve ENS Name**: If the `to` address is an ENS name, it's resolved to its corresponding Ethereum address.
2. **Get Contract Instance**: Acquires a contract instance using the `signer` for blockchain interactions.
3. **Mint Transaction**: Executes the `mint` method on the contract with the resolved `to` address and the specified `amount`.
4. **Return Result**: Outputs the result of the mint transaction, usually a transaction hash, as a string.

## Example Usage

```typescript
const toAddress = "recipient.eth";
const amount = "1000";
const signer = ethersProvider.getSigner();

stableCoinContract.mint(toAddress, amount, signer)
    .then(result => 
        // add your logic here 
    )
    .catch(error => 
        // add your logic here
    );
```

## Notes

* The `mint` function is powerful and should be used with caution, as it impacts the total supply of the token.
* Correct formatting of the `amount` parameter is crucial for the intended creation of new tokens.
