mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-12-03 18:15:49 +00:00
Add status disclaimer to NFT pages
This commit is contained in:
1
content/_snippets/nfts-disclaimer.md
Normal file
1
content/_snippets/nfts-disclaimer.md
Normal file
@@ -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._
|
||||
@@ -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.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
<table>
|
||||
@@ -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
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
<li>match the <code>Issuer</code> field in the <code>NFToken</code> object; or
|
||||
|
||||
<li>match the <code>MintAccount</code> field in the <code>AccountRoot</code> of the <code>Issuer</code> field in the <code>NFToken</code> object.
|
||||
<li>match the <code>MintAccount</code> field in the <code>AccountRoot</code> of the <code>Issuer</code> field in the <code>NFToken</code> object.
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
@@ -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.
|
||||
<li>
|
||||
If the offer is to buy a token, this field must be present and it must be different than <code>Account</code> (since an offer to buy a token one already holds is meaningless).
|
||||
|
||||
<li>If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as <code>Account</code> (since an offer to sell a token one doesn't already hold is meaningless).
|
||||
<li>If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as <code>Account</code> (since an offer to sell a token one doesn't already hold is meaningless).
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
@@ -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
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user