WTF is an NFT?!

11 min readNov 10, 2021

The title of this blog is both a question and a statement. The biggest question when speaking with artists, photographers, crypto-enthusiasts and business individuals is…WTF is an NFT?. It’s a good question and HadaNFT does not claim to have all the answers.

Without going into a long blog about fungibility; a non-fungible asset may be simply defined as “a good or asset which is not readily interchangeable”. For example, paintings, tapestries or jewellery are not fungible. An NFT is a tokenised representation of a particular non-fungible asset which could be in digital form or a tangible real world object.

As a statement; WTF is now a complete XLS-14d NFT on the XRPL, at least in the best capacity available at present. We’ve used a hybrid of sources to develop what we hope may go some way to developing a standard for NFTs on the XRPL and beyond and baseline for us to develop upon.

There are multiple components to an NFT which exceed the creation of a token, that’s the easy bit. We see four important components which are: Artwork, Distribution, Metadata, and Tokenisation.

There are specific challenges associated with each of these components much of which is unique to the type of art. There is a process with tokenisation at the end, immutably recording the metadata of the artwork on the ledger. This was not the case with WTF as the token issuance preceded the artwork and metadata creation. However, here’s our attempt at a work around and how best an XLS-14 NFT may work going forward.


The WTF artwork was decided by a competition hosted on our website. The winner was AldiSyahputra with the WTF NFT x Hada Coin. You can find more details about the competition on our previous blog.

Congratulations Aldi…

Still Image or master video file — Medium doesn’t like the movie file.

The following is a link to the WTF master video file stored on the decentralised storage platform IPFS.

However, there is more to an NFT then the art alone. As with any art the originality, story and provenance are all important and may vary depending on the type of art. The winning entry for WTF is a movie file (.mp4) made up of a background and foreground image.

Background Image
Foreground Image

The artist first created a movie file of a rotating coin with a greenscreen background in Adobe After Effects later inserting the background image.

Still image of coin and greenscreen background.

Do all these basic components form part of the NFT?

Not necessarily, for example, a professional photographer may wish to upload an edited .jpg and maintain the original .raw image file or a songwriter may or may not wish to include the lyrics or score to their music.

In the instance of WTF we decided to include the individual components which make up the final image to demonstrate an NFT is not necessarily a single file.

Other components which contribute to a movie could include audio files, trailers, written descriptions, subtitles, promotional material and credits.

The decision to include these different components is ultimately up to the artist or copyright owner. Other considerations for a platform or artist must include the fair use of any artwork or restrictions of use, each creating their own challenges and requirements for distribution. These different requirements must be accommodated by any minting platform or service as well as the downstream protection of any intellectual property.


Safe, efficient and long lasting distribution of the NFT files, images and art are critical if NFTs are to maintain long-term viability.

The average website exists for 3 years. Simply hosting an image on a webserver does not ensure the long-term survival of the image or file. Multiple centralised and decentralised storage options are available and a combination may be appropriate.

We decided to go for a decentralised option using IPFS and the Pinata pinning service with a dedicated gateway as well as hosting the image on our website. Other storage and distribution options are being investigated including ASW, Wayback Machine, self-hosting or other distributed storage systems (i.e. StorX, Filecoin) to provide redundancies and ensure the NFT files always remain online. It is important any NFTs created outlive our website and existing centralised storage options.

It should be noted, Pinata recently introduced an NFT management system with submarining (file privatisation). However, it appears to be Ethereum based at present.

The WTF artwork and metadata has now been complete with all the associated files loaded into a WTF master folder on IPFS.

WTF NFT master folder IPFS

The master folder contains all the image files as well as the .json metadata file and an HadaNFT Certificate of Authenticity (CoA).

A copy of the movie file is also hosted on our website.


Metadata is a key component for an NFT linking the artwork with the tokenisation on the ledger. Currently, there is no standard for XRPL NFTs with respect to type, content and location of the metadata. Proposals such as XLS-14d and XLS-16d exist but no metadata standard or code of best practice has been decided as yet. Any metadata code of best practice would be relevant to all methods of tokenisation as well as any future native functionality proposed by XLS-20d. Tokenisation, metadata and NFT creation are all intrinsically linked but are also mutually exclusive. There is an order or procedure of events which must occur prior to generating the final .json file and encoding the metadata into the ledger (issuing the token / updating trustline).

Here is the WTF.json file.

For IPFS and other distributed storage systems the hash and content ID (CID) are unique to each item and are required before the metadata can be complete. A loose order of the steps involved is as follows:

1. Windows File Properties

First we set the metadata in Windows file properties including image details, artist details and other relevant information for all image and movie files before uploading anything to IPFS.

Window File Properties Metadata Options

In this instance we uploaded all ancillary files (background and foreground images) to IPFS and retrieved the CID prior to editing the master video properties.

Different options are available for various types of file such as .jpg, .png, .GIF.

2. Master video file

The CID’s of the ancillary items were placed in the content provider section of the Windows file properties for the WTF master video file.

CID for ancillary content in Windows properties details

The master video file was uploaded to IPFS and the sha256 hash and CID retrieved.

File information for WTF including CID and multihash (hash)

3. HadaNFT Certificate of Authenticity (COA)

In line with real-world arthouses, auctioneers and brokers we designed a Certificate of Authenticity (COA) to accompany all our inhouse Hada minted NFTs.

The NFT details listed on the COA include the artist details, token information as well as the NFT CID and Hash.

HadaNFT Certificate of Authenticity

4. Create .json metadata file

The .json file was created manually using Notepad++ and adapted from a framework provided by Calcs.

"artist": {
"name": "AldiSyahputra",
"bio": "I am an experienced and trustworthy designer."
"creator": {
"issuer_wallet": "rHADAXwGgVtqjgTdN6g2YQoqiKSKZRANXG",
"issuer_name": "HadaX",
"receiver_wallet": "rwKgwydb7NRHNS8gVpG6QEP2tYqPhroYrK",
"receiver_name": "cuentosdehada",
"website": "",
"twitter": "@HadaNFT",
"email": "",
"bio": "HadaNFT is an experimental concenpt in NFTs on the XRPL focused on learning what is possible and making mistakes along the way.",
"blackholed": "eventually"
"details": {
"title": "WTF",
"number_issued": "10000",
"description": "This is the most realistic NFT I have ever made. This NFT will certainly make the community because it is very realistic. Only at night is it possible to see the details on the coin.",
"cover": "WTF.png",
"link": "WTF.mp4",
"programme": "Adobe After Effects",
"legal": "The works contained in this package are protected by International copyright laws. Creative Commons Attribution 3.0 license(c) copyright 2021, HadaNFT /",
"parental_rating": "U",
"year": "2021",
"genre": "NFT",
"directors": ["AldiSyahputra"],
"producers": ["AldiSyahputra"]
"hashes": [{
"type": "parent folder",
"filename": "HadaX",
"url": "",
"cid": "QmbSh5q2R1Y7Wpegs8AAoHHekBkfE45SmHFoE2fP3Nvwkc",
"sha256": "C2B4198AE8136D81681E6E4B3E19C7228E6D3FAD0E71CBBBE1919E23C6DE0AD1"
"type": "master video file",
"filename": "WTF.mp4",
"url": "",
"cid": "Qmbmv3merHnUUPf2AxBZ4NdWF3mSjaeVdU9RKDvFn6X5Cc",
"sha256": "C7A0CB4EDAD8D40AE30AD2B58FDB3A7350D9B89E6B99E1F41078E2BAE9012A51"
"type": "extra video file",
"filename": "WTF GREEN SCREEN.mp4",
"url": "",
"cid": "QmRKTd2Yqgde9wvzW7uqfTUxtrnKeZ5xHUUG7eLjdtY4ao",
"sha256": "2C44F176706EF59D4B6C3B7C7A969734E7E346D1C09840D4E751181FA1E9D19C"
"type": "background image file",
"filename": "WTF Background.jpg",
"url": "",
"cid": "QmSnKd78ec7fj3ruowhemsqoWzzPBCCYWD3TUWJgkVtxzH",
"sha256": "42024494DC50F72615C08E6E40E38ECEDA66EF65E5D5AA56A076023B1648FE8E"
"type": "foreground image file",
"filename": "WTF Coin.png",
"url": "",
"cid": "Qmcou8wpUZof1eodTfXv5H5jgyJ6C3phPfYGZnuSAcXh4G",
"sha256": "D6FE9CE74BBEF4F8A75F236BFD106040FB093CAB7F5C08FD93D9098789EDEA1D"
"type": "certificate of authenticity",
"filename": "WTF COA.pdf",
"url": "",
"cid": "QmVeQefLPLL6chSuTpACtapQHPV4itLwuzvXE3VhXR5SHD",
"sha256": "6C8E5DB4C5C50056D6DA0E8C69AC8EC6F11E89BE9FA3656F56D47AB270EF5B10"
"created": 1636406832,
"framework": ""

The .json file can contain any relevant information which may be specific for different types of NFTs and art. We recorded the artist details, NFT creator information and token details as well as including all the hashes for the relevant NFT files and their location.

The .json file also includes the filename, URL, CID and sha256 hash for all the NFT files including the master video file and COA and was validated using before uploading to IPFS.

The .json file is the final file to be uploaded to the IPFS WTF folder.

Once all the files have been uploaded and the CID information obtained the memo metadata can be prepared.

5. Prepare memo metadata

The memo field for an XRPL transaction is limited to 1kb of information which equates to about 1800 characters (don’t quote me on this figure). As the Ripple API is used to set the memo during token issuance it is required to convert the memo into hexadecimal first. Below are examples of regular text and hexidecimal codes for NFT_ID and master_video_url.

Text memo code
Hexidecimal memo code

We used set to UTF-8 and no spacing for the text to hexadecimal conversion. The hexadecimal output contains non-capital letters (a-f) which must be changed to capitals (A-F) before using with the ripple API.

Xumm, XRPScan and other explorers parse the information and present in readable text format. The following information was set into the memo including the NFT_ID, as well as the URL, CID and sha256 hash for the master video and .json files. We also included a WTF emoji and signature for fun.

WTF metadata information encoded into the trustline set memo as displayed by XRPScan

It is possible to double the amount of information included in the memo compared to the image above.

Memos can be included in many different types of transaction on the XRPL from payments, trust set, exchange and escrow create. Information about XRP memos can be found here and an example code of a payment transaction with memo is shown below. Memos are also publicly recorded on the ledger although it is possible to encrypt the memo in advance.

"TransactionType": "Payment",
"Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx",
"Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
"Memos": [
"Memo": {
"MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963",
"MemoData": "72656e74"
"Amount": "1"

In our example the “MemoType” is the NFT_ID, master_video_url or other data header. The “MemoData” would be the actual data such as the url for the master_video or .json file.

Some have proposed issuing only one NFT per wallet and using the wallet domain set to identify the location of the metadata on an external website. This isn’t really applicable for NFTs for a number of reasons. The NFT should be represented by the token, not the wallet, and it should be possible to issue multiple NFTs from a single wallet. Also, a link to an external domain doesn’t provide redundancy for when a domains’ server goes down or prevent someone from changing the data on the server side.

Therefore, to be immutable the metadata must be encoded into the blockchain or ledger and not located elsewhere. This is something which XLS-20d intends to address with native implementation but until then we have to work within current capabilities.

After consideration, it was decided the optimum place for the metadata was in the memo field when setting the token trustline. The trust set memo field is the only universal location specific to a token.

WTF metadata information encoded into the trustline set memo as displayed by Xumm

We have updated the trustline set button on our website for the WTF token.

All new trustlines set via the HadaNFT website for WTF will have the metadata in the memo. Existing holders will have to click the set trustline button to update the memo for their trustline. Re-setting the trustline will update the trustline memo only and have no effect on your existing holdings.

This can only be done via the set trustline button on the HadaNFT website and does not apply to trustlines set via other websites (i.e.

NOTE: Please take into consideration this is a trial and experiment based on XLS-14d and XLS-16d proposals. There are no readers, viewers or galleries which can parse this information as there is no agreed standard. Updating the metadata in a trustline memo will NOT enable your NFT to be viewed by Xumm. There are no NFT xApps, NFT viewers or NFT marketplaces for 14d NFTs as yet.

The metadata can be viewed in your trust set transaction memo using an XRPL explorer or in the trust set transaction event in Xumm. Xumm doesn’t allow for copy and pasting of displayed text. So, if you wish to view the NFT artwork you will need to open the trust set transaction in an explorer (XRPScan or similar). Here’s a link to an example trust set transaction with the metadata included in the memo.


Currently, the only viable method for tokenisation of an asset on the XRPL is based on XLS-14d and there is no app or public method for minting these types of NFT.

We have an inhouse script to mint a token which now includes the metadata, as described above, in the memo of first trustline and first transaction on token creation. However, with the potential implementation of XLS-20d this script may be redundant soon and will remain for private use only.

Irrespective of the chosen method of tokenisation the creation of the artwork, pushing of images to IPFS or similar, as well as the generation of metadata and COA are all required before minting an NFT. Most of the previously described actions of creating the WTF metadata and pushing images to IPFS were done manually. After working through the process in this way we now have an outline process flow for developing an automated script.

WTF’s next…

Many have asked “how can I sell WTF?”. As outlined in this document, and elsewhere, as well as for other reasons which can not be simply explained; the sale of WTF is not possible using the DEX or a trading gateway such as XRPTOOLKIT or SOLOGENIC. DO NOT attempt to do so.

Custom marketplaces are required in order to trade XLS-14d NFTs safely peer-to-peer. However, as WTF and other NFTs are at such an early stage, in XRPL ecosystem development, these platforms do not exist and will take time to build. Several are in development but until then if you wish to sell a WTF you will have to find another individual who wishes to purchase one and agree a price.

Finally, this is not the end of the journey for WTF. As our knowledge base grows and NFT advancements (i.e. XLS-20d) are made WTF will evolve, adapt and update accordingly. Considerations are being given for access to exclusive private content, pre-release NFTs, discounts and more for WTF holders in the future.

Now on to minting the remaining competition entries with our upgraded script. Thanks for reading.