Skip to content

Asset Management

Introduction

Assets are stored as tokens on ULTRA PRO, and the below management actions are available. All the assets are complied with BEP2.

The fees that are due must be paid in UPRO before any of these operations can be executed. The fees for testnet and mainnet are different.

Please note: Before you run any command examples on this page, and if you have not done so already, you must generate or add a key to eth-cli.

Also remember: The chain-id and node parameters passed to eth-cli may vary, and thechain-id for mainnet is UPRO-Chain-Tigris, and is UPRO-Chain-Ganges for testnet. To find the latest list of endpoints for the mainnet, please check the peers list. To find the latest endpoints for the testnet, please check the peers list.

Issue

Issue is a transaction used to create a new asset. Anyone can issue a new token with fee paid. After issuing, the token would appear in the issuer's account as free balance.

An issuance transaction contains:

Note: BEP87 is implemented after Lagrange Upgrade. It changes the minimal symbol length to two

  • Source Address: the sender address of the transaction and it will become the owner of the token, all created tokens will be in this account.
  • Token Name: it is the long official name, such as "UPRO". It is limited to 32 characters.
  • Symbol: identifier of the token, limited to alphanumeric characters and is case insensitive, for example, "UPRO". The length of symbol should be between 2 and 8.
    "B" suffixed symbol is also allowed for migrating tokens that already exist on other chains.
    The symbol doesn't have to be unique, "-" followed by random 3 letters will be appended to the provided symbol to avoid uniqueness constraint.
    Those 3 letters are the first three letters of tx hash of the issue transaction.
    For example, "NNB-B90". Only UPRO does not have this suffix.
  • Total Supply: an int64 boosted by 1e8 for decimal part. The max total supply is 90 billion.
  • Mintable: that means whether this token can be minted in the future. To set the tokes to be mintable, you need to add --mintable, otherwise just omit this field to set this token to be non-mintable.

Example on mainnet:

# To issue a NNB mintable token with total-supply 1 billion on mainnet
> ./eth-cli token issue --token-name "new token" --total-supply 100000000000000000 --symbol NNB --mintable --from alice  --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443 --trust-node
# To issue a NNB non-mintable token with total-supply 1 billion on mainnet
> ./eth-cli token issue --token-name "new token" --total-supply 100000000000000000 --symbol NNB --from alice  --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443 --trust-node
Example on testnet:

# To issue a NNB mintable token with total-supply 1 billion on testnet
> ./eth-cli token issue --token-name "new upro" --total-supply 100000000000000000 --symbol NNB --mintable --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node

Committed at block 1887 (tx hash: B90A055DDD570AE42A7050182993A0B4DBC81A0D, ... Issued NNB-B90...)
# To issue a NNB non-mintable token with total-supply 1 billion on testnet
> ./eth-cli token issue --token-name "new upro" --total-supply 100000000000000000 --symbol NNB --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node

Committed at block 1887 (tx hash: B90A055DDD570AE42A7050182993A0B4DBC81A0D, ... Issued NNB-B90...)

Mint

Tokens that is "mintable"(specified when issue) can use this function. The amount is boosted by 1e8 for decimal part. The total supply after mint is still restricted by 90 billion. Note only the owner of the token can use this transaction.

Example on mainnet:

 > ./eth-cli token mint --amount 100000000000000000 --symbol NNB-B90 --from alice --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443  --trust-node

Example on testnet:

 > ./eth-cli token mint --amount 100000000000000000 --symbol NNB-B90 --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node

Burn

Burn is to destroy certain amount of token, after which that amount of tokens will be subtracted from the operator's balance. The total supply will be updated at the same time. Notice that only the owner of the token has the permission to burn token. The amount is boosted by 1e8 for decimal part.

Example on mainnet:

 > ./eth-cli token burn --amount 100000000000000000 --symbol NNB-B90 --from alice --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443  --trust-node

Example on testnet:

 > ./eth-cli token burn --amount 100000000000000000 --symbol NNB-B90 --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node

Freeze & Unfreeze

Freeze would move the specified amount of token into "frozen" status, so that these tokens can not transferred, spent in orders or any other transaction until they are unfreezed.

Anyone can (only) freeze or unfreeze tokens on their account with status in "free". The amount is boosted by 1e8 for decimal part.

Example on mainnet:

> ./eth-cli token freeze --amount 20000000000000000 --symbol NNB-B90 --from alice --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443 --trust-node
> ./eth-cli token unfreeze --amount 20000000000000000 --symbol NNB-B90 --from alice --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443  --trust-node

Example on testnet:

> ./eth-cli token freeze --amount 20000000000000000 --symbol NNB-B90 --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node
> ./eth-cli token unfreeze --amount 20000000000000000 --symbol NNB-B90 --from alice --chain-id=UPRO-Chain-Ganges --node=data-seed-pre-2-s1.ultraproscan.io:80 --trust-node

TransferOwnership

Note: BEP82 is implemented after Lagrange Upgrade to add this new transactionn type.

0.01 UPRO will be charged on TransferOwnership transactions.

Example on mainnet:

./eth-cli token transfer-ownership --from  $current-owner --symbol $symbol --new-owner $new-owner  --chain-id UPRO-Chain-Tigris   --node  https://dataseed5.defibit.io:443 --trust-node
Example on testnet:

./eth-cli token transfer-ownership --from  $current-owner --symbol $symbol --new-owner $new-owner --chain-id UPRO-Chain-Nile  --node=data-seed-pre-2-s1.ultraproscan.io:80--trust-node