はじめに

ファンジブルトークンを作成する

Last updated November 25, 2025

Token Metadataプログラムを使用して、Solana上でメタデータ付きのファンジブルトークンを作成します。

学習内容

このガイドでは、以下の要素を持つファンジブルトークンの作成とミント方法を説明します:

  • カスタム名、シンボル、メタデータ
  • トークン画像と説明
  • 設定可能な小数点以下桁数(分割可能性)
  • 初期トークン供給量

トークンを作成する

以下のコードは完全に実行可能な例です。カスタマイズ可能なパラメータを以下に示します。トークン作成の詳細については、Token Metadataプログラムページをご覧ください。

1// npm install @metaplex-foundation/mpl-token-metadata @metaplex-foundation/mpl-toolbox @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults
2import {
3 createFungible,
4 mplTokenMetadata,
5} from '@metaplex-foundation/mpl-token-metadata'
6import {
7 createTokenIfMissing,
8 findAssociatedTokenPda,
9 mintTokensTo,
10} from '@metaplex-foundation/mpl-toolbox'
11import {
12 generateSigner,
13 keypairIdentity,
14 percentAmount,
15 some,
16} from '@metaplex-foundation/umi'
17import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
18import { readFileSync } from 'fs'
19
20// Initialize Umi with your RPC endpoint
21const umi = createUmi('https://api.devnet.solana.com').use(mplTokenMetadata())
22
23// Load your wallet keypair
24const wallet = '<your wallet file path>'
25const secretKey = JSON.parse(readFileSync(wallet, 'utf-8'))
26const keypair = umi.eddsa.createKeypairFromSecretKey(new Uint8Array(secretKey))
27umi.use(keypairIdentity(keypair))
28
29// Generate a new mint account
30const mint = generateSigner(umi)
31
32// Step 1: Create the fungible token with metadata
33await createFungible(umi, {
34 mint,
35 name: 'My Fungible Token',
36 symbol: 'MFT',
37 uri: 'https://example.com/my-token-metadata.json',
38 sellerFeeBasisPoints: percentAmount(0),
39 decimals: some(9),
40}).sendAndConfirm(umi)
41
42// Step 2: Mint initial supply to your wallet
43await createTokenIfMissing(umi, {
44 mint: mint.publicKey,
45 owner: umi.identity.publicKey,
46})
47 .add(
48 mintTokensTo(umi, {
49 mint: mint.publicKey,
50 token: findAssociatedTokenPda(umi, {
51 mint: mint.publicKey,
52 owner: umi.identity.publicKey,
53 }),
54 amount: 1_000_000_000_000_000, // 1,000,000 tokens with 9 decimals
55 })
56 )
57 .sendAndConfirm(umi)
58
59console.log('Token created:', mint.publicKey)
60console.log('Metadata and mint account initialized')
61console.log('Initial supply minted to:', umi.identity.publicKey)

パラメータ

トークンに合わせて以下のパラメータをカスタマイズしてください:

パラメータ説明
nameトークン名(最大32文字)
symbolトークンの略称(最大6文字)
uriオフチェーンメタデータJSONへのリンク
sellerFeeBasisPointsロイヤリティ率(550 = 5.5%)
decimals小数点以下桁数(some(9)が標準)
amountミントするトークン数

メタデータと画像

uriは少なくとも以下の情報を含むJSONファイルを指す必要があります。詳細はToken Metadata標準ページで確認できます。JSONと画像URLをどこからでもアクセスできるようにアップロードする必要があります。ArweaveなどのWeb3ストレージプロバイダーの使用をお勧めします。コードで行う場合は、このガイドに従ってください。

{
"name": "My Fungible Token",
"symbol": "MFT",
"description": "A fungible token on Solana",
"image": "https://arweave.net/tx-hash"
}
Previous
概要