---
# System prepended metadata

title: Bill’s Hacky Instructions for “Polkadot Ordinals”

---

# Bill's Hacky Instructions for "Polkadot Ordinals"

Just like [Bitcoin ordinals](https://ordinals.com/), Polkadot gives you the ability to write arbitrary data to the chain. You can take advantage of this to put images online which will be stored on-chain. This guide shows you can put your own image file on-chain and re-constitute it as a regular file later.

Note that this will cost a relatively significant amount of fees in KSM or DOT - a small 30K JPEG will cost about 0.1 KSM or 3.1 DOT. 

## Steps
1. Determine the picture you would like to send
2. In a web browser to the Polkadot-JS App's [extrinsics page](https://polkadot.js.org/apps/#/extrinsics).
3. Select the network and RPC endpoint to which you would like to connect (upper left-hand corner).
4. Select the account you would like to inscribe the ordinal from.
5. You will be making a "system.remarkWithEvent" call - select the "system" pallet and the "remarkWithEvent" extrinsic.
6. Click "file upload"
7. Click on the pink textbox and upload the file selected in Step 1.
8. Submit extrinsic and sign the transaction.
9. Wait until your transaction is included in a block and visible on a block explorer like [Subscan]((https://polkadot.subscan.io/)). This may take 30 - 60 seconds.
10. Look at the "Events" page on Subscan and query for "System.remarked" (module: System, event: Remarked) events, and see if you can see yours. If not, you can narrow the query down by filtering only for events from your own account.
11. Click on the extrinsic. Going forward, this extrinsic ID will be the globally unique identifier for your image.
12. Under "Parameters", you will see JSON string, with a "value" parameter which starts with "0x". Click "View all" at the end of this. This is your image in hexadecimal format.
13. Copy the entire string starting AFTER "0x" (e.g. if the string is "0x0AABCC13", just copy "0AABCC13").
14. Open a text file on your computer, paste the string in, and save it as "ordinal.txt".
15. We will now convert the hexadecimal back into binary with [xxd](https://linux.die.net/man/1/xxd). This should work on Linux or OS X; Windows users, you can use the [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/about). Open a terminal window and navigate to the directory you saved the "ordinal.txt" file.
16. Type `xxd -r -p ordinal.txt ordinal.jpeg`
17. You can now open "ordinal.jpeg" as the original image!