Skip to main content

Fungible Tokens

Deploying a Fungible Token Smart Contract​

Deploying a fungible token smart contract follows the same process as any smart contract. Please review this documentation.

Adding a feature type with the token details to the payload.


{
...
"Features": [
{
"FeatureName": 13,
"FeatureFeatures": {
"TokenName": "My Token Name",
"TokenTicker": "My Token Ticker",
"TokenDecimalPlaces": 16,
"TokenSupply": 1000, //0 for infinite supply
"TokenBurnable": true,
"TokenMintable": true,
"TokenVoting": true,
"TokenImageURL": "https://...", // optional
"TokenImageBase": "base64ImageData..."
},
}
]
}

After compiling, the token smart contract still needs to be minted, following the same approach as any smart contract.

GET http://localhost:7292/scapi/scv1/MintSmartContract/{SMART_CONTRACT_UID}

Minting Tokens​

Note: The base token's smart contract must be of infinite supply in order to mint tokens.

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/TokenMint/{id}/{fromAddress}/{amount}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The smart contract owner's address.

amount: The amount of tokens to mint (decimals supported)

Success Response​

{
"Success": true,
"Message": "TX Success. SCUID: ..."
}

Note: all token action methods will return a similar response structure. If Success is false the Message param will include details.


Transferring Tokens​

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/TransferToken/{id}/{fromAddress}/{toAddress}/{amount}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The sender's address

toAddress: The recipient's address

amount: The amount of tokens to transfer (decimals supported)


Burning Tokens​

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/BurnToken/{id}/{fromAddress}/{amount}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The address of the token owner to burn from.

amount: The amount of tokens to burn (decimals supported)


Pausing (and Unpausing) Token Transactions​

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/PauseTokenContract/{id}/{fromAddress}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The address of the token owner.


Change Ownership​

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/ChangeTokenContractOwnership/{id}/{fromAddress}/{toAddress}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The sender's address

toAddress: The recipient's address


Create Voting Topic Ownership​

API Endpoint​

POST http://localhost:7292/tkapi/TKV2/CreateTokenTopic

POST Data Params:​

    {
"TopicName": "",
"TopicDescription": "",
"SmartContractUID": "",
"MinimumVoteRequirement": "",
"FromAddress": "",
"VotingEndDays": "",
}


Cast Vote​

API Endpoint​

GET http://localhost:7292/tkapi/TKV2/CastTokenTopicVote/{id}/{fromAddress}/{topicUid}/{vote}

URL Params:​

id: The token's smart contract identifier.

fromAddress: The voter's address

topicUid: The topic's unique identifier

vote: 1 == YES; 0 == NO