NFTokenMintトランザクションは非代替性トークンを作成し、NFTokenMinterに紐付くNFTokenPageオブジェクトにNFTokenオブジェクトとして追加します。このトランザクションはNFTokenMinterにとって、不変と定義されているトークンフィールド(例えばFlags)を設定することができる唯一の方法です。
NonFungibleTokensV1_1 amendmentが必要です。 Loading...
{
"TransactionType": "NFTokenMint",
"Account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"TransferFee": 314,
"NFTokenTaxon": 0,
"Flags": 8,
"Fee": "10",
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
"Memos": [
{
"Memo": {
"MemoType":
"687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963",
"MemoData": "72656E74"
}
}
]
}共通フィールドに加えて、NFTokenMintトランザクションは以下のフィールドを使用します。
| フィールド | JSONの型 | 内部の型 | 説明 |
|---|---|---|---|
NFTokenTaxon | 数値 | UInt32 | トークンに関連する分類群。Taxonは通常、トークンの発行者が選択した値です。1つのTaxonは複数のトークンに使用することができます。0xFFFFFFFFより大きいTaxonの識別子は使用できません。 |
Issuer | 文字列 | AccountID | (省略可) 送信元アカウントが他のアカウントの代理としてトークンを発行する場合における、トークンの発行者。トランザクションを送信するアカウントが NFToken の発行者である場合、このフィールドは指定してはいけません。指定される場合、発行者のAccountRootオブジェクトには NFTokenMinter フィールドが、このトランザクションの送信者(このトランザクションのAccountフィールド)に設定されていなければなりません。 |
TransferFee | 数値 | UInt16 | (省略可) この値は、NFTokenの二次販売が許可されている場合に、発行者が徴収する手数料を指定します。このフィールドの有効な値は0から50000の間で、0.001刻みで0.00%から50.00%の送金手数料を設定することができます。このフィールドが設定されている場合、トランザクションはtfTransferableフラグ を有効にしなければなりません。 |
URI | 文字列 | Blob | (省略可) 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされる必要があります。URIを16進数に変換するために、xrpl.convertStringToHexユーティリティを使用することができます。これは、NFTに関連するデータまたはメタデータを指し示すURIであることを想定しています。コンテンツは、HTTPまたはHTTPS URL、IPFS URI、マグネットリンク、RFC2379 "data" URL としてエンコードされた即値データ、あるいは発行者固有のエンコーディングにデコードされていることがあります。URIの有効性はチェックされません。 |
Amount | 通貨額 | Amount | (省略可) 対応するNFTokenの売却オファー金額を示します。資産がXRPの場合を除き、金額はゼロ以外でなければなりません。ゼロの場合、トークンの現在の所有者が、誰に対しても、または Destination フィールドで指定されたアカウントに対して、無償でトークンを譲渡することを意味します。 |
Expiration | 数値 | UInt32 | (省略可) オファーが有効でなくなるまでの時間(Rippleエポック以降の経過秒数)。Amountフィールドが指定されていない場合、エラーが発生します。 |
Destination | 文字列 | AccountID | (省略可) 存在する場合、このオファーは指定されたアカウントからのみ受け入れられることを示します。他のアカウントでこのオファーを受け入れようとしても、必ず失敗します。Amountフィールドが指定されていない場合、エラーが発生します。 |
NFTokenMint型のトランザクションでは、以下のようにFlagsフィールドに追加の値を設定することが可能です。
| フラグ名 | 16進数値 | 整数値 | 説明 |
|---|---|---|---|
tfBurnable | 0x00000001 | 1 | 発行者(または発行者が許可した者)がNFTokenを破棄できるようにします。(NFTokenの所有者は常に破棄することができます)。 |
tfOnlyXRP | 0x00000002 | 2 | 発行されたNFTokenはXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外のトークンで手数料を受け取りたくない場合に望ましいでしょう。 |
tfTrustLine | 0x00000004 | 4 | 非推奨 発行者が、発行したNFTokenを転送する際に受け取る手数料を保有するために、自動的にトラストライン を作成します。fixRemoveNFTokenAutoTrustLine Amendmentにより、このフラグの設定は無効となります。 |
tfTransferable | 0x00000008 | 8 | 発行されたNFTokenは他の人に譲渡することができます。このフラグが 有効でない 場合、トークンは 発行者から 、または 発行者へ のみ転送することができます。 |
tfMutable | 0x00000010 | 16 | 発行されたNFTokenのURIフィールドは、NFTokenModifyトランザクションを使用して更新することができます。 |
発行時に追加情報を指定する必要がある場合(たとえば、特定の区画を参照して不動産を特定できる詳細情報、車両識別番号を指定して車両を特定できる詳細情報、その他オブジェクト固有の説明)、取引メモを使用することができます。メモは署名された取引の一部であり、履歴アーカイブから入手できますが、レジャーの状態データには保存されません。
別のアカウントでNFTを発行する場合、次の2つを実行する必要があります。アカウント Aがあなたのアカウントで、アカウント BがNFTokenを発行したいアカウントであるとします。
- アカウントBの
NFTokenMinterアカウント設定を、アカウントAに設定します。(これは、アカウントBが自分に代わってNFTを作成するためにアカウントAを信頼することを意味します)。 - NFTokenを発行する際、
IssuerフィールドをアカウントBに設定します。
{
"TransactionType": "NFTokenMint",
"Account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"Issuer": "rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2",
"TransferFee": 25000,
"NFTokenTaxon": 0,
"Flags": 8,
"Fee": "10",
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
"Memos": [
{
"Memo": {
"MemoType":
"687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963",
"MemoData": "72656E74"
}
}
]
}このトランザクションは、発行者であるrNCFjv8Ek5oDrNiMJ3pw6eLFtMjZLJnf2がそのAccountRootのNFTokenMinterフィールド rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59Bと設定して、そのアカウントが自身に代わってトークンを発行する権限を与えていると想定したものです。
すべてのトランザクションで発生する可能性のあるエラーに加えて、NFTokenMintトランザクションでは、次のトランザクション結果コードが発生する可能性があります。
| エラーコード | 説明 |
|---|---|
temDISABLED | NonFungibleTokensV1 Amendmentは有効ではありません。 |
temBAD_NFTOKEN_TRANSFER_FEE | TransferFeeが許容範囲外です。 |
temINVALID_FLAG | Flags値には、許可されていない、または有効なフラグでないビットが有効になっています。fixRemoveNFTokenAutoTrustLine amendmentが有効になっている場合、tfTrustLineフラグはこのエラーを発生させます。 |
temMALFORMED | トランザクションが正しく指定されていません。例えば、URIフィールドが256バイトより長い場合です。 |
tecNO_ISSUER | Issuerは、レジャーに存在しないアカウントを指定しています。 |
tecNO_PERMISSION | Issuerフィールドで参照されるアカウントは、このトランザクションの送信者(NFTokenMinter設定を使用)が自身の代わりに発行することを承認していません。 |
tecINSUFFICIENT_RESERVE | トークンを発行した後、オーナーは更新された準備金要件を満たせなくなります。新しいNFTokenは、新しいNFTokenPageオブジェクトを必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32NFTを格納することができます。 |
tecMAX_SEQUENCE_REACHED | IssuerのMintedNFTokensフィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で232-1つのNFTokenを発行した場合にのみ発生します。 |