# Hedera Token Mint

> Hedera Token Minting (HTS)

- Skill: `yejiming/hedera-token-mint` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add yejiming/hedera-token-mint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yejiming/hedera-token-mint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: yejiming (https://skillmd.com/u/yejiming)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yejiming/hedera-token-mint

---


# Hedera Token Minting (HTS)

## Setup

```bash
npm install @hashgraph/sdk
```

## Create Fungible Token

```typescript
import { 
  TokenCreateTransaction, 
  TokenSupplyType,
  TokenType 
} from '@hashgraph/sdk';

const tx = await new TokenCreateTransaction()
  .setTokenName("My Token")
  .setTokenSymbol("MTK")
  .setTokenType(TokenType.FungibleCommon)
  .setSupplyType(TokenSupplyType.Infinite)
  .setDecimals(2)
  .setInitialSupply(1000000) // Total supply = 1,000,000
  .setTreasuryAccountId(treasuryId)
  .setAdminKey(adminKey)
  .setSupplyKey(supplyKey)
  .freezeWith(client)
  .sign(treasuryKey);

const result = await tx.execute(client);
const tokenId = result.receipt.tokenId;
```

## Create NFT Collection

```typescript
const tx = await new TokenCreateTransaction()
  .setTokenName("My NFT Collection")
  .setTokenSymbol("MNFT")
  .setTokenType(TokenType.NonFungibleUnique)
  .setTreasuryAccountId(treasuryId)
  .setAdminKey(adminKey)
  .setSupplyKey(supplyKey)
  .freezeWith(client)
  .sign(treasuryKey);
```

## Mint NFTs

```typescript
import { TokenMintTransaction } from '@hashgraph/sdk';

const tx = await new TokenMintTransaction()
  .setTokenId(tokenId)
  .addMetadata(Buffer.from("NFT #1 metadata"))
  .addMetadata(Buffer.from("NFT #2 metadata"))
  .freezeWith(client)
  .sign(supplyKey);

const result = await tx.execute(client);
```

## Token Operations

### Transfer Token
```typescript
import { TransferTransaction } from '@hashgraph/sdk';

await new TransferTransaction()
  .addTokenTransfer(tokenId, fromAccount, -10)
  .addTokenTransfer(tokenId, toAccount, 10)
  .execute(client);
```

### Burn Tokens
```typescript
import { TokenBurnTransaction } from '@hashgraph/sdk';

await new TokenBurnTransaction()
  .setTokenId(tokenId)
  .setAmount(100)
  .execute(client);
```

## Key Points

- **Supply Types**: `Infinite` or `Finite`
- **Token Types**: `FungibleCommon` or `NonFungibleUnique`
- **Royalty**: Use custom fees for NFT royalties
- **Token ID Format**: `0.0.12345`

