# How to create a token (or NFT)

In this guide, you will learn how to create a token using command line interface (CLI). This guide assumes a basic level of understanding on how to use CLI & interact with blockchain RPCs. For example, we assume that you have already setup and are running the TKLTEST blockchain, at a minimum. If you have not gotten that far, we would suggest reading this guide (opens new window) and setting up the TKLTEST chain to practice with.

# Suggested reading

In order to create a token, you will need to familiarise yourself with the tokenv2createtokel (opens new window) and tokenv2infotokel (opens new window) RPCs. Please read these beforehand and refer to them as you require.

# Part 1: Decide on your token details

You must decide upon the following details. The first few are required, the later few are optional.

Required:

  • Name
  • Supply
  • Description

Optional (Tokel Standard data):

  • URL
  • ID
  • Royalty
  • Arbitrary Data

If you aren't familiar with what these fields represent, I'll point you to this documentation (opens new window).

# Part 2: Create your transaction

Replace the field names in the example below with your token data into the command listed below. Leave the optional string fields blank, or 0's in number fields, if you do not want to input data into those fields. Refer to the examples provided if you are having issues.

./komodo-cli -ac_name=TKLTEST tokenv2createtokel "Name" Supply "Description" "{\"url\":\"https://yourURLHere.com\", \"id\":yourIDnumberhere, \"royalty\":yourRoyaltyamountHere, \"arbitrary\":\"yourArbitrarydatainHEXHere\"}"

# 📌 Examples

NFT with Tokel Standard data

./komodo-cli -ac_name=TKLTEST tokenv2createtokel "MyFirstNFT" 0.00000001 "This is the description field of an NFT." "{\"url\":\"https://myNFTrocks.io\", \"id\":134, \"royalty\":10, \"arbitrary\":\"\"}"

NFT with Tokel Standard data with no specific ID, Royalty & arbitrary data.

./komodo-cli -ac_name=TKLTEST6 tokenv2createtokel "My First NFT" 0.00000001 "This is the description field of an NFT." "{\"url\":\"https://myNFTrocks.io\", \"id\":0, \"royalty\":0, \"arbitrary\":\"\"}"

NFT without Tokel Standard data

./komodo-cli -ac_name=TKLTEST tokenv2createtokel "My Second NFT" 0.00000001 "This is the description field of an NFT. This NFT does not have any optional Tokel Standard data."

Fixed supply token without Tokel Standard data

./komodo-cli -ac_name=TKLTEST tokenv2createtokel "An Awesome Token" 1 "This token has a supply of 100 million and no Tokel Standard data."

Fixed supply token with Tokel Standard data

./komodo-cli -ac_name=TKLTEST tokenv2createtokel "Awesome Token2" 0.000001 "This token has 1 million in supply and tokel standard data" "{\"url\":\"https://raw.githubusercontent.com/TokelPlatform/tokel_app/development/brand_package/assets/tokelx3.png\", \"id\":1, \"royalty\":500, \"arbitrary\":\"7b2273697a65223a203130302c22636f6c6f72223a2022676f6c64222c22776561706f6e223a2022776f726473222c226e756d626572223a203132337d\"}"

# Part 3: Ensure you have set your pubkey

To interact with tokens, you must have set -pubkey=YOURPUBKEY on chain launch, or used the setpubkey YOURPUBKEY RPC to set your pubkey after the chain has started. An easy way to know whether this is the case, is if you get the error below whilst doing any tokenv2 command.

error code: -1
error message:
to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet

Command Option 1 (start the chain with a pubkey set) - preferred method:

./komodod -ac_name=TKLTEST -ac_supply=1000000000 -ac_cbmaturity=1 -ac_reward=5000000000 -ac_decay=77700000 -ac_halving=525600 -ac_cc=1 -ac_ccenable=228,236,245,246,247 -ac_adaptivepow=2 -addnode=164.132.225.134 -pubkey=**YOURPUBKEYHERE** &

Command Option 2 (set pubkey after the chain is launch) - not recommended as it will need to manually set this every time the chain is launched.

./komodo-cli -ac_name=TKLTEST setpubkey YOURPUBKEYHERE

# Part 4: Create your token

For every token you create, you will need a corresponding satoshi of the TKL coin.

1 satoshi = 1 token. 1 TKL = 100million tokens.

The number represented in the 'supply' field is the amount of TKL you are going to use/need, plus the transaction fee (0.0001 by default).

We will now submit the command to create your token using the tokenv2createtokel, then send the transaction using sendrawtransaction to be mined and officially created. Replace the below commands with your token commands and output hex.

# 📌 Example

Step 1: Change to the komodo/src directory and submit your command.

cd ~/komodo/src
./komodo-cli -ac_name=TKLTEST tokenv2createtokel "NFTShowcase" 0.00000001 "This NFT creation example showcases using a single satoshi in the supply field to create 1 token. It also shows how I can add the image into the URL, and use the arbitrary data field to add additional properties to my NFT. 50% of the value of all trades conducted via assets RPCs will be sent to the creators address." "{\"url\":\"https://raw.githubusercontent.com/TokelPlatform/tokel_app/development/brand_package/assets/tokelx3.png\", \"id\":1, \"royalty\":500, \"arbitrary\":\"7b2273697a65223a203130302c22636f6c6f72223a2022676f6c64222c22776561706f6e223a2022776f726473222c226e756d626572223a203132337d\"}"

Step 2: Broadcast the raw transaction hex that was output previously, using the sendrawtransaction RPC

./komodo-cli -ac_name=TKLTEST sendrawtransaction 0400008085202f89010053c31a8c74b875040db6808f95a70af35ff895b534d973332e861270815223000000004847304402206e624bc5ae94124c817db37592d49e6094d7d265c94fb497167489246fe4023f02206b38f5211da0f958bf3834e6684e5b6ee5cc0450665ff007d07ad783d547b21001ffffffff041027000000000000403e4da23ba00aa003800102af038001f5a12da22b802096fec31e85a06720706ef9214c9c8b2df26940aac250e1d80f23a772b18b5a4a810302040082020204cc01000000000000006e434da240a00fa003800103af038001f5af038001f7a12da22b802049163d1ec6309fc2cbc07fc13a3951bc938fd15263b0eceb4bcea6d164c0fccb810302040082020204cc270402f701012102ed3fcb2ace8a53cd8ed5350dc53c507167ad39238ba70345e51764c6d517e6ee75df92f50500000000232102ed3fcb2ace8a53cd8ed5350dc53c507167ad39238ba70345e51764c6d517e6eeac0000000000000000fd25026a4d2102f563012102ed3fcb2ace8a53cd8ed5350dc53c507167ad39238ba70345e51764c6d517e6ee0b4e465453686f7763617365fd3d0154686973204e4654206372656174696f6e206578616d706c652073686f776361736573207573696e6720612073696e676c65207361746f73686920696e2074686520737570706c79206669656c6420746f20637265617465203120746f6b656e2e20497420616c736f2073686f777320686f7720492063616e206164642074686520696d61676520696e746f207468652055524c2c20616e642075736520746865206172626974726172792064617461206669656c6420746f20616464206164646974696f6e616c2070726f7065727469657320746f206d79204e46542e20353025206f66207468652076616c7565206f6620616c6c2074726164657320636f6e647563746564207669612061737365747320525043732077696c6c2062652073656e7420746f207468652063726561746f727320616464726573732eaff701026668747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f546f6b656c506c6174666f726d2f746f6b656c5f6170702f646576656c6f706d656e742f6272616e645f7061636b6167652f6173736574732f746f6b656c78332e706e67010103fdf401043d7b2273697a65223a203130302c22636f6c6f72223a2022676f6c64222c22776561706f6e223a2022776f726473222c226e756d626572223a203132337d00000000b83f00000000000000000000000000

A transaction id will output in your terminal. This is the associated tokenid for your newly created token.

8d091fa784c304ba1974057f958253e4cd3c36847853645efeb201db65926f5e

Step 3 (Optional): Check your token data You must wait until your transaction has been mined and added into a block before the data will appear here.

Command:

./komodo-cli -ac_name=TKLTEST tokenv2infotokel YOURTOKENIDHERE

# 📌 Example

./komodo-cli -ac_name=TKLTEST tokenv2infotokel 8d091fa784c304ba1974057f958253e4cd3c36847853645efeb201db65926f5e

If you see the following error, continuing waiting until your token has been mined, then try the tokenv2infotokel RPC again.

{
  "result": "error",
  "error": "the transaction is still in mempool"
}

# Congratulations!

You have created your very first Tokel token! The world of tokens is now at your fingertips. Continue using the TKLTEST chain to enhance your skills or move on to the real deal, the Tokel main chain, to create your token for real and maximize the features that the Tokel Platform brings you.