Hedera enables the native creation of fungible and non-fungible tokens through its SDKs, eliminating the need for smart contracts. This approach leverages Hedera's core features like high TPS, security, and low latency for an optimized user experience. Additionally, the Hedera Token Service provides a cost-effective method for tokenization. Smart contracts on Hedera can also interact with this service via the Hedera Token Service System contract, offering functionalities like token creation, burning, and minting through the EVM.
Some of the key functions defined in the Hedera Token Service System Contract include:
Function Name
Consensus Node Release Version
HIP
Method Interface
allowance(address token, address owner, address spender)
approve(address token, address to, uint256 tokenId)
approveNFT(address token, address to, uint256 tokenId)
associateToken(address account, address token)
associateTokens(address account, address[] memory tokens)
burnToken(address token, int64 amount, int64[] memory serialNumbers)
createFungibleToken(HederaToken memory token, int64 initialTotalSupply, int32 decimals)
createFungibleTokenWithCustomFees
createFungibleTokenWithCustomFees(HederaToken memory token, int64 initialTotalSupply, int32 decimals, FixedFee[] memory fixedFees, FractionalFee[] memory fractionalFees)
createNonFungibleToken(HederaToken memory token)
createNonFungibleTokenWithCustomFees
createNonFungibleTokenWithCustomFees(HederaToken memory token, FixedFee[] memory fixedFees, RoyaltyFee[] memory royaltyFees)
cryptoTransfer(TransferList memory transferList, TokenTransferList[] memory tokenTransfers) external returns (int64 responseCode)
deleteToken(address token)
dissociateToken(address account, address token)
dissociateTokens(address account, address[] memory tokens)
freezeToken(address token, address account)
getApproved(address token, uint256 tokenId)
getFungibleTokenInfo(address token)
getNonFungibleTokenInfo(address token, int64 serialNumber)
getTokenCustomFees(address token)
getTokenDefaultFreezeStatus
getTokenDefaultFreezeStatus(address token)
getTokenDefaultKycStatus(address token)
getTokenExpiryInfo(address token)
getTokenInfo(address token)
getTokenKey(address token, uint256 keyType)
getTokenType(address token)
grantTokenKyc(address token, address account)
isApprovedForAll(address token, address owner, address operator)
isFrozen(address token, address account)
isKyc(address token, address account)
mintToken(address token, int64 amount, bytes[] memory metadata)
redirectForToken(address token, bytes memory data)
revokeTokenKyc(address token, address account)
setApprovalForAll(address token, address operator, bool approved)
transferFrom(address token, address from, address to, uint256 tokenId)
transferFromNFT(address token, address from, address to, uint256 serialNumber)
transferNFT(address token, address sender, address recipient, int64 serialNum)
transferNFTs(address token, address[] memory sender, address[] memory receiver, int64[] memory serialNumber)
transferToken(address token, address sender, address recipient, int64 amount)
transferTokens(address token, address[] memory accountId, int64[] memory amount)
unfreezeToken(address token, address account)
unpauseToken(address token)
updateTokenExpiryInfo(address token, Expiry expiry)
updateTokenInfo(address token, HederaToken hederaToken)
updateTokenKeys(address token, Expiry expiry)
wipeTokenAccount(address token, address account, int64 amount)
wipeTokenAccountNFT(address token, address account, int64[] serialNumbers)
Given your HTS token address, you can invoke these functions:
Function Name
Consensus Node Release Version
HIP
Method Interface
allowance(address owner, address spender)
approve(address to, uint256 tokenId)
getApproved(uint256 tokenId)
isApprovedForAll(address token, address owner, address operator)
setApprovalForAll(address operator, bool approved)
transferFrom(address from, address to, uint256 tokenId)
Example
Deploy a Contract Using the Hedera Token Service Additional References