mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-04 20:05:50 +00:00
Merge pull request #1536 from develoQ/japanese-nftoken
add Japanese translations of NFT-related pages
This commit is contained in:
@@ -239,4 +239,5 @@
|
||||
|
||||
{% for amd in amendment_names %}
|
||||
[{{amd}} amendment]: known-amendments.html#{{amd|lower}}
|
||||
[{{amd}}の修正]: known-amendments.html#{{amd|lower}}
|
||||
{% endfor %}
|
||||
|
||||
86
content/concepts/tokens/non-fungible-token-transfers.ja.md
Normal file
86
content/concepts/tokens/non-fungible-token-transfers.ja.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
html: non-fungible-token-transfers.html
|
||||
parent: non-fungible-tokens.html
|
||||
blurb: NFTokenをダイレクトモードまたはブローカーモードで取引する。
|
||||
filters:
|
||||
- include_code
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
|
||||
# XRP Ledger上でNFTokenを売買する
|
||||
{% include '_snippets/nfts-disclaimer.ja.md' %}
|
||||
|
||||
XRP Ledger上のアカウント間で`NFToken`オブジェクトを転送することができます。`NFToken` の売買をオファーしたり、他のアカウントから自分が保有する NFToken への売買オファーを受け入れることができます。`NFToken` を 無料(価格が0)で売却することで、`NFToken` を配布することもできます。すべてのオファーは [NFTokenCreateOfferトランザクション][] を使って作成されます。
|
||||
|
||||
|
||||
## 売却オファー
|
||||
|
||||
|
||||
### 売却オファーの作成
|
||||
|
||||
`NFToken` オブジェクトの所有者であれば、`tfSellToken` フラグを指定して [NFTokenCreateOffer トランザクション][] を使用して売却オファーを作成することができます。`NFTokenID` と、対価として受け取る金額 `Amount` を指定します。オプションで、そのオファーが無効になる `Expiration` と、その `NFToken` を購入することができる唯一のアカウントである `Destination` を指定することができます。
|
||||
|
||||
|
||||
### 売却オファーを受け入れる
|
||||
|
||||
販売されている `NFToken` を購入するには、`NFTokenAcceptOffer` トランザクションを使用します。`NFTokenOffer` オブジェクトの所有者アカウントと `NFTokenOfferID` を指定し、受け入れることを決定します。
|
||||
|
||||
|
||||
## 購入オファー
|
||||
|
||||
|
||||
### 購入オファーの作成
|
||||
|
||||
どのアカウントでも `NFToken` の購入オファーを作成することができます。`tfSellToken` のフラグを指定せずに、[NFTokenCreateOffer][] を使用することで、購入オファーを作成することが可能です。`Owner`アカウント、`NFTokenID`、オファーの `Amount` を指定します。
|
||||
|
||||
|
||||
### 購入オファーを受け入れる
|
||||
|
||||
`NFTokenAcceptOffer` トランザクションを使用して `NFToken` を転送します。`NFTokenOfferID` と所有者アカウントを指定して、トランザクションを完了させてください。
|
||||
|
||||
|
||||
## 取引モード
|
||||
|
||||
`NFToken`を取引する場合、購入者と販売者の間で直接取引を行う、 _ダイレクト_ 取引と、第三者の口座が売りと買いのオファーをマッチングして取引を仲介する、 _ブローカー_ 取引を選択することができます。
|
||||
|
||||
ダイレクトモードでの取引では、販売者が転送をコントロールすることができます。販売者は誰でも購入できるように `NFToken` を出品するか、特定の取引先アカウントに `NFToken` を販売することができます。販売者はNFTokenの販売価格全額を受け取ります。
|
||||
|
||||
ブローカーモードでは、販売者は第三者のアカウントに`NFToken`の販売を仲介させます。ブローカーアカウントは、合意したレートで仲介手数料を徴収し、転送を行います。購入はリアルタイムで完了し、ブローカーと販売者には購入資金から支払われ、ブローカーによる前払いは必要ありません。
|
||||
|
||||
|
||||
### ブローカーモードを使用する場合
|
||||
|
||||
`NFToken`の作成者が適切な購入者を探す時間と忍耐力がある場合、作成者は販売から得たすべての収益を得ることができます。これは、少数の`NFToken`オブジェクトを様々な価格で販売するクリエイターにとって、非常に有効な方法です。
|
||||
|
||||
一方、クリエイターは、創作に時間を割くことができるのに、販売に時間を割くのは抵抗があるのではないでしょうか。そのような場合、個別に対応するのではなく、第三者であるブローカーのアカウントに販売業務を委託することが可能です。
|
||||
|
||||
ブローカーを利用すると、いくつかの利点があります。例えば
|
||||
|
||||
* ブローカーは仲介者として、`NFToken`の販売価格を最大化するために活動することができます。ブローカーが販売価格の何割かを受け取る場合、価格が高ければ高いほど、ブローカーの収入も増えます。
|
||||
* ブローカーは、ニッチな市場や 価格帯などの基準に基づいて`NFToken`オブジェクトの管理を行う管理者として活動することができます。これによって、クリエイターの作品を発見できないような購入者のグループを呼び込むことができるでしょう。
|
||||
* ブローカーは、Opensea.ioのようなマーケットプレイスとして機能し、アプリケーション層でオークション機能を提供することもできます。
|
||||
|
||||
|
||||
### ブローカー販売のワークフロー
|
||||
|
||||
最も単純なワークフローでは、クリエイターが新しい`NFToken`を発行します。クリエイターは売却オファーを作成する際、最低売却価格を入力し、売却先にブローカーを設定します。購入希望者はブローカーを経由して`NFToken`に入札を行います。ブローカーは落札者を選び、取引を完了させ、ブローカー手数料を受け取ります。ベストプラクティスとして、ブローカーは`NFToken`に対して残っている購入オファーをすべてキャンセルします。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
もう1つのワークフローは、クリエイターが販売をよりコントロールできるようにするものです。このワークフローでは、クリエイターが新しい`NFToken`を発行します。入札者はオファーを作成し、ブローカーを宛先として設定します。ブローカーは落札者を選び、仲介手数料を差し引き、`NFTokenCreateOffer`を使用してクリエイターに署名の依頼をします。クリエーターは要求されたオファーに署名し、ブローカーを宛先として設定します。ブローカーは `NFTokenAcceptOffer` を使って売却を完了し、仲介手数料を保持します。ブローカーは `NFTokenCancelOffer` を使用して `NFToken` に対する残りの入札をキャンセルします。
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
所有者が他のアカウントで作成した `NFToken` をリセールする場合にも、同じワークフローを使用することができます。
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
86
content/concepts/tokens/non-fungible-tokens.ja.md
Normal file
86
content/concepts/tokens/non-fungible-tokens.ja.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
html: non-fungible-tokens.html
|
||||
parent: tokens.html
|
||||
blurb: XRPL NFTの紹介。
|
||||
filters:
|
||||
- include_code
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
|
||||
# NFTのコンセプトの概要
|
||||
{% include '_snippets/nfts-disclaimer.ja.md' %}
|
||||
|
||||
XRP Ledgerは、_IOUs_ としても知られる[発行済み通貨(tokens.html)のサポートを提供しています。このような資産は、主に、代替可能(Fungible)です。
|
||||
|
||||
> 代替可能性
|
||||
>
|
||||
> 1. 個々の単位が本質的に交換可能であり、各部分が別の部分と区別できない商品または商品の特性である
|
||||
|
||||
代替可能トークンは、XRP Ledgerの分散型取引所において、ユーザー間でXRPや他の発行済み通貨と手軽に交換することができます。そのため、決済に適しています。
|
||||
|
||||
|
||||
例えば、切手などがそうです。1919年当時、あなたが航空便で手紙を送る必要がある場合、24セントの切手を購入し、封筒に張ったでしょう。もしその切手をなくしてしまったら、別の24セント切手を使うか、10セント切手2枚と2セント切手2枚を使うことができます。非常に使い勝手がいいのです。
|
||||
|
||||

|
||||
|
||||
しかし、1919年という時代のことですから、切手の飛行機が偶然にも逆さまに印刷されている24セントの航空郵便切手が出回るかもしれません。これが世界的に有名な「インバート・ジェニー」切手です。1枚の切手シートで100枚しか流通しなかったため、非常に希少で人気の高い切手です。現在、鑑定では一枚150万円以上の価値があるとされています。
|
||||
|
||||

|
||||
|
||||
これらの切手は、他の24セント切手と交換することはできません。非代替(Non-fungible)になってしまったのです。
|
||||
|
||||
[NonFungibleTokensV1の修正][] :現在有効ではありません: は、XRP Ledgerに非代替性トークン(NFT)のサポートをネイティブで追加するものです。 非代替性トークンは、芸術品やゲーム内アイテムなど、ユニークな物理的、非物理的、あるいは純粋なデジタル商品の所有権をコード化する役割を果たします。
|
||||
|
||||
|
||||
## XRP Ledger上のNFT
|
||||
|
||||
XRP Ledger上では、non-fungible tokenは[NFToken][]オブジェクトとして表されます。NFTokenはユニークで分割できない単位で、決済には使用できません。ユーザーはこのようなトークンを発行(作成)、保有、購入、売却、焼却(破棄)することができます。
|
||||
|
||||
XRP Ledgerでは、容量を節約するために、一つのアカウントで最大32個の `NFToken` オブジェクトを一つの[NFTokenPageオブジェクト][]に格納します。その結果、所有者の `NFToken` オブジェクトに対する [準備金] (reserves.html) は、追加のトークンを格納するためにレジャーが新しいページを作成する場合にのみ増加します。
|
||||
|
||||
また、アカウントは、自分に代わってNFTokenオブジェクトを発行・販売するブローカー(代理発行者)を指定することができます。
|
||||
|
||||
`NFToken` オブジェクトは、トークンが発行された時点で確定し、後で変更することが出来ない設定項目を持ちます。これらは以下の通りです。
|
||||
|
||||
- トークンを一意に定義する各種識別データ。
|
||||
- 発行者が、現在の保有者に関係なく、トークンを焼却できるかどうか。
|
||||
- トークンの保持者がトークンを他者に転送できるかどうか。( `NFToken` は常に発行者に直接送信したり、発行者から送信することが可能です)。
|
||||
- 転送が許可されている場合、発行者は販売価格に対する一定の割合で手数料を徴収することができます。
|
||||
- NFTokenを[発行済み通貨](tokens.html)で売却できるか、XRPのみでしか売却できないか。
|
||||
|
||||
|
||||
## `NFToken`のライフサイクル
|
||||
|
||||
誰もが [NFTokenMint トランザクション][] を使って新しい `NFToken` を作成することができます。`NFToken` は発行者アカウントの [NFTokenPage オブジェクト][] に格納されます。所有者または利害関係者は [NFTokenCreateOffer トランザクション][]を送信して `NFToken` の売買を提案できます。レジャーは提案された転送を [NFTokenOffer オブジェクト][]として追跡し、一方が承諾またはキャンセルすると `NFTokenOffer` を削除します。`NFToken` が転送可能であれば、アカウント間で複数回取引することができます。
|
||||
|
||||
[NFTokenBurn トランザクション][] を使用して、自分が所有する `NFToken` を破棄することができます。発行者が `tfBurnable` フラグを有効にしてトークンを発行した場合、発行者は現在の所有者に関係なくトークンを破棄することが可能です。( 例えば、あるイベントのチケットを表すトークンである場合、そのチケットをある時点で消費するといった場合に便利です)。
|
||||
|
||||

|
||||
|
||||
`NFToken` オブジェクトの転送に関する詳細は、[XRP Ledger上でNFTokenを売買する](non-fungible-token-transfers.html) を参照してください。
|
||||
|
||||
|
||||
## 関連項目
|
||||
|
||||
- [NFToken][] データ型
|
||||
- レジャーオブジェクト
|
||||
- [NFTokenOffer オブジェクト][]
|
||||
- [NFTokenPage オブジェクト][]
|
||||
- トランザクション
|
||||
- [NFTokenMint トランザクション][]
|
||||
- [NFTokenCreateOffer トランザクション][]
|
||||
- [NFTokenCancelOffer トランザクション][]
|
||||
- [NFTokenAcceptOffer トランザクション][]
|
||||
- [NFTokenBurn トランザクション][]
|
||||
- API メソッド
|
||||
- [account_nfts メソッド][]
|
||||
- [nft_sell_offers メソッド][]
|
||||
- [nft_buy_offers メソッド][]
|
||||
- [nft_info メソッド][] (Clioサーバのみ)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
html: nftokenoffer.html
|
||||
parent: ledger-object-types.html
|
||||
blurb: NFTを売買するオファーを作成する。
|
||||
filters:
|
||||
- include_code
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenOffer
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
`lsfTransferable` フラグが設定されているトークンは、オファーを使って 参加者間で転送することができます。`NFTokenOffer` オブジェクトは `NFToken` オブジェクトの購入、売却、または譲渡のオファーを表します。`NFToken` の所有者は `NFTokenCreateOffer` を使用して売買を行うことができます。
|
||||
|
||||
|
||||
### `NFTokenOfferID`のフォーマット
|
||||
|
||||
`NFTokenOffer` オブジェクトのユニーク ID (`NFTokenOfferID`) は、以下の値を順番に結合したものである。
|
||||
|
||||
|
||||
|
||||
* `NFTokenOffer` のスペースキー、`0x0074`
|
||||
* オファーを出すアカウントの `AccountID`
|
||||
* `NFTokenCreateOffer` トランザクションが生成する `Sequence` (または `Ticket`)
|
||||
|
||||
|
||||
### `NFTokenOffer`のフィールド
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:--------------------|:------------|:------------------|:------|:-----------|
|
||||
| `Amount` | [通貨額][] | AMOUNT | はい | NFTokenに対して見込まれる、または提示される金額です。トークンに `lsfOnlyXRP` フラグが設定されている場合、金額は XRP で指定する必要があります。XRP 以外の資産を指定する売却オファーは、0 以外の金額を指定する必要があります。XRP を指定する売却オファーは、`無料`にすることができます(つまり、このフィールドは `"0"` とすることができます)。 |
|
||||
| `Destination` | 文字列 | AccountID | いいえ | このオファーの対象となるAccountID。存在する場合、そのアカウントのみがオファーを受け入れることができます。 |
|
||||
| `Expiration` | 数値 | UInt32 | いいえ | オファーが有効でなくなる時刻。値は、リップルエポックからの秒数です。 |
|
||||
| `Flags` | 数値 | UInt32 | はい | このオブジェクトに関連付けられたフラグのセットで、様々なオプションや設定を指定するために使用されます。フラグは、以下の表に示すとおりです。 |
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトの種類を示します(0x0074)。 |
|
||||
| `NFTokenID` | 文字列 | Hash256 | はい | このオファーが参照する NFToken オブジェクトの NFTokenID。 |
|
||||
| `NFTokenOfferNode` | 文字列 | UInt64 | いいえ | トークン購入または売却のオファーディレクトリの中で、このトークンが記録されている内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
|
||||
| `Owner` | 文字列 | AccountID | はい | オファーの作成者であり、所有者であるアカウント。NFToken の現在の所有者のみが NFToken の売却オファーを作成できますが、NFToken の購入オファーはどのアカウントでも作成できます。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | いいえ | このトークンが記録されているオーナーディレクトリ内のページを示す、内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最も最近更新したトランザクションを含むレジャーのインデックス。 |
|
||||
|
||||
|
||||
|
||||
#### NFTokenOffer フラグ
|
||||
|
||||
|
||||
|フラグ名|フラグ値|説明|
|
||||
|---|---|---|
|
||||
| `lsfSellNFToken `| `0x00000001` | 有効な場合、オファーは売却オファーとなります。そうでない場合、オファーは購入オファーとなります。 |
|
||||
|
||||
## `NFTokenOffer` トランザクション
|
||||
|
||||
XRPL上のトークン・オファーは、オーダーブックに品質順に保存され、オンレジャーのメカニズムによって自動的にマッチングされます。`NFTokenOffer`はオーダーブックに保存されず、自動的にマッチングされたり実行されたりすることはありません。
|
||||
|
||||
購入者は `NFToken` の購入を申し出る `NFTokenOffer` を受け入れるかどうかを明示的に選択しなければなりません。同様に、販売者は自分が所有する `NFToken` オブジェクトの購入を申し出る特定の `NFTokenOffer` を受け入れることを明示的に選択する必要があります。
|
||||
|
||||
|
||||
定義されたトランザクションは3つあります。
|
||||
|
||||
|
||||
|
||||
1. `NFTokenCreateOffer`
|
||||
|
||||
|
||||
2. `NFTokenCancelOffer`
|
||||
|
||||
|
||||
3. `NFTokenAcceptOffer`
|
||||
|
||||
|
||||
### `NFTokenOffer` オブジェクトの検索
|
||||
|
||||
各トークンには、2つのディレクトリがあります。1 つはトークンを購入するためのオファー、もう 1 つはトークンを売却するためのオファーが含まれています。これにより、特定のトークンの `NFTokenOffer` を簡単に見つけることができます。オフレッジャー システムが、オファーの取得、提示、通知、作成、照会、承認、キャンセルに使用されることが予想されます。たとえば、マーケットプレイスは、ウェブやアプリベースの直感的なインターフェースをユーザに提供することができます。
|
||||
|
||||
|
||||
### `NFTokenOffer` の準備金
|
||||
|
||||
各NFTokenOfferオブジェクトは、オファーを出すアカウントに準備金の増額を1つ要求します。この記事の執筆時点では、準備金の増分は2 XRPです。この準備金は、オファーをキャンセルすることで 取り戻すことができます。
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -29,7 +29,7 @@ The unique ID (`NFTokenOfferID`) of the `NFTokenOffer` object is the result of t
|
||||
|
||||
| Name |JSON Type | [Internal Type][] | Required? | Description |
|
||||
|:--------------------|:-----------------|:------------------|:------------|:-----------|
|
||||
| `Amount` | object or string | AMOUNT | Yes | Amount expected or offered for the NFToken. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). |
|
||||
| `Amount` | [Currency Amount][] | AMOUNT | Yes | Amount expected or offered for the NFToken. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). |
|
||||
| `Destination` | string | AccountID | No | The AccountID for which this offer is intended. If present, only that account can accept the offer. |
|
||||
| `Expiration` | number | UInt32 | No | The time after which the offer is no longer active. The value is the number of seconds since the Ripple Epoch. |
|
||||
| `Flags` | number | UInt32 | Yes | A set of flags associated with this object, used to specify various options or settings. Flags are listed in the table below. |
|
||||
@@ -76,7 +76,7 @@ Each token has two directories. One contains offers to buy the token and the oth
|
||||
|
||||
### `NFTokenOffer` Reserve
|
||||
|
||||
Each `NFTokenOffer` object costs the account placing the offer one incremental reserve. As of this writing the incremental reserve is 5 XRP. The reserve can be recovered by cancelling the offer.
|
||||
Each `NFTokenOffer` object costs the account placing the offer one incremental reserve. As of this writing the incremental reserve is 2 XRP. The reserve can be recovered by cancelling the offer.
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
---
|
||||
html: nftokenpage.html
|
||||
parent: ledger-object-types.html
|
||||
blurb: NFTokenを記録するためのレジャー構造。
|
||||
filters:
|
||||
- include_code
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenPage
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
`NFTokenPage` オブジェクトは、同じアカウントが所有する `NFToken` オブジェクトのコレクションを表します。一つのアカウントは複数の `NFTokenPage` 型のレジャーオブジェクトを持つことができ、それらは双方向リストを形成します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"LedgerEntryType": "NFTokenPage",
|
||||
"PreviousTokenPage":
|
||||
"598EDFD7CF73460FB8C695d6a9397E907378C8A841F7204C793DCBEF5406",
|
||||
"PreviousTokenNext":
|
||||
"598EDFD7CF73460FB8C695d6a9397E9073781BA3B78198904F659AAA252A",
|
||||
"PreviousTxnID":
|
||||
"95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822",
|
||||
"PreviousTxnLgrSeq":
|
||||
42891441,
|
||||
"NFTokens": [
|
||||
{
|
||||
"NFTokenID":
|
||||
"000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65",
|
||||
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469"
|
||||
},
|
||||
/* 更に多くのオブジェクト */
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
ページのサイズを最小にし、ストレージを最適化するために、`Owner`フィールドは存在しません。なぜなら、それはオブジェクトのレジャー識別子の一部としてエンコードされているからです。
|
||||
|
||||
|
||||
## {{currentpage.name}} フィールド
|
||||
|
||||
`NFTokenPage` オブジェクトは、以下の必須フィールドと任意フィールドを持つことができます。
|
||||
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:--------------------|:----------|:-----------|:----------|:------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトのタイプを識別文字列です。予約されているレジャーの種類は、0x0050 です。|
|
||||
| `NextPageMin` | 文字列 | Hash256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの詳細および使用方法については、NFTokenPageID の構築についての説明以降に記載しています。|
|
||||
| `NFTokens` | オブジェクト | TOKEN | はい | この NFTokenPage オブジェクトに含まれる NFToken オブジェクトのコレクション。本仕様では、1 ページあたり 32 の NFToken オブジェクトを上限としています。オブジェクトは、TokenID をソート パラメータとして使用して、低いものから高いものへとソートされた順序で格納されています。|
|
||||
| `PreviousPageMin` | 文字列 | Hash256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの詳細および使用方法については、NFTokenPageID の構築についての説明以降に記載しています。|
|
||||
| `PreviousTxnID` | 文字列 | HASH256 | いいえ | この NFTokenPage オブジェクトを最も最近変更したトランザクションのトランザクション ID の情報を示します。|
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | この NFTokenPage オブジェクトを最も最近変更したトランザクションを含むレジャーのシーケンスを示します。|
|
||||
|
||||
|
||||
### TokenPage ID のフォーマット
|
||||
|
||||
`NFTokenPage` 識別子は、`NFTokens` に最適で、より効率的なページング構造を採用できるように特別に構築されています。
|
||||
|
||||
`NFTokenPage` の識別子は、そのページの所有者の 160 ビットの `AccountID` と、そのページに特定の `NFTokenID` が含まれるかどうかを示す 96 ビットの値を連結して得られます。
|
||||
|
||||
具体的には、関数 `low96(x)` が 256 ビットの値の下位 96 ビットを返すと仮定すると、`NFTokenID` `A` の NFT は `NFTokenPageID` `B` のページに含めることができるのは `low96(A) >= low96(B)` の場合のみとなります。
|
||||
|
||||
例えば、`000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65`というIDを持つ先ほどのNFTに`low96`関数を適用すると、`42540EE208C3098E00000D65`が返されます。
|
||||
|
||||
この不思議な構造は、SHAMap の構造を利用して、`NFTokenPages` の二重リンクされたリストを反復することなく、個々の `NFToken` オブジェクトを効率的に検索できるようにするものです。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの検索
|
||||
|
||||
特定の `NFToken` を検索するには、上記のように所有者のアカウントとトークンの `NFTokenID` を使用して `NFTokenPageID` を計算します。識別子がその値以下であるレジャーの項目を検索します。そのエントリーが存在しないか、`NFTokenPage` でない場合、`NFToken` は与えられたアカウントによって保持されていません。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの追加
|
||||
|
||||
`NFToken` オブジェクトを追加するには、そのオブジェクトが含まれるべき `NFTokenPage` を見つけ(`NFToken` オブジェクトを検索するのと同じテクニックを使用します)、そのページに追加します。`NFToken` を追加した後にページがオーバーフローした場合は、 `next` と `previous` ページを探し (もしあれば)、その 3 ページでバランスをとりながら、必要に応じて新しいページを挿入します。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの削除
|
||||
|
||||
`NFToken` は同じ手法で削除することもできます。ページ内の `NFToken` の数がある閾値を下回ると、サーバーはそのページを前後のページと統合して準備金を取り戻そうとします。
|
||||
|
||||
|
||||
### `NFTokenPage` オブジェクトの準備金
|
||||
|
||||
`NFTokenPage`ごとに、所有者アカウントに追加で準備金の費用がかかります。つまり、複数のNFTを保有するアカウントでは、NFTあたりの _実効_ 準備金コストは _R_ /32( _R_ は準備金増分)と低くすることが可能です。
|
||||
|
||||
|
||||
### 準備金の実例
|
||||
|
||||
増分準備金の値は、この記事の執筆時点では 2 XRP です。下の表は、あるページが1、8、16、32のNFTを含む場合、トークンごとの _実効_準備金がどの程度になるかを示しています。
|
||||
|
||||
|
||||
| 増分準備金 | 1 NFToken | 8 NFTokens | 16 NFTokens | 32 NFTokens | 64 NFTokens |
|
||||
|:--------------------|:----------|:-----------|:------------|:------------|:------------|
|
||||
| 5 XRP | 5 XRP | 0.625 XRP | 0.3125 XRP | 0.15625 XRP | 0.07812 XRP |
|
||||
| 2 XRP | 2 XRP | 0.25 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP |
|
||||
| 1 XRP | 1 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP | 0.01562 XRP |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
html: nftokenacceptoffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTokenの購入または売却のオファーを受け入れる。
|
||||
labels:
|
||||
- NFTs, Non-fungible Tokens
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenAcceptOffer
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
`NFTokenAcceptOffer` トランザクションは `NFToken` の購入または売却のオファーを受け入れるために使用されます。トランザクションは次のいずれかになります。
|
||||
|
||||
* 1つのオファーを受け入れることを許可する。これは _ダイレクト_ モードと呼ばれます。
|
||||
* 2つの異なるオファー、1つは与えられた `NFToken` の購入を提案し、もう1つは同じ `NFToken` の売却を提案し、アトミックに受け入れられることを許可します。これは _ブローカー_ モードと呼ばれます。
|
||||
|
||||
|
||||
## ブローカー vs. ダイレクト モード
|
||||
|
||||
トランザクションが動作するモードは、トランザクションの `NFTokenSellOffer` フィールドと `NFTokenBuyOffer` フィールドの存在によって決まります。
|
||||
|
||||
| `NFTokenSellOffer` | `NFTokenBuyOffer` | Mode |
|
||||
|:-------------------|:------------------|:---------|
|
||||
| ✔️ | ✔️ | ブローカー |
|
||||
| ✔️ | X | ダイレクト |
|
||||
| X | ✔️ | ダイレクト |
|
||||
|
||||
|
||||
もしこれらのフィールドがどちらも指定されていない場合、トランザクションは不正で、`tem`クラスのエラーを発生させます。
|
||||
|
||||
ブローカーモードの意味合いは、ダイレクト・モードのそれとは若干異なります。トランザクションを送信するアカウントはブローカーとして機能し、2つのオファーをまとめてマッチングさせますが、関係する`NFToken`の所有権を取得することはなく、トランザクションが成功すれば、販売者から購入者に直接転送されます。
|
||||
|
||||
|
||||
## 実行内容
|
||||
|
||||
|
||||
### ダイレクトモード
|
||||
|
||||
ダイレクトモードでは、以下の場合、`NFTokenAcceptOffer`トランザクションは失敗します。
|
||||
|
||||
* `NFTokenAcceptOffer` トランザクションの対象となる `NFTokenOffer` が `NFToken` の`購入`オファーであり、`NFTokenAcceptOffer` を送信したアカウントが、実行時に対応する `NFToken` を所有していない場合。
|
||||
* `NFTokenAcceptOffer` トランザクションの対象となる `NFTokenOffer` は `NFToken` の`売却`オファーであり、実行時に `NFToken` の所有者ではないアカウントが送信している場合。
|
||||
* `NFTokenAcceptOffer` トランザクションの対象となる `NFTokenOffer` は `NFToken` の`売却`オファーであり、実行時に `NFTokenOffer` 内の受信者である `Account` 以外のアカウントによって送信された場合(存在する場合)。
|
||||
* `NFTokenAcceptOffer` トランザクションの対象となる `NFTokenOffer` に `expiration` が設定されており、そのトランザクションが含まれる親レジャーのフィールドの終了時刻が既に経過している場合。
|
||||
* `NFTokenAcceptOffer` トランザクションの対象となる `NFTokenOffer` が、`NFTokenAcceptOffer` を実行するアカウントが所有し、 `NFToken` の売買が行われる場合。
|
||||
|
||||
このような失敗の副作用として、`NFTokenOffer` オブジェクトが削除され、オファーがキャンセルされたかのように準備金が払い戻されることがあります。このため、適切な `tec` クラスのエラーを使用する必要があります。
|
||||
|
||||
トランザクションが正常に実行された場合
|
||||
|
||||
* 既存の `owner` の `NFTokenPage` からトークンが削除され、新しい `owner` の `NFTokenPage` に追加されます。
|
||||
* `NFTokenOffer` で指定された通り、購入者から販売者に資金が移動します。対応する `NFToken` のオファーに `TransferFee` が指定されている場合、`issuer` は指定されたパーセンテージを受け取り、残りは `NFToken` の販売者に送られます。
|
||||
|
||||
|
||||
### ブローカーモード
|
||||
|
||||
ブローカーモードでは、以下の場合、`NFTokenAcceptOffer`トランザクションは失敗します。
|
||||
|
||||
* `NFTokenAcceptOffer` トランザクションに対する `NFTokenOffer` の `購入`オファーがトランザクションを送信するアカウントによって所有されている場合。
|
||||
* `NFTokenAcceptOffer` トランザクションに 対する `NFTokenOffer` の `売却`オファーが、トランザクションを送信するアカウントによって所有されている場合。
|
||||
* `NFToken` の売却オファーを出したアカウントが、その実行時に対応する `NFToken` の現在の所有者ではない場合。
|
||||
* いずれかのオファー(`購入`または`売却`)が`expiration`を指定しており、そのトランザクションが含まれる親レジャーのクローズ時間がすでに経過している場合。
|
||||
|
||||
|
||||
## フィールド
|
||||
|
||||
{% include '_snippets/tx-fields-intro.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------------|:--------------------|:------------------|:--------------|
|
||||
| `NFTokenSellOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken` の売却を提案する `NFTokenOffer` の識別情報です。 |
|
||||
| `NFTokenBuyOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken` の購入を提案する `NFTokenOffer` の識別情報です。 |
|
||||
| `NFTokenBrokerFee` | [通貨額][] | Amount | _(省略可)_ このフィールドはブローカーモードでのみ有効であり、2つのオファーをまとめるための手数料としてブローカーが保持する金額を指定します。残りの金額は買われる `NFToken` の販売者に送られます。指定する場合、発行者が課す送金手数料を考慮する前に、販売者が受け取る金額が少なくとも売却オファーで示された金額になるように手数料を設定しなければなりません。 |
|
||||
|
||||
ダイレクトモードでは、`NFTokenSellOffer` または `NFTokenBuyOffer` フィールドの **いずれか** を指定する必要があります。ブローカーモードでは、**両方**のフィールドを指定する必要があります。
|
||||
|
||||
この機能は、`NFToken`の所有者が第三者のブローカーにトークンの売却を提案し、ブローカーが`NFToken`を所有したり資金を預けることなく、より高額で`NFToken`を売却することを可能にするものです。
|
||||
|
||||
両方のオファーが同じ資産に対するものである場合、資金が転送される順序によって、本来成功するはずの取引が、資金不足のために失敗する可能性があります。決定論的なトランザクション実行を保証し、成功の可能性を最大化するために、`NFToken`を購入しようとするアカウントから先に資金が引き落とされます。ブローカーに支払われる資金は、販売者に入金される前に入金されます。
|
||||
|
||||
ブローカーモードでは、`NFTokenBuyOffer` と `NFTokenSellOffer` の両方が同じ `NFTokenID` を指定する必要があります。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-----------------------------------|:----------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer` と `NFTokenBuyOffer` のどちらも指定されていないか、`NFTokenBrokerFee` に負の値が指定されています。|
|
||||
| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 |
|
||||
| `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 |
|
||||
| `tecINSUFFICIENT_FUNDS` | 購入者が申し出た金額を全額持っていない。購入額がXRPで指定されている場合、[所有者準備金](reserves.html)が原因である可能性があります。購入額が発行済み通貨である場合、トークンが[凍結](freezes.html) されていることが原因と考えられま す。 |
|
||||
| `tecINSUFFICIENT_PAYMENT` | ブローカーモードにおいて、提示された購入額は、`BrokerFee` _および_ `NFToken`の売却コストを支払うには十分な額ではありません。 |
|
||||
| `tecOBJECT_NOT_FOUND` | トランザクションで指定されたオファーがレジャーに存在しません。 |
|
||||
| `tecNFTOKEN_BUY_SELL_MISMATCH` | ブローカーモードにおいて、2つのオファーが有効なマッチングではありません。例えば、販売者が購入者の提示額よりも高い金額を提示している、購入と売却のオファーが異なる通貨で提示されている、販売者が購入者や ブローカーとは異なる販売先を指定している、などです。 |
|
||||
| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | `NFTokenBuyOffer` で識別されるオブジェクトが実際には購入オファーでない、または `NFTokenSellOffer` で識別されるオブジェクトが実際には売却オファーでない場合です。|
|
||||
| `tecNO_PERMISSION` | 販売者が売却する `NFToken` を所有していません。または、マッチングオファーが、オファーを受け入れるアカウントとは異なる `Destination` アカウントを指定しています。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
html: nftokenburn.html
|
||||
parent: transaction-types.html
|
||||
blurb: TokenBurnを使用して、NFTを永久に破棄します。
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenBurn
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
NFTokenBurn トランザクションは、`NFToken` オブジェクトを保持している `NFTokenPage` 内から削除し、トークンをレジャーから削除( _バーン_ )することになります。
|
||||
|
||||
このトランザクションの送信者は、`NFToken` の所有者でなければなりません。`NFToken` が `lsfBurnable` フラグを有効にしている場合、代わりに発行者または発行者の `NFTokenMinter` によって許可されているアカウントの場合があります。
|
||||
|
||||
この操作に成功すると、対応する `NFToken` が削除されます。この操作によって `NFToken` を保持している `NFTokenPage` が空になるか、統合されて `NFTokenPage` が削除されると、所有者準備金が1つ減ります。
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenBurn",
|
||||
"Account": "rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2",
|
||||
"Owner": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||
"Fee": "10",
|
||||
"NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenID` | 文字列 | Hash256 | このトランザクションによって削除される `NFToken` を指定します。 |
|
||||
| `Owner` | 文字列 | AccountID | _(省略可)_ Burnする`NFToken`の所有者。所有者がこのトランザクションを送信するアカウントと異なる場合にのみ使用されます。発行者または許可された発行者は、`lsfBurnable`フラグが有効なNFTをBurnするために、このフィールドを使用することができます。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------|:--------------------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 |
|
||||
| `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
html: nftokencanceloffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTokenの売買のための既存のトークンへのオファーをキャンセルする。
|
||||
labels:
|
||||
- NFTs, Non-fungible Tokens
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenCancelOffer
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
`NFTokenCancelOffer` トランザクションは、`NFTokenCreateOffer` を使用して作成した既存のトークンへのオファーをキャンセルするために使用できます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenCancelOffer",
|
||||
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"NFTokenOffers": [
|
||||
"9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## アクセス権
|
||||
|
||||
`NFTokenOffer` オブジェクトで表される既存のオファーは、以下の方法でキャンセルすることができます。
|
||||
|
||||
* `NFTokenOffer`を最初に作成したアカウント
|
||||
* `NFTokenOffer`の `Destination` フィールドのアカウント(存在する場合)
|
||||
* `NFTokenOffer`が有効期限を指定しており、`NFTokenCancelOffer`が含まれる親レジャーのクローズ時刻が有効期限より大きい場合、任意のアカウントに設定することができます
|
||||
|
||||
このトランザクションは、リストアップされた `NFTokenOffer` オブジェクトがあればレジャーから削除し、それに応じて必要な準備金を調整します。`NFTokenOffer` が見つからなくてもエラーにはなりません。その場合、トランザクションは正常に完了するでしょう。
|
||||
|
||||
{% include '_snippets/tx-fields-intro.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする `NFTokenOffer` オブジェクトの ID の配列 (`NFToken` オブジェクトの ID ではなく、`NFTokenOffer` オブジェクトの ID)です。各エントリーは [NFTokenOffer](nftokenoffer.html) オブジェクトの異なる [オブジェクト ID](ledger-object-ids.html) である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 |
|
||||
|
||||
`NFTokenOffers` フィールドの ID の 1 つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します(たとえば、それらのオファーはすでに削除されている可能性があります)。ID の 1 つが存在するオブジェクトを指していても、[NFTokenOffer](nftokenoffer.html) オブジェクトでない場合は、エラーでトランザクションが失敗します。
|
||||
|
||||
注意すべき点は、誤って `nft_offer_index` ではなく `nft_id` を指定してしまった場合、 `tesSUCCESS` 応答を受け取る可能性があることです。適切にフォーマットされた ID 値が見つからない場合、システムは `NFTokenOffer` が既に削除されたと判断するからです。
|
||||
|
||||
ID のいずれかが、存在するが [NFTokenOffer](nftokenoffer.html) オブジェクトでないオブジェクトを指している場合、トランザクションはエラーで失敗します。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------|:--------------------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers` 配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 |
|
||||
| `tecNO_PERMISSION` | `NFTokenOffers` フィールドの ID のうち少なくとも 1 つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,74 @@
|
||||
---
|
||||
html: nftokencreateoffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTの売買のオファーを作成する。
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenCreateOffer
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
トランザクションを送信するアカウントが所有する `NFToken` に対する新しい _売却_ オファー、または別のアカウントが所有する `NFToken` に対する新しい _購入_ オファー を作成します。
|
||||
|
||||
成功した場合、トランザクションは[NFTokenOfferオブジェクト][]を作成します。各オファーは、オファーを提示したアカウントの [所有者準備金](reserves.html) に関連づけて1つのオブジェクトとしてカウントされます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenCreateOffer",
|
||||
"Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX",
|
||||
"NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007",
|
||||
"Amount": "1000000",
|
||||
"Flags": 1
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
{% include '_snippets/tx-fields-intro.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `Owner` | 文字列 | AccountID | _(省略可)_ 対応する `NFToken` の所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、 `Account` フィールドとは異なるものでなければなりません (すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーで ある場合、このフィールドは存在してはいけません。所有者は暗黙のうちに `Account` と同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。 |
|
||||
| `NFTokenID` | 文字列 | Hash256 | オファーが参照する `NFToken` オブジェクトを指定します。 |
|
||||
| `Amount` | [通貨額][] | Amount | 対応する `NFToken` に対する売却希望額または売却提示額を表します。0 を指定することは、トークンの現在の所有者が、誰でも、または `Destination` フィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが無効となる時間を指定します。値は[Rippleエポック以降の経過秒数][]です。 |
|
||||
| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。 |
|
||||
|
||||
|
||||
## NFTokenCreateOfferフラグ
|
||||
|
||||
NFTokenCreateOfferタイプのトランザクションは、以下のように[`Flags`フィールド](transaction-common-fields.html#flags-field)に追加の値を設定することが可能です。
|
||||
|
||||
| フラグ名 | 16進数値 | 整数値 | 説明 |
|
||||
|:----------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfSellNFToken` | `0x00000001` | `1` | 有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:---------------------------------|:------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temBAD_AMOUNT` | `Amount` フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額は発行済み通貨であるが `NFToken` で [`lsfOnlyXRP` flag](nftoken.html#nftoken-フラグ) が有効になっている場合などです。 |
|
||||
| `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 |
|
||||
| `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 |
|
||||
| `tecEXPIRED` | 指定された`Expiration`の時間は既に経過しています。 |
|
||||
| `tecFROZEN` | `Amount`は発行済み通貨で、このオファーからトークンを受け取るトラストラインは[凍結](freezes.html)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](reserves.html) を満たすのに十分なXRPを持っていません。 |
|
||||
| `tecNO_DST` | `Destination`に指定されたアカウントがレジャーに存在しません。 |
|
||||
| `tecNO_ENTRY` | `NFToken`フィールドで指定したアカウントは所有していません。 |
|
||||
| `tecNO_ISSUER` | `Amount`フィールドで指定した発行者が存在しません。 |
|
||||
| `tecNO_LINE` | `Amount`フィールドは発行済み通貨ですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は [`lsfTrustLine` フラグ](nftoken.html#nftoken-フラグ) が有効ではありません。 |
|
||||
| `tecUNFUNDED_OFFER` | 購入オファーの場合、送信者は `Amount` フィールドで指定された通貨を利用可能です。もし `Amount` が XRP である場合、これは準備不足によるものかもしれません。もし `Amount` が発行済み通貨である場合、これは[凍結](freezes.html) されている可能性があります。 |
|
||||
| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken` は [`lsfTransferable` flag](nftoken.html#nftoken-flags) が無効になっており、このトランザクションでは `NFToken` を発行者に転送したり発行者から転送したりすることはできません。 |
|
||||
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -0,0 +1,121 @@
|
||||
---
|
||||
html: nftokenmint.html
|
||||
parent: transaction-types.html
|
||||
blurb: TokenMintを使用して新規NFTを発行する。.
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
status: not_enabled
|
||||
---
|
||||
# NFTokenMint
|
||||
[[ソース]](https://github.com/ripple/rippled/blob/xls20/src/ripple/app/tx/impl/NFTokenMint.cpp)
|
||||
{% include '_snippets/nfts-disclaimer.md' %}
|
||||
|
||||
`NFTokenMint` トランザクションは非代替性トークンを作成し、`NFTokenMinter` の関連する [NFTokenPage object][] に [NFToken][] オブジェクトとして追加します。このトランザクションの必須パラメーターは `Token` フィールドで、実際のトークンを指定します。このトランザクションは `NFTokenMinter` にとって、不変と定義されているトークン フィールド (例えば `Flags`) を設定することができる唯一の方法です。
|
||||
|
||||
|
||||
## {currentpage.name}} JSONの例
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenMint",
|
||||
"Account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||
"TransferFee": 314,
|
||||
"NFTokenTaxon": 0,
|
||||
"Flags": 8,
|
||||
"Fee": "10",
|
||||
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
|
||||
"Memos": [
|
||||
{
|
||||
"Memo": {
|
||||
"MemoType":
|
||||
"687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963",
|
||||
"MemoData": "72656E74"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
{% include '_snippets/tx-fields-intro.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `NFTokenTaxon` | 数値 | UInt32 | トークンに関連する分類群。Taxonは通常、トークンの発行者が選択した値である。1つのTaxonは複数のトークンに使用することができます。`0xFFFF'FFFF`より大きいTaxonの識別子は使用できません。 |
|
||||
| `Issuer` | 文字列 | AccountID | _(省略可)_ The 送信元アカウントが他のアカウントの代理としてトークンを発行する場合における、トークンの発行者。トランザクションを送信するアカウントが `NFToken` の発行者である場合、このフィールドは指定してはいけません。指定される場合、発行者の [AccountRoot オブジェクト][] には `NFTokenMinter` フィールドが、このトランザクションの送信者 (このトランザクションの `Account` フィールド) に設定されていなければなりません。 |
|
||||
| `TransferFee` | 数値 | UInt16 | _(省略可)_ この値は、`NFToken`の二次販売が許可されている場合に、発行者が徴収する手数料を指定します。このフィールドの有効な値は0から50000の間で、0.001刻みで0.00%から50.00%の送金手数料を設定することができます。このフィールドが設定されている場合、トランザクションは [`tfTransferable` フラグ](#nftokenmintフラグ) を有効にしなければなりません。 |
|
||||
| `URI` | 文字列 | Blob | _(省略可)_ 最大 256 バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされる必要があります。URIを16進数に変換するために、[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティを使用することができます。これは、NFTに関連するデータまたはメタデータを指し示すURIであることを想定しています。コンテンツは、HTTP または HTTPS URL、IPFS URI、マグネットリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397) としてエンコードされた即値データ、あるいは発行者固有のエンコーディングにデコードされていることがあります。URIの有効性はチェックされません。 |
|
||||
|
||||
|
||||
|
||||
## NFTokenMintフラグ
|
||||
|
||||
NFTokenMint型のトランザクションでは、以下のように[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)に追加の値を設定することが可能です。
|
||||
|
||||
| フラグ名 | 16進数値 | 整数値 | 説明 |
|
||||
|:--------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfBurnable` | `0x00000001` | 1 | 発行者 (または発行者が許可した者) が `NFToken` を破棄できるようにします。(`NFToken` の所有者は常に破棄することができます)。 |
|
||||
| `tfOnlyXRP` | `0x00000002` | 2 | 発行された `NFToken` は XRP でのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者が XRP 以外の発行済み通貨で手数料を受け取りたくない場合に望ましいでしょう。 |
|
||||
| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した `NFToken` を転送する際に受け取る手数料を保有するために、自動的に [トラストライン](trust-lines-and-issuing.html) を作成します。[fixRemoveNFTokenAutoTrustLineの修正][]により、このフラグの設定は無効となります。 |
|
||||
| `tfTransferable` | `0x00000008` | 8 | 発行された `NFToken` は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ 転送することができます。 |
|
||||
|
||||
|
||||
## 追加情報の埋め込み
|
||||
|
||||
発行時に追加情報を指定する必要がある場合 (たとえば、特定の [区画] (https://en.wikipedia.org/wiki/Plat) を参照して不動産 を特定できる詳細情報、[車両識別番号] (https://ja.wikipedia.org/wiki/%E8%BB%8A%E4%B8%A1%E8%AD%98%E5%88%A5%E7%95%AA%E5%8F%B7) を指定して車両を特定できる詳細情報、その他オブジェクト固有の説明)、 [取引メモ] (transaction-common-fields.html#memosフィールド) を使用することができます。メモは署名された取引の一部であり、履歴アーカイブから入手できますが、レジャーの状態データには保存されません。
|
||||
|
||||
## 他のアカウントの代わりとして発行する
|
||||
|
||||
別のアカウントで NFT を発行する場合、次の 2 つを実行する必要があります。*アカウント A* があなたのアカウントで、*アカウント B* が NFToken を発行したいアカウントであるとします。
|
||||
|
||||
1. *アカウントB*の`NFTokenMinter`アカウント設定を、*アカウントA*に設定します。(これは、*アカウントB*が、自分に代わってNFTを作成するために*アカウントA*を信頼することを意味します)。
|
||||
2. NFTokenを発行する際、`Issuer` フィールドをアカウントBに設定します。
|
||||
|
||||
### NFTokenMintと発行者の組み合わせ例
|
||||
|
||||
```json
|
||||
{
|
||||
"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` と設定して、そのアカウントが自身に代わってトークンを発行する権限を与えていると想定したものです。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:------------------------------|:---------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temBAD_NFTOKEN_TRANSFER_FEE` | `TransferFee`が許容範囲外です。 |
|
||||
| `temINVALID_FLAG` | `Flags` 値には、許可されていない、または有効なフラグでないビットが有効になっています。[fixRemoveNFTokenAutoTrustLine amendment][] が有効になっている場合、`tfTrustLine` フラグはこのエラーを発生させます。|
|
||||
| `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 |
|
||||
| `tecNO_ISSUER` | `Issuer`は、レジャーに存在しないアカウントを指定しています。 |
|
||||
| `tecNO_PERMISSION` | `Issuer`フィールドで参照されるアカウントは、このトランザクションの送信者(`NFTokenMinter`設定を使用)が自身の代わりに発行することを承認していません。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | トークンを発行した後、オーナーは更新された[ 準備金要件 ](reserves.html) を満たせなくなります。新しい`NFToken`は、新しい[NFTokenPageオブジェクト][]を必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32 NFTを格納することができます。|
|
||||
| `tecMAX_SEQUENCE_REACHED` | `Issuer`の `MintedNFTokens` フィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で 2<sup>32</sup>-1 つの `NFToken` を発行した場合にのみ発生します。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -161,9 +161,7 @@ targets:
|
||||
# the updates to ledger_entry aren't translated either
|
||||
"ledger_entry.html#get-paychannel-object": "ledger_entry.html"
|
||||
"reliable-transaction-submission.html#ledger-gaps": "reliable-transaction-submission.html#レジャーのギャップ"
|
||||
# Fix links from untranslated NFT transaction references:
|
||||
"transaction-common-fields.html#flags-field": "transaction-common-fields.html#flagsフィールド"
|
||||
"transaction-common-fields.html#memos-field": "transaction-common-fields.html#memosフィールド"
|
||||
# "transaction-common-fields.html#memos-field": "transaction-common-fields.html#memosフィールド"
|
||||
"basic-data-types.html#specifying-ledgers": "basic-data-types.html#レジャーの指定"
|
||||
# Fix links from untranslated build-a-desktop-wallet-in-python.html:
|
||||
"subscribe.html#ledger-stream": "subscribe.html#レジャーストリーム"
|
||||
@@ -175,10 +173,6 @@ targets:
|
||||
# Fix links from untranslated common-misconceptions-about-freezes.html
|
||||
# Not updated to have the table. The top-level of the page is pretty close.
|
||||
"currency-formats.html#comparison": "currency-formats.html"
|
||||
# Fix links from untranslated NFToken tx refs to translated NFToken page
|
||||
"nftoken.html#nftoken-flags": "nftoken.html#nftoken-フラグ"
|
||||
"nftoken.html#taxon": "nftoken.html#分類群"
|
||||
"basic-data-types.html#addresses": "basic-data-types.html#アドレス"
|
||||
# Fix links from untranslated Clio server_info:
|
||||
"peer-protocol.html#node-key-pair": "peer-protocol.html#ノードキーペア"
|
||||
"transaction-cost.html#local-load-cost": "transaction-cost.html#ローカル負荷コスト"
|
||||
@@ -191,6 +185,11 @@ targets:
|
||||
"transaction-basics.html#authorizing-transactions": "transaction-basics.html#トランザクションの識別"
|
||||
# Fix link from untranslated account_nfts.html
|
||||
"nftoken.html#nftokentaxon": "nftoken.html#分類群"
|
||||
# Fix links from untranslated NFT API methods:
|
||||
"transaction-common-fields.html#flags-field": "transaction-common-fields.html#flagsフィールド"
|
||||
"nftoken.html#nftoken-flags": "nftoken.html#nftoken-フラグ"
|
||||
"basic-data-types.html#addresses": "basic-data-types.html#アドレス"
|
||||
"nftokenoffer.html#nftokenoffer-flags": "nftokenoffer.html#nftokenoffer-フラグ"
|
||||
|
||||
pages:
|
||||
|
||||
@@ -717,6 +716,7 @@ pages:
|
||||
targets:
|
||||
- en
|
||||
|
||||
# TODO: Outdated translation
|
||||
- md: concepts/tokens/tokens.ja.md
|
||||
targets:
|
||||
- ja
|
||||
@@ -734,7 +734,7 @@ pages:
|
||||
html: issued-currencies.html
|
||||
template: pagetype-redirect.html.jinja
|
||||
redirect_url: tokens.html
|
||||
blurb: XRP Ledgerでは、XRP以外の通貨はすべて発行済み通貨とされます。XRP Ledgerで発行済み通貨がどのように機能するか説明します。
|
||||
blurb: 誰もがXRP Ledger上でデジタル価値を表すトークンを作ることができます。
|
||||
targets:
|
||||
- ja
|
||||
|
||||
@@ -757,11 +757,17 @@ pages:
|
||||
- md: concepts/tokens/non-fungible-tokens.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: concepts/tokens/non-fungible-tokens.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: concepts/tokens/non-fungible-token-transfers.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: concepts/tokens/non-fungible-token-transfers.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: concepts/tokens/nftoken-batch-minting.md
|
||||
@@ -2288,11 +2294,17 @@ pages:
|
||||
- md: references/protocol-reference/ledger-data/ledger-object-types/nftokenoffer.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/ledger-data/ledger-object-types/nftokenoffer.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/ledger-data/ledger-object-types/nftokenpage.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/ledger-data/ledger-object-types/nftokenpage.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/ledger-data/ledger-object-types/offer.md
|
||||
@@ -2437,27 +2449,41 @@ pages:
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenacceptoffer.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenacceptoffer.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenburn.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenburn.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokencanceloffer.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokencanceloffer.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokencreateoffer.md
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokencreateoffer.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenmint.md
|
||||
targets:
|
||||
- en
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/nftokenmint.ja.md
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/protocol-reference/transactions/transaction-types/offercancel.md
|
||||
|
||||
Reference in New Issue
Block a user