Qubic Core client
An intermediate tool to communicate to qubic core node.
./qubic-cli [basic config] [Command] [command extra parameters]
-help print this message
Basic config:
-conf <file>
Specify configuration file. Relative paths will be prefixed by datadir location. See qubic.conf.example.
Notice: variables in qubic.conf will be overrided by values on parameters.
-seed <SEED>
55-char seed private key
-nodeip <IPv4_ADDRESS>
IP address of the target node for querying blockchain information (default: 127.0.0.1)
-nodeport <PORT>
Port of the target node for querying blockchain information (default: 21841)
-scheduletick <TICK_OFFSET>
Offset number of scheduled tick that will perform a transaction (default: 20)
Command:
[WALLET COMMAND]
-showkeys
Generating identity, pubkey key from private key. Private key must be passed either from params or configuration file.
-getbalance <IDENTITY>
Balance of an identity (amount of qubic, number of in/out txs)
-getasset <IDENTITY>
Print a list of assets of an identity
-sendtoaddress <TARGET_IDENTITY> <AMOUNT>
Perform a standard transaction to sendData <AMOUNT> qubic to <TARGET_IDENTITY>. A valid private key and node ip/port are required.
-sendtoaddressintick <TARGET_IDENTITY> <AMOUNT> <TICK>
Perform a standard transaction to sendData <AMOUNT> qubic to <TARGET_IDENTITY> in a specific <TICK>. A valid private key and node ip/port are required.
-qutilsendtomanyv1 <FILE>
Performs multiple transaction within in one tick. <FILE> must contain one ID and amount (space seperated) per line. Max 25 transaction. Fees apply! valid private key and node ip/port are required.
[BLOCKCHAIN/PROTOCOL COMMAND]
-gettickdata <TICK_NUMBER> <OUTPUT_FILE_NAME>
Get tick data and write it to a file. Use -readtickdata to examine the file. valid node ip/port are required.
-getquorumtick <COMP_LIST_FILE> <TICK_NUMBER>
Get quorum tick data, the summary of quorum tick will be printed, <COMP_LIST_FILE> is fetched by command -getcomputorlist. valid node ip/port are required.
-getcomputorlist <OUTPUT_FILE_NAME>
Get of the current epoch. Feed this data to -readtickdata to verify tick data. valid node ip/port are required.
-getnodeiplist
Print a list of node ip from a seed node ip. Valid node ip/port are required.
-checktxontick <TICK_NUMBER> <TX_ID>
Check if a transaction is included in a tick. valid node ip/port are required.
-checktxonfile <TX_ID> <TICK_DATA_FILE>
Check if a transaction is included in a tick (tick data from a file). valid node ip/port are required.
-readtickdata <FILE_NAME> <COMPUTOR_LIST>
Read tick data from a file, print the output on screen, COMPUTOR_LIST is required if you need to verify block data
-sendcustomtransaction <TARGET_IDENTITY> <TX_TYPE> <AMOUNT> <EXTRA_BYTE_SIZE> <EXTRA_BYTE_IN_HEX>
Perform a custom transaction (IPO, querying smart contract), valid private key and node ip/port are required.
-dumpspectrumfile <SPECTRUM_BINARY_FILE> <OUTPUT_CSV_FILE>
Dump spectrum file into csv.
-dumpuniversefile <UNIVERSE_BINARY_FILE> <OUTPUT_CSV_FILE>
Dump spectrum file into csv.
-makeipobid <CONTRACT_INDEX> <NUMBER_OF_SHARE> <PRICE_PER_SHARE>
Participating IPO (dutch auction). valid private key and node ip/port, CONTRACT_INDEX are required.
-getipostatus <CONTRACT_INDEX>
View IPO status. valid node ip/port, CONTRACT_INDEX are required.
-getsysteminfo
View Current System Status. Includes initial tick, random mining seed, epoch info.
-publishproposal
(on development)
[NODE COMMAND]
-getcurrenttick
Show current tick information of a node
-sendspecialcommand <COMMAND_IN_NUMBER>
Perform a special command to node, valid private key and node ip/port are required.
-tooglemainaux <MODE_0> <Mode_1>
Remotely toogle Main/Aux mode on node,valid private key and node ip/port are required.
<MODE_0> and <MODE_1> value are: MAIN or AUX
-setsolutionthreshold <EPOCH> <SOLUTION_THRESHOLD>
Remotely set solution threshold for future epoch,valid private key and node ip/port are required.
-refreshpeerlist
(equivalent to F4) Remotely refresh the peer list of node, all current connections will be closed after this command is sent, valid private key and node ip/port are required.
-forcenexttick
(equivalent to F5) Remotely force next tick on node to be empty, valid private key and node ip/port are required.
-reissuevote
(equivalent to F9) Remotely re-issue (re-send) vote on node, valid private key and node ip/port are required.
-sendrawpacket <DATA_IN_HEX> <SIZE>
Send a raw packet to nodeip. Valid node ip/port are required.
-getlogfromnode <PASSCODE_0> <PASSCODE_1> <PASSCODE_2> <PASSCODE_3>
Fetch a single log line from the node. Valid node ip/port, passcodes are required.
-synctime
Sync node time with local time, valid private key and node ip/port are required. Make sure that your local time is synced (with NTP)!
[QX COMMAND]
-qxgetfee
Show current Qx fee.
-qxissueasset <ASSET_NAME> <NUMBER_OF_UNIT> <UNIT_OF_MEASUREMENT> <NUM_DECIMAL>
Create an asset via Qx contract.
-qxtransferasset <ASSET_NAME> <ISSUER_IN_HEX> <NEW_OWNER_IDENTITY> <AMOUNT_OF_SHARE>
Transfer an asset via Qx contract.
-qxorder add/remove bid/ask [ISSUER (in qubic format)] [ASSET_NAME] [PRICE] [NUMBER_OF_SHARE]
Set order on Qx.
-qxgetorder entity/asset bid/ask [ISSUER/ENTITY (in qubic format)] [ASSET_NAME (NULL for requesting entity)] [OFFSET]
Get orders on Qx
[QAIRDROP COMMAND]
-qairdropstartairdrop <ASSET_NAME> <NUMBER_OF_UNIT> <UNIT_OF_MEASUREMENT> <NUM_DECIMAL>
Create an asset for airdrop via Airdrop contract.
-qairdroptransferasset <ASSET_NAME> <ISSUER_IN_HEX>
Transfer an airdrop asset via Airdrop contract.
-qairdroponetransferasset <ASSET_NAME> <ISSUER_IN_HEX> <NEW_OWNER_IDENTITY> <AMOUNT_OF_SHARE>
Transfer an asset via Airdrop contract.
[QPOOL COMMAND]
-qpoolissueasset <ASSET_NAME> <NUMBER_OF_UNIT> <UNIT_OF_MEASUREMENT> <NUM_DECIMAL>
Create an token via Qpool contract.
-qpoolenabletoken <Name_OF_TOKEN> <ISSUER_OF_TOKEN>
Enable a token in Qpool. Users can add the token to Qpool.
-qpoolgetnumberofenabletoken
Get the number of enable tokens in Qpool
-qpoolgetenabletoken <Enalble_Token_NUMBER>
Get the information of a enable token in Qpool
-qpoolcreate <NAME_OF_LPTOKEN> <NUMBER_OF_TOKEN> <AMOUNT_OF_QWALLETTOKEN> <WEIGHT_OF_QWALLETTOKEN> <AMOUNT_OF_QU> [<TOKEN1_ID> <TOKEN2_ID>, ... <TOKEN4_ID> (FROM NUMBER_OF_TOKEN)] [<TOKEN1_AMOUNT>, <TOKEN2_AMOUNT>, ... <TOKEN4_AMOUNT> (FROM NUMBER_OF_TOKEN)] [ <TOKEN1_WEIGHT>,<TOKEN2_WEIGHT>, ... <TOKEN4_WEIGHT> (FROM NUMBER_OF_TOKEN)] <SWAP_FEE>
Create a new pool. NUMBER_OF_TOKEN including the Qwallet token and qu. the number of token id and token amount and token weight following the NUMBER_OF_TOKEN.
-qpoolgetinfor <POOL_NUMBER>
Get the information of a pool
-qpoolswap <AMOUNT_OF_TOKEN1> <INDEX_OF_TOKEN1> <INDEX_OF_TOKEN2> <NUMBER_OF_POOL>
Swap the <INDEX_OF_TOKEN1> to <INDEX_OF_TOKEN2> in <NUMBER_OF_POOL>
-qpoolbiggetstatus
current status of calculation for BIG multiprecision
-qpoolbignumbertostring <BIG_NUMBER>
<BIG_NUMBER> is bit256
-qpoolbigstringtonumber <LENGTH_OF_STRINGNUMBER> [<FIRST_NUM>, <SECOND_NUM>, ... <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER> is length of string number.
<FIRST_NUM>, <SECOND_NUM> are each number of string number
-qpoolbigplus <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolbigminus <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolbigmultiple <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolbigmodulus <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolbigorequalcomparison <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolsmallorequalcomparison <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolbigcomparison <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
-qpoolsmallcomparison <LENGTH_OF_STRINGNUMBER_A> [<FIRST_NUM_A>, <SECOND_NUM_A>, ... <LENGH - 1>] <LENGTH_OF_STRINGNUMBER_B> [<FIRST_NUM_B>, <SECOND_NUM_B>, <LENGH - 1>]
<LENGTH_OF_STRINGNUMBER_A> is length of string number A.
<LENGTH_OF_STRINGNUMBER_B> is length of string number B.
[QTRY COMMAND]
-qtrygetfee
Show current qtry fee.
-qtryissuebet
Issue a bet (prompt mode)
-qtrygetactivebet
Show all active bet id.
-qtrygetactivebetbycreator <BET_CREATOR_ID>
Show all active bet id of an ID.
-qtrygetbetinfo <BET_ID>
Get meta information of a bet
-qtrygetbetdetail <BET_ID> <OPTION_ID>
Get a list of IDs that bet on <OPTION_ID> of the bet <BET_ID>
-qtryjoinbet <BET_ID> <NUMBER_OF_BET_SLOT> <AMOUNT_PER_SLOT> <PICKED_OPTION>
Join a bet
-qtrypublishresult <BET_ID> <WIN_OPTION>
(Oracle providers only) publish a result for a bet
-qtrycancelbet <BET_ID>
(Game operator only) cancel a bet
mkdir build;
cd build;
cmake ../;
make;
To get current tick of a node:
./qubic-cli -nodeip 127.0.0.1 -getcurrenttick
example return:
Tick: 10660587
Epoch: 82
Number Of Aligned Votes: 0
Number Of Misaligned Votes: 0
Dump publickey, privatekey and identity:
./qubic-cli -seed aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -showkeys
example return:
Seed: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Private key: 62506d370a4e9f42720269c0c973a544de0b6559bda46d1d8dd2fcda9fe4fada
Public key: 1f590d03e613bdded38b4c0820ac44615f91af12435980b3ede3c08c315a2544
Identity: BZBQFLLBNCXEMGLOBHUVFTLUPLVCPQUASSILFABOFFBCADQSSUPNWLZBQEXK
Send coin:
./qubic-cli -nodeip 127.0.0.1 -seed aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -sendtoaddress AFZPUAIYVPNUYGJRQVLUKOPPVLHAZQTGLYAAUUNBXFTVTAMSBKQBLEIEPCVJ 1
Send special command to node:
./qubic-cli -nodeip 127.0.0.1 -seed aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -sendspecialcommand 123
Dump tick data to a file:
./qubic-cli -nodeip 127.0.0.1 -gettickdata 10600000 10600000.bin
Read tick data file:
./qubic-cli -readtickdata 10600000.bin
Check tx on tick data file:
./qubic-cli -checktxonfile TX_HASH 10600000.bin
Check tx on online:
./qubic-cli -nodeip 127.0.0.1 -checktxontick 10600000 TX_HASH
More information, please read the help. ./qubic-cli -help