The Hedera Token Service (HTS) System Contract is accessible at address 0x167
on the Hedera network. This contract interface provides a comprehensive set of methods for creating, managing, and interacting with various types of tokens on the Hedera network.
The table below outlines the available Hedera Token Service (HTS) System Contract functions:
Function Name | Function Selector Hash | Consensus Node Release Version | HIP | Method Interface | Comments |
---|---|---|---|---|---|
allowance |
0x927da105 |
0.26 | HIP 514 | allowance(address token, address owner, address spender) |
|
allowance |
0xdd62ed3e |
0.26 | HIP 376 | allowance(address owner, address spender) |
ERC allowance |
approve |
0xe1f21c67 |
0.26 | HIP 514 | approve(address token, address to, uint256 tokenId) |
|
approve |
0x95ea7b3 |
0.26 | HIP 376 | approve(address to, uint256 tokenId) |
ERC approve |
approveNFT |
0x7336aaf0 |
0.28 | HIP 514 | approveNFT(address token, address to, uint256 tokenId) |
|
associate |
0x0a754de6 |
0.38 | HIP 719 | associate() |
|
associateToken |
0x49146bde |
0.22 | HIP 206 | associateToken(address account, address token) |
|
associateTokens |
0x2e63879b |
0.22 | HIP 206 | associateTokens(address account, address[] memory tokens) |
|
burnToken |
0xacb9cff9 |
0.22 | HIP 206 | burnToken(address token, uint64 amount, int64[] memory serialNumbers) |
|
burnToken |
0xd6910d06 |
0.32 | HIP 206 | burnToken(address token, int64 amount, int64[] memory serialNumbers) |
v2. Update amount int64 |
createFungibleToken |
0x7812a04b |
0.25 | HIP 358 | createFungibleToken(HederaToken memory token, uint initialTotalSupply, uint decimals) |
|
createFungibleToken |
0xc23baeb6 |
0.30 | HIP 358 | createFungibleToken(HederaToken memory token, uint64 initialTotalSupply, uint32 decimals) |
v2. Update initialTotalSupply to uint64 and decimals to uint32 |
createFungibleToken |
0x0fb65bf3 |
0.32 | HIP 358 | createFungibleToken(HederaToken memory token, int64 initialTotalSupply, int32 decimals) |
v3. Update initialTotalSupply to int64 and decimals to int32 |
createFungibleTokenWithCustomFees |
0x4c381ae7 |
0.25 | HIP 358 | createFungibleTokenWithCustomFees(HederaToken memory token, uint initialTotalSupply, uint decimals, FixedFee[] memory fixedFees, FractionalFee[] memory fractionalFees) |
|
createFungibleTokenWithCustomFees |
0xb937581a |
0.25 | HIP 358 | createFungibleTokenWithCustomFees(HederaToken memory token, uint64 initialTotalSupply, uint32 decimals, FixedFee[] memory fixedFees, FractionalFee[] memory fractionalFees) |
v2. |
createFungibleTokenWithCustomFees |
0x2af0c59a |
0.30 | HIP 358 | createFungibleTokenWithCustomFees(HederaToken memory token, int64 initialTotalSupply, int32 decimals, FixedFee[] memory fixedFees, FractionalFee[] memory fractionalFees) |
v3. |
createNonFungibleToken |
0x9dc711e0 |
0.32 | HIP 358 | createNonFungibleToken(HederaToken memory token) |
|
createNonFungibleToken |
0x9c89bb35 |
0.25 | HIP 358 | createNonFungibleToken(HederaToken memory token) |
v2. HederaToken field maxSupply updated to int64 |
createNonFungibleToken |
0xea83f293 |
0.25 | HIP 358 | createNonFungibleToken(HederaToken memory token) |
v3. |
createNonFungibleTokenWithCustomFees |
0x5bc7c0e6 |
0.25 | HIP 358 | createNonFungibleTokenWithCustomFees(HederaToken memory token, FixedFee[] memory fixedFees, RoyaltyFee[] memory royaltyFees) |
|
createNonFungibleTokenWithCustomFees |
0x45733969 |
0.30 | HIP 358 | createNonFungibleTokenWithCustomFees(HederaToken memory token, FixedFee[] memory fixedFees, RoyaltyFee[] memory royaltyFees) |
v2. |
createNonFungibleTokenWithCustomFees |
0xabb54eb5 |
0.32 | HIP 358 | createNonFungibleTokenWithCustomFees(HederaToken memory token, FixedFee[] memory fixedFees, RoyaltyFee[] memory royaltyFees) |
v3. |
cryptoTransfer |
0x189a554c |
0.22 | HIP 206 | cryptoTransfer(TokenTransferList[] memory tokenTransfers) |
|
cryptoTransfer |
0x0e71804f |
Unreleased | HIP 206 | cryptoTransfer(TransferList memory transferList, TokenTransferList[] memory tokenTransfers) external returns (int64 responseCode) |
v2. Atomic transfers |
deleteToken |
0xf069f712 |
0.29 | HIP 514 | deleteToken(address token) |
|
dissociate |
0x5c9217e0 |
0.38 | HIP 719 | dissociate() |
|
dissociateToken |
0x099794e8 |
0.22 | HIP 206 | dissociateToken(address account, address token) |
|
dissociateTokens |
0x78b63918 |
0.22 | HIP 206 | dissociateTokens(address account, address[] memory tokens) |
|
freezeToken |
0x5b8f8584 |
0.29 | HIP 514 | freezeToken(address token, address account) |
|
getApproved |
0x081812fc |
0.26 | HIP 376 | getApproved(uint256 tokenId) |
ERC |
getApproved |
0x098f2366 |
0.26 | HIP 376 | getApproved(address token, uint256 tokenId) |
|
getFungibleTokenInfo |
0x3f28a19b |
0.29 | HIP 514 | getFungibleTokenInfo(address token) |
|
getNonFungibleTokenInfo |
0x287e1da8 |
0.29 | HIP 514 | getNonFungibleTokenInfo(address token, int64 serialNumber) |
|
getTokenCustomFees |
0xae7611a0 |
0.29 | HIP 514 | getTokenCustomFees(address token) |
|
getTokenDefaultFreezeStatus |
0xa7daa18d |
0.29 | HIP 514 | getTokenDefaultFreezeStatus(address token) |
|
getTokenDefaultKycStatus |
0x335e04c1 |
0.29 | HIP 514 | getTokenDefaultKycStatus(address token) |
|
getTokenExpiryInfo |
0xd614cdb8 |
0.30 | HIP 514 | getTokenExpiryInfo(address token) |
|
getTokenInfo |
0x1f69565f |
0.29 | HIP 514 | getTokenInfo(address token) |
|
getTokenKey |
0x3c4dd32e |
0.30 | HIP 514 | getTokenKey(address token, uint256 keyType) |
|
getTokenType |
0x93272baf |
0.30 | HIP 514 | getTokenType(address token) |
|
grantTokenKyc |
0x8f8d7f99 |
0.29 | HIP 514 | grantTokenKyc(address token, address account) |
|
isAssociated |
0x4d8fdd6d |
0.53 | HIP 719 | isAssociated() |
|
isApprovedForAll |
0xf49f40db |
0.26 | HIP 376 | isApprovedForAll(address token, address owner, address operator) |
ERC |
isApprovedForAll |
0xe985e9c5 |
0.26 | HIP 376 | isApprovedForAll(address token, address owner, address operator) |
|
isFrozen |
0x46de0fb1 |
0.29 | HIP 514 | isFrozen(address token, address account) |
|
isKyc |
0xf2c31ff4 |
0.29 | HIP 514 | isKyc(address token, address account) |
|
isToken |
0x19f37361 |
0.30 | HIP 514 | isToken(address token) |
|
mintToken |
0x278e0b88 |
0.22 | HIP 206 | mintToken(address token, uint64 amount, bytes[] memory metadata) |
|
mintToken |
0xe0f4059a |
0.32 | HIP 206 | mintToken(address token, int64 amount, bytes[] memory metadata) |
v2. Update amount to int64 |
redirectForToken |
0x618dc65e |
0.30 | HIP 218 | redirectForToken(address token, bytes memory data) |
|
revokeTokenKyc |
0xaf99c633 |
0.29 | HIP 514 | revokeTokenKyc(address token, address account) |
|
setApprovalForAll |
0xa22cb465 |
0.26 | HIP 376 | setApprovalForAll(address operator, bool approved) |
ERC |
setApprovalForAll |
0x367605ca |
0.26 | HIP 376 | setApprovalForAll(address token, address operator, bool approved) |
|
transferFrom |
0x23b872dd |
0.26 | HIP 376 | transferFrom(address from, address to, uint256 tokenId) |
ERC |
transferFrom |
0x15dacbea |
0.26 | HIP 376 | transferFrom(address token, address from, address to, uint256 tokenId) |
|
transferFromNFT |
0x9b23d3d9 |
0.26 | HIP 376 | transferFromNFT(address token, address from, address to, uint256 serialNumber) |
|
transferNFT |
0x5cfc9011 |
0.22 | HIP 206 | transferNFT(address token, address sender, address recipient, int64 serialNum) |
|
transferNFTs |
0x2c4ba191 |
0.22 | HIP 206 | transferNFTs(address token, address[] memory sender, address[] memory receiver, int64[] memory serialNumber) |
|
transferToken |
0xeca36917 |
0.22 | HIP 206 | transferToken(address token, address sender, address recipient, int64 amount) |
|
transferTokens |
0x82bba493 |
0.22 | HIP 206 | transferTokens(address token, address[] memory accountId, int64[] memory amount) |
|
unfreezeToken |
0x52f91387 |
0.29 | HIP 514 | unfreezeToken(address token, address account) |
|
unpauseToken |
0x3b3bff0f |
0.29 | HIP 514 | unpauseToken(address token) |
|
updateTokenExpiryInfo |
0x593d6e82 |
0.30 | HIP 514 | updateTokenExpiryInfo(address token, Expiry expiry) |
|
updateTokenExpiryInfo |
0xd27be6cd |
0.32 | HIP 514 | updateTokenExpiryInfo(address token, Expiry expiry) |
v2. |
updateTokenInfo |
0x2cccc36f |
0.30 | HIP 514 | updateTokenInfo(address token, HederaToken hederaToken) |
|
updateTokenInfo |
0x18370d34 |
0.30 | HIP 514 | updateTokenInfo(address token, HederaToken hederaToken) |
v2. |
updateTokenInfo |
0x7d305cfa |
0.32 | HIP 514 | updateTokenInfo(address token, HederaToken hederaToken) |
v3. |
updateTokenKeys |
0x6fc3cbaf |
0.30 | HIP 514 | updateTokenKeys(address token, Expiry expiry) |
|
wipeTokenAccount |
0x9790686d |
0.29 | HIP 514 | wipeTokenAccount(address token, address account, uint32 amount) |
|
wipeTokenAccount |
0xefef57f9 |
0.32 | HIP 514 | wipeTokenAccount(address token, address account, int64 amount) |
v2. Update amount to int64 |
wipeTokenAccountNFT |
0xf7f38e26 |
0.29 | HIP 514 | wipeTokenAccountNFT(address token, address account, int64[] serialNumbers) |