Skip to content

UseCase Create New Token

FornaxA edited this page Aug 21, 2019 · 10 revisions

Creating a new token.

Generate a new wallet address to receive XDM

$ getnewaddress

g7hdTS73rTb8HB1NUB9aicaUm6vvWDGg8t

Send that address at least 1 XDM and at least 0.1 ION for fees and token attachment

Verify token balance

$ gettokenbalance

  {
   "groupIdentifier": "tion1zv08wr3jqdyqp03vwhq6v4jccyzxqvc0vlyacfcpmtmxuygj2fgsszyfkxj",
    "ticker": "XDM",
    "name": "DarkMatter",
    "balance": "100.0000000000000"
  },

Get token info for XDM

$ tokeninfo groupid tion1zv08wr3jqdyqp03vwhq6v4jccyzxqvc0vlyacfcpmtmxuygj2fgsszyfkxj

{
  "groupIdentifier": "tion1zv08wr3jqdyqp03vwhq6v4jccyzxqvc0vlyacfcpmtmxuygj2fgsszyfkxj",
  "txid": "9e071b2647f40f937b9f688a16a7e5919106e12fb344a1cf7ec63c76e1be62c7",
  "ticker": "XDM",
  "name": "DarkMatter",
  "decimalPos": 13,
  "URL": "https://raw.githubusercontent.com/ioncoincore/ATP-descriptions/master/ION-testnet-XDM.json",
   "status": [
}

Create Token

The syntax for creating a new token is as follows:

$ configuretoken [TICKER] [NAME] [DECIMALPOS] [URL] [DOCUMENTHASH]

In our example we are creating a test token with the following attributes

Name: HulkToken
Ticker: HULK
Decimal Positions: 0
URL: https://raw.githubusercontent.com/CeForce/hulktoken/master/hulk.json
Docment Hash: 367750e31cb276f5218c013473449c9e6a4019fed603d045b51e25f5db29283a

Name: Max 30 characters. Ticker: Max 10 characters. Decimal positions: Max 16. (More positions after the decimal separator means less positions before the decimal separator, with a maximum of 18 for both together.) URL: Link to the json file containing the token information, including summary and contact (follow the link above to see example of json format). Maxiumum URL length is 98. Document Hash: Hash of json file from the URL link.

Preview your token

$ configuretoken HULK HulkToken 0 https://raw.githubusercontent.com/CeForce/hulktoken/master/hulk.json 367750e31cb276f5218c013473449c9e6a4019fed603d045b51e25f5db29283a

{
  "xdm_available": "100.0000000000000",
  "xdm_needed": "0.5000000000000",
  "group_identifier": "tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar",
  "ticker": "HULK",
  "name": "HulkToken",
  "decimalpos": 0,
  "documenturl": "https://raw.githubusercontent.com/CeForce/hulktoken/master/hulk.json",
  "documenthash": "367750e31cb276f5218c013473449c9e6a4019fed603d045b51e25f5db29283a",
   "status": [
 ]
}

If everything looks correct, create your token by adding true to the configuretoken command

$ configuretoken HULK HulkToken 0 https://raw.githubusercontent.com/CeForce/hulktoken/master/hulk.json 367750e31cb276f5218c013473449c9e6a4019fed603d045b51e25f5db29283a true

{
  "groupIdentifier": "tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar",
  "transaction": "680d43bf3e5e7cadd5664651193e9323c65bcba0b6f7a446fede3352e4945101"
}

Verify token creation

$ tokeninfo groupid tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dya

{
  "groupIdentifier": "tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar"
  "txid": "680d43bf3e5e7cadd5664651193e9323c65bcba0b6f7a446fede3352e4945101",
  "ticker": "HULK",
  "name": "HulkToken",
  "decimalPos": 0,
  "URL": "https://raw.githubusercontent.com/CeForce/hulktoken/master/hulk.json",
   "documentHash": "367750e31cb276f5218c013473449c9e6a4019fed603d045b51e25f5db29283a"
   "status": [
  ]
}

Find Authority Token address

$ scantokens start tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar

{  
  "txid": "8fd6e71a36b3ac720763d6f353c4c375cb87576ae958c89268f7e0c046a094aa",  
  "vout": 1,  
  "address": "gLYtsYw1JhvAQPJTejLc7PvAGBbVaWM28F",  
  "scriptPubKey": "2091db324699a8b1c0502fee10aa5494ca69ad5a9300da252c6c6214d6a6667d000800000000000000fcb6757576a914c2df1b997c0446ece03f97b250453788ccb391f188ac",  
  "ION_amount": 0.00000001,  
  "token_authorities": "mint melt child rescript subgroup configure",  
  "height": 6079  
}

The authority address is auto-created in the token creation process.

In this case the Authority Address of HULK is: gLYtsYw1JhvAQPJTejLc7PvAGBbVaWM28F

It is best to back up the private key of this address in order to ensure you don't lose access to the authority token

Mint Tokens

Minting tokens will cost a further 0.5 XDM (at time of writing). The maximum amount coin tokens you can mint is determined by the decimal position set during token configuration: the total number of decimal positions before and after the decimal separator is max 18. The syntax for minting tokens is as follows:

$ minttoken [GROUPID] [Address] [Amount]

Create an address to received minted tokens

$ getnewaddress HULK

g2sUr1EGMfmSqSXWDGXw3kESJLNSUEsR6D

Send the mint command using the Group ID of your created token, the address we just created, followed by the amount of tokens you would like to mint

$ minttoken tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar g2sUr1EGMfmSqSXWDGXw3kESJLNSUEsR6D 100000  

8fd6e71a36b3ac720763d6f353c4c375cb87576ae958c89268f7e0c046a094aa

A TXid (transaction ID) means the transaction was valid and coins were minted, wait for 1 confirmation on the tx.

Verify your minted balance

$ gettokenbalance

{
  "groupIdentifier": "tion1zwgakvjxnx5trszs9lhpp2j5jn9xnt26jvqd5ffvd33pf44xve7sqg8dyar",
  "ticker": "HULK"
  "name": "HulkToken",
  "balance": "100000",
  "authorities": "mint melt child rescript subgroup configure"
}

Token creation process is complete.

Related Use Cases

Use Cases - Send Tokens

ION coin Qt and Daemon Info

Builds

HOW TO: Compile iond Daemon from source

HOW TO: Compile the ION QT wallet on Ubuntu

Snapcraft installs

Install ION client in a snap

Upgrade

HOW TO: Upgrade to ION 5.0

ION Masternodes

ION Masternode FAQ

HOW TO: ION 5.0 Masternode Quickstart Guide

HOW TO: Setup ION 5.0 remote Masternode with Ubuntu remote and local QT wallet(DASH-Rebase)

ION coincore QT wallet ELECTRON MINING

Mining ION coin ELECTRON tokens with Proof of Work

ionomy Sharenodes

ionomy Zendesk hosted Sharenodes and dedicated Masternodes FAQ

ION Chain Token System

Atomic Token Protocol (ATP) Overview

ION Token system Basic Operations

UseCases tokens Create-New-Token

UseCases tokens Send-tokens

UseCases tokens Token-balance

UseCases tokens View-token-information

Testing ION tokens on regtest

UseCases regtest Start-regtest

UseCases regtest Access Token Management Key

ION Token group management

UseCases tokens Key-rotation-with-token-authorities

Create and distribute the XDM token according to the IEO

UseCases tokens Create-Management-Tokens

UseCases tokens Drop-token-mint-capability

UseCases tokens Find-token-authorities

General FAQ

How to backup my wallet and its data

How to: backup ION coin blockchain database

HOW TO: Export Private Keys from ION QT

HOW TO: Import private key to ION 3.0 Wallet

How to generate an onion privacy address

Multisend

User-Documentation

Accounts-Explained

ION-coin-Data-Directory

Raw-Transactions

Running-ION

Gitian

Gitian Building

Gitian-building-create-VM-Debian

Gitian-building-create-Debian-VMware

Gitian-building-create-VM-Fedora

Gitian-building-setup-Gitian-Debian

Gitian-building-setup-Gitian-Debian-Google-Console

Gitian-building-setup-Gitian-Debian-Google-Console-Create-instance-template

Gitian-building-setup-Gitian-Debian-Google-Console-Create-VM-from-template

Gitian-building-setup-Gitian-Fedora

Zerocoin

HOW TO: Convert Zerocoin xION to ION

How to: Backup and restore xION Zerocoin private seed

Developer-Documentation

API-Calls-List

API-Reference-JSON-RPC

Weekly Play to Win ION coin mobile gaming tournaments

How do I get involved

ionomy extra info

XDM DarkMatter IEO

ionomy Support Help Centre

ionomy web links and info

ION coin Technical Whitepaper

ion coin Bounty Procedures

ionomy Bounty Information

ionomy ION current events

Clone this wiki locally