機能

Inscriptionの初期化

initialize命令は、データが保存される場所であるinscriptionアカウントを作成します。3つのタイプの初期化があります:

  1. initializeFromMint - NFTに添付されたInscription用 - おそらくこれが必要です
  2. initialize - ストレージプロバイダーとしてのInscription用
  3. initializeAssociatedInscription - 追加データアカウント用

初期化が完了した後、inscriptionにデータを書き込むことができます。

初期化時に、番号付けに使用されるshardを選択できます。ロックを最小限に抑えるために、ランダムなものを使用してください。シャーディングについてはこちらで詳しく読むことができます。

initializeFromMint

これらのinscriptionはNFTと同様に取引可能です。不確実な場合は、おそらくこれを使用したいでしょう。

取引可能なinscriptionが必要な場合は、この種のinscriptionを使用したいでしょう。これはあなたのNFTから派生されます。この関数を使用する際は、NFTの更新権限を持っている必要があります。

以下のように実行できます:

ミントInscriptionの初期化

import {
findInscriptionShardPda,
initializeFromMint,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionShardAccount = await findInscriptionShardPda(umi, {
shardNumber: 0, // 0から31までのランダムな数
})
await initializeFromMint(umi, {
mintAccount: mint.publicKey,
inscriptionShardAccount,
}).sendAndConfirm(umi)

Initialize

この種のinscriptionは取引できません。ゲームなどの高度な使用例にのみ推奨します。

Inscriptionはデータが書き込まれる前に初期化される必要があります。以下のように実行できます:

Inscriptionの初期化

import {
findInscriptionMetadataPda,
findInscriptionShardPda,
initialize,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionAccount = generateSigner(umi)
const inscriptionMetadataAccount = await findInscriptionMetadataPda(umi, {
inscriptionAccount: inscriptionAccount.publicKey,
})
const inscriptionShardAccount = await findInscriptionShardPda(umi, {
shardNumber: 0, // 0から31までのランダムな数
})
await initialize(umi, {
inscriptionAccount,
inscriptionShardAccount,
}).sendAndConfirm(umi)

initializeAssociatedInscription

1つのInscriptionアカウントは複数の関連Inscriptionアカウントを持つことができます。これらはassociationTagに基づいて派生されます。例えば、タグはファイルのデータタイプ(例:image/png)にできます。

関連するinscriptionへのポインターは、inscriptionMetadataアカウントのassociatedInscriptionsフィールドの配列に保存されます。

新しい関連Inscriptionを初期化するには、以下の関数を使用できます:

関連Inscriptionの初期化

import {
findInscriptionMetadataPda,
initializeAssociatedInscription,
} from '@metaplex-foundation/mpl-inscription'
const inscriptionMetadataAccount = await findInscriptionMetadataPda(umi, {
inscriptionAccount: inscriptionAccount.publicKey,
})
await initializeAssociatedInscription(umi, {
inscriptionMetadataAccount,
associationTag: 'image/png',
}).sendAndConfirm(umi)