機能

圧縮NFTのミント

前のページでは、圧縮NFTをミントするためにBubblegumツリーが必要であることを確認し、その作成方法を見ました。今度は、与えられたBubblegumツリーから圧縮NFTをミントする方法を見てみましょう。

Bubblegumプログラムは、異なるリーフスキーマバージョン用の複数のミント命令を提供します。Bubblegum V2は、与えられたコレクションに、またはコレクションなしで圧縮NFTをミントするために使用されるmintV2という新しいミント命令を導入しています。

コレクションなしでのミント

Bubblegumプログラムは、Bubblegumツリーから圧縮NFTをミントすることを可能にするmintV2命令を提供します。Bubblegumツリーが公開されている場合、誰でもこの命令を使用できます。そうでなければ、ツリー作成者またはツリーデリゲートのみが使用できます。

mintV2命令の主要なパラメータは以下の通りです:

  • マークルツリー: 圧縮NFTがミントされるマークルツリーのアドレス。
  • ツリー作成者またはデリゲート: Bubblegumツリーからのミントを許可された権限 — これはツリーの作成者またはデリゲートのいずれかです。この権限はトランザクションに署名する必要があります。公開ツリーの場合、このパラメータは任意の権限にできますが、それでも署名者である必要があります。
  • リーフ所有者: ミントされる圧縮NFTの所有者。デフォルトではトランザクションの支払者です。
  • リーフデリゲート: ミント済みcNFTの管理を許可されたデリゲート権限(存在する場合)。そうでなければ、リーフ所有者に設定されます。
  • コレクション権限: 与えられたコレクションの管理を許可された権限。
  • Coreコレクション: 圧縮NFTが追加されるMPL-CoreコレクションNFT。
  • メタデータ: ミントされる圧縮NFTのメタデータ。NFTの名前URIコレクション作成者などの情報が含まれます。Bubblegum V2では、メタデータはusesやコレクションのverifiedフラグなど、不要なフィールドを除外したMetadataArgsV2を使用しています。

コレクションなしで圧縮NFTをミント

import { none } from '@metaplex-foundation/umi';
import { mintV2 } from '@metaplex-foundation/mpl-bubblegum';
await mintV2(umi, {
leafOwner: umi.identity.publicKey,
merkleTree: merkleTree.publicKey,
metadata: {
name: 'My NFT',
uri: 'https://example.com/my-nft.json',
sellerFeeBasisPoints: 550,
collection: none(),
creators: [],