diff --git a/content/references/protocol-reference/data-types/nftoken.ja.md b/content/references/protocol-reference/data-types/nftoken.ja.md index a89db752d3..1bc4c4037e 100644 --- a/content/references/protocol-reference/data-types/nftoken.ja.md +++ b/content/references/protocol-reference/data-types/nftoken.ja.md @@ -7,7 +7,9 @@ labels: --- # NFToken -`NFToken` オブジェクトは、1つの非代替性トークン (NFT) を表します。単体では保存されず、他の NFT と共に [NFTokenPage オブジェクト][] に格納されます。 +`NFToken`オブジェクトは、1つの非代替性トークン(NFT)を表します。単体では保存されず、他のNFTと共に[NFTokenPage オブジェクト][]に格納されます。 + +_([NonFungibleTokensV1_1 amendment][]により追加されました。)_ {{currentpage.name}} JSONの例 @@ -18,102 +20,55 @@ labels: } ``` - -他のオブジェクトとは異なり、`NFToken` にはオブジェクトの種類や現在の所有者を特定するためのフィールドはありません。NFToken オブジェクトは、オブジェクトの種類と所有者を暗黙的に定義する `NFTokenPages` にグループ化されています。 - -_([NonFungibleTokensV1_1 amendment][]が必要です)_ +通常の[ledger entries](ledger-object-types.html)とは異なり、`NFToken`にはオブジェクトのタイプや現在の所有者を特定するフィールドはありません。`NFToken`オブジェクトは、そのオブジェクトのタイプを暗黙的に定義し、所有者を特定するページにグループ化されます。 -## トークンID +## NFTokenID -トークンID, 任意, 文字列, Hash256 +NFTokenID, 任意, 文字列, Hash256 この複合フィールドは、トークンを一意に識別するものであり、以下のセクションから構成されます。 -1. NFT固有のフラグや設定を識別する16ビット -2. このトークンに関連する送金手数料がある場合、それをコード化する16ビット -3. 発行者の160ビットのアカウント識別子 -4. 32 ビットの発行者が指定する[分類群](https://www.merriam-webster.com/dictionary/taxon) -5. (自動生成される)単調増加する32ビットのシーケンス番号 +A) 16ビットのNFTokenのフラグや設定の識別子 +B) 16ビットのNFTokenに関連する送金手数料のエンコード化された値(送金手数料が設定されている場合) + +C) 160ビットの発行者のアカウント識別子 + +D) 32ビットの発行者が指定する[`NFTokenTaxon`](https://www.merriam-webster.com/dictionary/taxon) + +E) 32ビットの(自動生成される)単調増加するのシーケンス番号 ![トークンIDの内訳](img/nftoken1.png "トークンIDの内訳") - -16 ビットのフラグ、転送料フィールド、32 ビットのタクソン、シーケンス番号フィールドはビッグエンディアン 形式で格納されます。 +16ビットのフラグ、送金手数料フィールド、32ビットの`NFTokenTaxon`、シーケンス番号フィールドはビッグエンディアン形式で格納されます。 ## NFToken フラグ -フラグは、`NFToken` オブジェクトに関連するプロパティやその他のオプションです。 +フラグは、`NFToken`オブジェクトに関連するプロパティやその他のオプションです。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
フラグ名 - フラグ値 - 説明 -
lsfBurnable - 0x0001 - 設定されている場合、発行者(または発行者が許可したエンティティ)がオブジェクトを破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 -
lsfOnlyXRP - 0x0002 - 設定されている場合、トークンはXRPに対してのみオファーまたは売却できることを示します。 -
lsfTrustLine - 0x0004 - 設定されている場合、発行者がトラストラインを自動的に作成することを望んでいることを示します。lsfTrustLine フィールドは、トークンが XRP 以外の資産で販売される可能性があり、発行者が 送金手数料を請求する場合に有用です。フラグが設定されている場合、発行者が適切な送金手数料を受け取るために、必要に応じてトラストラインが自動的に作成されます。フラグが設定されていない場合、発行者がトラストラインを持たないアセットに対するNFTokeの譲渡は失敗します。 -
lsfTransferable - 0x0008 - 設定されている場合、この NFT が転送可能であることを示します。このフラグは、トークンが発行者から転送される場合、または発行者に転送される場合には、何の効果もありません。 -
lsfReservedFlag - 0x8000 - 本提案では、このフラグを将来の使用に備えて確保します。このフラグを設定しようとすると失敗します。 -
- - -`NFToken` フラグ は不変です。 `NFTokenMint` トランザクション中にのみ設定可能で、後で変更することはできません。 +| フラグ名 | フラグ値 | 説明 | +|:------------------|:-----------|:--------------------------------------------| +| `lsfBurnable` | `0x0001` | 設定されている場合、発行者(または発行者が許可したエンティティ)が`NFToken`を破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 | +| `lsfOnlyXRP` | `0x0002` | 設定されている場合、`NFToken`はXRPに対してのみオファーまたは売却できることを示します。 | +| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](trust-lines-and-issuing.html)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。| +| `lsfTransferable` | `0x0008` | 設定されている場合、この`NFToken`は所有者から別の所有者に転送することができます。設定されていない場合、所有者は発行者との間でのみ譲渡が可能です。 | +| `lsfReservedFlag` | `0x8000` | 本提案では、このフラグを将来の使用に備えて確保します。このフラグを設定しようとすると失敗します。 | +`NFToken`のフラグは変更できません。[NFTokenMint トランザクション][]でのみ設定可能で、後で変更することはできません。 ### 例 -この例では、lsfBurnable (0x0001), lsfOnlyXRP (0x0002), lsfTransferable (0x0008) の3つのフラグを設定しています。1+2+8 = 11、つまりビッグエンディアン形式で0x000Bです。 +この例では、`lsfBurnable`(0x0001), `lsfOnlyXRP`(0x0002), `lsfTransferable`(0x0008)の3つのフラグを設定しています。1+2+8 = 11、つまりビッグエンディアン形式で0x000Bです。 ![フラグ](img/nftokena.png "フラグ") ### 送金手数料 -送金手数料には、トークンの二次販売時に発行者が請求する手数料を1/100,000単位で指定します。このフィールドの有効な値は0から50,000までです。1の値は1bpsまたは0.01%に相当し、0%から50%の間の転送レートを許容します。 - +`TransferFee`には、トークンの二次販売時に発行者が請求する手数料を1/100,000単位で指定します。このフィールドの有効な値は0から50,000までです。1の値は1bpsまたは0.01%に相当し、0%から50%の間の送金手数料が設定可能です。 ### 例 @@ -121,72 +76,60 @@ _([NonFungibleTokensV1_1 amendment][]が必要です)_ ![送金手数料](img/nftokenb.png "送金手数料") +### 発行者の識別 - -### 発行者識別 - -TokenIDの3番目のセクションは、発行者の公開アドレスをビッグ・エンディアンで表現したものである。 +`NFTokenID`の3番目のセクションは、発行者のアドレスをビッグエンディアンで表現したものです。 ![発行者アドレス](img/nftokenc.png "発行者アドレス") +### NFTokenTaxon(分類群) +4番目のセクションは、発行者が作成する`NFTokenTaxon`です。 -### 分類群 +![NFTokenTaxon](img/nftokend.png) -4番目のセクションは、発行者が作成する分類群です。 +発行者は同じ`NFTokenTaxon`を持つ複数の`NFToken`を発行する可能性があります。`NFToken`が複数のページにまたがるようにするため、`NFTokenTaxon`は第5セクションの連番を乱数発生器のシード値として乱数化されています。乱数化された値は`NFToken`と共に保存されますが、乱数化されていない値が実際の`NFTokenTaxon`となります。 -![分類群](img/nftokend.png "分類群") - -発行者は同じ分類群を持つ複数のNFTを発行する可能性があります。NFTが複数のページにまたがるようにするため、分類群は第5セクションの連番を乱数発生器のシード値としてスクランブルされています。スクランブルされた値は `NFToken` と共に保存されるが、スクランブルされていない値が実際の分類群となります。 - -![連番](img/nftokene.png "連番") - -スクランブルされた分類群は `0xBC8B858E` であることに注意してください。発行者が指定したスクランブルされた分類群のバージョンです。しかし、 _実際の_ 分類群の値はスクランブルされていない値です。 +`NFTokenTaxon`の値は`0xBC8B858E`ですが、これは発行者が指定した`NFTokenTaxon`の値が乱数化されたものであることに注意してください。`NFTokenTaxon`の実際の値は乱数化されていない値です。 ### トークン連番 -5番目のセクションは、発行者が `NFToken` を作成するたびに増加するシーケンス番号です。[NFTokenMint トランザクション][] では `NFTokenID` のこの部分を `Issuer` アカウントの `MintedTokens` フィールドを基に自動的に設定します。発行者の [AccountRoot オブジェクト][] が `MintedTokens` フィールドを持っていない場合、そのフィールドは値 0 と見なされます。 +5番目のセクションは、発行者が`NFToken`を作成するたびに増加するシーケンス番号です。 + +![シーケンス番号](img/nftokene.png "シーケンス番号") + +[NFTokenMint トランザクション][]では`NFTokenID`のこのフィールドを`Issuer`アカウントの`MintedNFTokens`フィールドを基に自動的に設定します。発行者の[AccountRoot オブジェクト][]が`MintedNFTokens`フィールドを持っていない場合、そのフィールドは値 0 と見なされます。フィールドの値は1ずつ増加します。 ## URI -URIフィールドは、`NFToken`に関連するデータおよび/またはメタデータを指します。このフィールドはHTTPやHTTPSのURLである必要はありません。IPFS URIや紐づくリンク、RFC2379 ["data" URL](https://datatracker.ietf.org/doc/html/rfc2397) としてエンコードされた即値、あるいは不透明な発行者固有のエンコーディングである可能性もあります。URIの有効性はチェックされませんが、フィールドの長さは最大256バイトに制限されます。 +URIフィールドは、`NFToken`に関連するデータまたはメタデータを指します。このフィールドはHTTPやHTTPSのURLである必要はありません。IPFS URIや紐づくリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397)、あるいはカスタムされたのエンコード値である可能性もあります。URIの有効性はチェックされませんが、フィールドの長さは最大256バイトに制限されます。 -この方式の欠点は、値が不変であるため、発行者がデータを永続的に保持する必要があることです。 +**注意:** URIは変更不可能であるため、例えば、存在しないウェブサイトにリンクしていたとしても、誰もそれを更新することはできません。 +# NFTokenデータとメタデータの取得 -# `NFToken` データとメタデータの取得 - -機能を犠牲にしたり不必要な制限を課したりすることなく`NFTokens`の容量を最小にするために、XRPL NFTは任意のデータフィールドを持ちません。その代わり、データは別に管理され、`NFToken`によって参照されます。URI は `Hash` に対して不変のコンテンツへの参照を提供し、`NFToken` オブジェクトに対しては任意の変更可能なデータを提供します。 - -`URI` フィールドは、従来とは異なるピアツーピア (P2P) URL を参照する際に特に有用です。例えば、惑星間ファイルシステム (IPFS) を使用して `NFToken` データやメタデータを保存する `minter` は、 `URI` フィールドを使用して IPFS 上のデータを様々な方法で参照することができ、それぞれが異なるユースケースに適しています。NFTデータの保存に使用できるIPFSリンクの種類については、[Best Practices for Storing NFT Data using IPFS](https://docs.ipfs.io/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them)を参照してください。 - -URI の代わりに、`NFToken` オブジェクトの発行者が発行者アカウントの `Domain` フィールドに正しいドメインを設定し、特定の `NFToken` に関連するデータやメタデータを検索したいクライアントに対して API を提供する方法があります。このメカニズムを使用するには、 `minter` がドメイン名を取得し、その発行アカウントにドメイン名を設定する必要があります。しかし、 `minter` がこのデータを照会するためのサーバーやその他のサービスを運営する必要はありません。 - -実装では、まず `URI` フィールドが存在するかどうかを調べて、関連するデータやメタデータを取得することを試みるべきです。`URI` フィールドが存在しない場合、実装は `Domain` フィールドの存在を確認する必要があります。どちらのフィールドも存在しない場合は、何も起こりません。実装では、URIからのHTTPリダイレクト(例えば、HTTPレスポンス301、302、307、308を使用)を処理できるように準備しておく必要があります。 +機能を犠牲にしたり不必要な制限を課したりすることなく`NFTokens`の容量を最小にするために、XRPL NFTは任意のデータフィールドを持ちません。その代わり、データは別に管理され、`NFToken`によって参照されます。URIは`Hash`に対して不変のコンテンツへの参照を提供し、`NFToken`オブジェクトに対しては任意の変更可能なデータを提供します。 +`URI`フィールドは、従来とは異なるピアツーピア(P2P)URLを参照する際に特に有用です。例えば、惑星間ファイルシステム(IPFS)を使用して`NFToken`データやメタデータを保存する発行者は、`URI`フィールドを使用してIPFS上のデータを様々な方法で参照することができ、それぞれが異なるユースケースに適しています。NFTデータの保存に使用できるIPFSリンクの種類については、[Best Practices for Storing NFT Data using IPFS](https://docs.ipfs.io/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them)を参照してください。 ## TXTレコードの形式 TXTレコードのフォーマットは以下の通りです。 - ``` xrpl-nft-data-token-info-v1 IN TXT "https://host.example.com/api/token-info/{tokenid}" ``` +情報を問い合わせようとしたときに、文字列`{tokenid}`を要求されたトークンの`NFTokenID`(64バイトの16進文字列)に置き換えてください。 -情報を問い合わせようとしたときに、文字列 `{tokenid}` を要求されたトークンの `NFTokenID` (64バイトの16進文字列) に置き換えてください。 - -実装では、`TXT`レコードの存在を確認し、存在すればそれらのクエリ文字列を使用する必要があります。文字列が存在しない場合、実装はデフォルトの URL を使用するように試みるべきです。ドメインが _example.com_ であると仮定すると、デフォルトのURLは次のようになります。 - +実装では、`TXT`レコードの存在を確認し、存在すればそれらのクエリ文字列を使用する必要があります。文字列が存在しない場合、実装はデフォルトのURLを使用するように試みるべきです。ドメインが _example.com_ であると仮定すると、デフォルトのURLは次のようになります。 ``` https://example.com/.well-known/xrpl-nft/{tokenid} ``` - -`NFTokenMint` トランザクションを使用して NFT を作成します。`NFTokenBurn` トランザクションを使用して NFToken を破棄することもできます。 +`NFTokenMint`トランザクションを使用して`NFTtoken`を作成します。`NFTokenBurn`トランザクションを使用して`NFToken`を破棄することもできます。 {% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/protocol-reference/data-types/nftoken.md b/content/references/protocol-reference/data-types/nftoken.md index 72c9aa4239..b2c80e135f 100644 --- a/content/references/protocol-reference/data-types/nftoken.md +++ b/content/references/protocol-reference/data-types/nftoken.md @@ -99,7 +99,7 @@ The fifth section is a sequence number that increases with each `NFToken` the is ![Sequence Number](img/nftokene.png "Sequence Number") -The [NFTokenMint transaction][] sets this part of the `NFTokenID` automatically based on the `MintedTokens` field of the `Issuer` account. If the issuer's [AccountRoot object][] does not have a `MintedTokens` field, the field is assumed to have the value 0; the value of the field is then incremented by exactly 1. +The [NFTokenMint transaction][] sets this part of the `NFTokenID` automatically based on the `MintedNFTokens` field of the `Issuer` account. If the issuer's [AccountRoot object][] does not have a `MintedNFTokens` field, the field is assumed to have the value 0; the value of the field is then incremented by exactly 1. ## URI