diff --git a/content/_snippets/nfts-disclaimer.md b/content/_snippets/nfts-disclaimer.md
new file mode 100644
index 0000000000..5d7e4e36fe
--- /dev/null
+++ b/content/_snippets/nfts-disclaimer.md
@@ -0,0 +1 @@
+_The XLS-20 standard for NFTs :not_enabled: has a preliminary implementation that can be used in test networks, but is not yet available as an [amendment](amendments.html) to the XRP Ledger protocol. An amendment may be included in a future XRP Ledger release._
diff --git a/content/concepts/nft-concepts/nft-conceptual-overview.md b/content/concepts/nft-concepts/nft-conceptual-overview.md
index 709ae2ae4b..da65b01fe1 100644
--- a/content/concepts/nft-concepts/nft-conceptual-overview.md
+++ b/content/concepts/nft-concepts/nft-conceptual-overview.md
@@ -10,8 +10,9 @@ status: not_enabled
---
# NFT Conceptual Overview
+{% include '_snippets/nfts-disclaimer.md' %}
-The XRP Ledger offers support for tokens, also known as _IOUs _or _issued assets_. Such assets are, primarily, fungible.
+The XRP Ledger offers support for tokens, also known as _IOUs _or _issued assets_. Such assets are, primarily, fungible.
Fun·gi·ble /ˈfənjəbəl/ (adj)
@@ -27,7 +28,7 @@ A good example of a fungible item might be a postage stamp. If you are standing

-But since you are standing around in 1919, you might be offered 24-cent airmail stamps where the aeroplane on the stamp is accidentally printed upside down. These are the world famous “Inverted Jenny” stamps. Only 100 were circulated on a single sheet of stamps, making them extremely rare and sought after. The current value of each mint condition stamp is appraised at over $1.5 million dollars.
+But since you are standing around in 1919, you might be offered 24-cent airmail stamps where the aeroplane on the stamp is accidentally printed upside down. These are the world famous “Inverted Jenny” stamps. Only 100 were circulated on a single sheet of stamps, making them extremely rare and sought after. The current value of each mint condition stamp is appraised at over $1.5 million dollars.

diff --git a/content/concepts/nft-concepts/nftoken.md b/content/concepts/nft-concepts/nftoken.md
index 7b2144edc4..cc8a0ecc51 100644
--- a/content/concepts/nft-concepts/nftoken.md
+++ b/content/concepts/nft-concepts/nftoken.md
@@ -9,6 +9,7 @@ labels:
status: not_enabled
---
# The `NFToken` Object
+{% include '_snippets/nfts-disclaimer.md' %}
The `NFToken` object represents a single NFT. This is an example of an `NFToken` object in JSON format, consisting of `TokenID` and `URI` fields.
@@ -47,7 +48,7 @@ The 16-bit flags, transfer fee fields, the 32-bit taxon, and the sequence number
## Flags
-Flags are properties or other options associated with the `NFToken` object.
+Flags are properties or other options associated with the `NFToken` object.
@@ -136,7 +137,7 @@ The third section of the TokenID is a big endian representation of the issuer’
### Taxon
The fourth section is a taxon created by the issuer.
-
+

An issuer might issue several NFTs with the same taxon; to ensure that NFTs are spread across multiple pages, the taxon is scrambled using the fifth section, a dumb sequential number, as the seed for a random number generator. The scrambled value is stored with the `NFToken`, but the unscrambled value is the actual taxon.
@@ -151,7 +152,7 @@ Notice that the scrambled version of the taxon is `0xBC8B858E`: the scrambled ve
The URI field points to the data and/or metadata associated with the `NFToken`. This field need not be an HTTP or HTTPS URL; it could be an IPFS URI, a magnet link, immediate data encoded as an RFC2379 ["data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an opaque issuer-specific encoding. The URI is not checked for validity, but the field is limited to a maximum length of 256 bytes.
-One drawback of using this method is that the value is immutable, so it commits the issuer to hosting the data in perpetuity.
+One drawback of using this method is that the value is immutable, so it commits the issuer to hosting the data in perpetuity.
# Retrieving `NFToken` Data and Metadata
diff --git a/content/concepts/nft-concepts/nftokenburn.md b/content/concepts/nft-concepts/nftokenburn.md
index 490dfe020f..3567157783 100644
--- a/content/concepts/nft-concepts/nftokenburn.md
+++ b/content/concepts/nft-concepts/nftokenburn.md
@@ -9,6 +9,7 @@ labels:
status: not_enabled
---
# The `NFTokenBurn` Transaction
+{% include '_snippets/nfts-disclaimer.md' %}
The `NFTokenBurn` transaction is used to remove a `NFToken` object from the `NFTokenPage` in which it is being held, effectively removing the token from the ledger (_burning_ it).
diff --git a/content/concepts/nft-concepts/nftokenmint.md b/content/concepts/nft-concepts/nftokenmint.md
index 70a4b3a850..a2557e09d7 100644
--- a/content/concepts/nft-concepts/nftokenmint.md
+++ b/content/concepts/nft-concepts/nftokenmint.md
@@ -9,6 +9,7 @@ labels:
status: not_enabled
---
# The `NFTokenMint` Transaction
+{% include '_snippets/nfts-disclaimer.md' %}
The `NFTokenMint` transaction creates a `NFToken` object and adds it to the relevant `NFTokenPage` object of the `minter`. A required parameter to this transaction is the `Token` field specifying the actual token. This transaction is the only opportunity the `minter` has to specify any token fields that are defined as immutable (for example, the `TokenFlags`).
@@ -91,7 +92,7 @@ In executing, this transaction examines the `MintedTokens` field in the account
match the Issuer field in the NFToken object; or
-match the MintAccount field in the AccountRoot of the Issuer field in the NFToken object.
+match the MintAccount field in the AccountRoot of the Issuer field in the NFToken object.
diff --git a/content/concepts/nft-concepts/nftokenoffer.md b/content/concepts/nft-concepts/nftokenoffer.md
index 62fbe96aa6..4388511667 100644
--- a/content/concepts/nft-concepts/nftokenoffer.md
+++ b/content/concepts/nft-concepts/nftokenoffer.md
@@ -9,6 +9,7 @@ labels:
status: not_enabled
---
# The `NFTokenOffer` Ledger Entry
+{% include '_snippets/nfts-disclaimer.md' %}
Tokens that have the `lsfTransferable` flag set can be transferred among participants using offers.
@@ -307,7 +308,7 @@ Each offer costs one incremental reserve.
If the offer is to buy a token, this field must be present and it must be different than Account (since an offer to buy a token one already holds is meaningless).
-If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as Account (since an offer to sell a token one doesn't already hold is meaningless).
+If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as Account (since an offer to sell a token one doesn't already hold is meaningless).
diff --git a/content/concepts/nft-concepts/nftokenpage.md b/content/concepts/nft-concepts/nftokenpage.md
index 6f77359af1..4ff7b37e3d 100644
--- a/content/concepts/nft-concepts/nftokenpage.md
+++ b/content/concepts/nft-concepts/nftokenpage.md
@@ -9,6 +9,7 @@ labels:
status: not_enabled
---
# The `NFTokenPage` Object
+{% include '_snippets/nfts-disclaimer.md' %}
The `NFTokenPage` object represents a collection of `NFToken` objects owned by the same account. An account can have multiple `NFTokenPage` ledger objects, which form a doubly-linked list (DLL).
@@ -20,16 +21,16 @@ The following is an example `NFTokenPage` object in JSON format.
"LedgerEntryType": "NFTokenPage",
"PreviousTokenPage":
"598EDFD7CF73460FB8C695d6a9397E907378C8A841F7204C793DCBEF5406",
- "PreviousTokenNext":
+ "PreviousTokenNext":
"598EDFD7CF73460FB8C695d6a9397E9073781BA3B78198904F659AAA252A",
- "PreviousTxnID":
+ "PreviousTxnID":
"95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822",
- "PreviousTxnLgrSeq":
+ "PreviousTxnLgrSeq":
42891441,
"Tokens":
{
{
- "TokenID":
+ "TokenID":
"000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65",
"URI":
"ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi"
@@ -234,4 +235,3 @@ The value of the incremental reserve is, as of this writing, 2 XRP. The table be
-
diff --git a/content/tutorials/use-nfts/nftoken-tester-tutorial.md b/content/tutorials/use-nfts/nftoken-tester-tutorial.md
index 9a2b5b27bc..6edce1b3ea 100644
--- a/content/tutorials/use-nfts/nftoken-tester-tutorial.md
+++ b/content/tutorials/use-nfts/nftoken-tester-tutorial.md
@@ -10,6 +10,8 @@ status: not_enabled
---
# NFToken Tester Tutorial
+{% include '_snippets/nfts-disclaimer.md' %}
+
This example builds a JavaScript test harness where you can create NFTokens and associated transactions. Each button triggers a frequently used request or transaction used to manage `NFTokens`. The fields provided let you enter required parameters.
@@ -131,7 +133,7 @@ async function mintToken() {
```
console.log("Transaction result:", tx.result.meta.TransactionResult)
- console.log("Balance changes:",
+ console.log("Balance changes:",
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -231,7 +233,7 @@ async function getTokens() {
## The `NFTokenBurn` Transaction
-Use `NFTokenBurn` to permanently destroy a `NFToken`. In practice, the `NFToken` is transferred to an account that is inaccessible, rendering it irretrievable.
+Use `NFTokenBurn` to permanently destroy a `NFToken`. In practice, the `NFToken` is transferred to an account that is inaccessible, rendering it irretrievable.
To destroy a `NFToken`:
@@ -322,7 +324,7 @@ async function burnToken() {
```
console.log(nfts)
console.log("Transaction result:", tx.result.meta.TransactionResult)
- console.log("Balance changes:",
+ console.log("Balance changes:",
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -347,7 +349,7 @@ You use `NFTokenCreateOffer` to offer `NFTokens` for sale or to propose a purcha
### The `createSellOffer()` function
-The `createSellOffer`() function adds an item to the ledger placing a `NFToken` from your account up for sale. Other accounts can discover the offer and choose to accept the transaction to purchase your item.
+The `createSellOffer`() function adds an item to the ledger placing a `NFToken` from your account up for sale. Other accounts can discover the offer and choose to accept the transaction to purchase your item.
To create an offer to sell a `NFToken`:
@@ -457,9 +459,9 @@ async function createSellOffer() {
```
- console.log("Transaction result:",
+ console.log("Transaction result:",
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
- console.log("Balance changes:",
+ console.log("Balance changes:",
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -590,9 +592,9 @@ async function createBuyOffer() {
```
- console.log("Transaction result:",
+ console.log("Transaction result:",
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
- console.log("Balance changes:",
+ console.log("Balance changes:",
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -768,7 +770,7 @@ async function cancelOffer() {
```
- const tx = await client.submitAndWait(transactionBlob,{wallet})
+ const tx = await client.submitAndWait(transactionBlob,{wallet})
```
@@ -810,9 +812,9 @@ async function cancelOffer() {
```
console.log(JSON.stringify(nftBuyOffers,null,2))
- console.log("Transaction result:",
+ console.log("Transaction result:",
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
- console.log("Balance changes:",
+ console.log("Balance changes:",
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -900,7 +902,7 @@ async function acceptSellOffer() {
```
- const tx = await client.submitAndWait(transactionBlob,{wallet})
+ const tx = await client.submitAndWait(transactionBlob,{wallet})
```
@@ -915,10 +917,10 @@ async function acceptSellOffer() {
account: wallet.classicAddress
})
console.log(JSON.stringify(nfts,null,2))
- console.log("Transaction result:",
+ console.log("Transaction result:",
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
- console.log("Balance changes:",
- JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
+ console.log("Balance changes:",
+ JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```
@@ -1000,7 +1002,7 @@ async function acceptBuyOffer() {
```
- const tx = await client.submitAndWait(transactionBlob,{wallet})
+ const tx = await client.submitAndWait(transactionBlob,{wallet})
```
@@ -1015,10 +1017,10 @@ async function acceptBuyOffer() {
account: wallet.classicAddress
})
console.log(JSON.stringify(nfts,null,2))
- console.log("Transaction result:",
+ console.log("Transaction result:",
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
console.log("Balance changes:",
- JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
+ JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
```