Hedera Smart Contracts and token creation
The Hedera Smart Contract Service (HSCS) enables users to deploy self-executing programs on the Hedera network and is fully compatible with the Ethereum Virtual Machine (EVM), meaning any Solidity-based contract can be deployed on Hedera with minimal modifications. Hedera's network is built on a Hashgraph consensus algorithm which delivers enterprise-grade performance: low, predictable fees, finality in seconds, and exceptional throughput.
Hedera smart contracts allow users to automate complex on-chain logic, manage tokenized assets, and interact seamlessly with Hedera's native services, such as the Hedera Token Service (HTS) and Hedera Consensus Service (HCS). By integrating Hedera smart contracts, you can extend functionality beyond simple value transfers to support programmable transactions, automated workflows, and complex decentralized applications with improved scalability and cost control.
There are 2 Smart contract options in the Impenetrable Vault for setting up the HTS token:
- Using the HBAR Proxy factory smart contract
- Using the HBAREVM Proxy factory smart contract
These are preinstalled on the Impenetrable Vault but have slightly different processes.
An alternate way to creating an Hedera token is by using the Tokenization tool.
Create an HTS token using the HBAR Proxy smart contract
Load HBAR Proxy factory Smart contract to create the HTS proxy
The first stage is to load a Hedera smart contract into the Impenetrable Vault. This process must be performed in conjunction with the Desktop App which will display some of the information you need for this transaction, as well as confirmation codes.
The Impenetrable Vault has many preloaded smart contracts. The smart contract to connect to the Hedera blockchain is called HBAR Proxy Factory.
To load the Hedera smart contract:
- Open Smart Contracts from the side bar menu.
- Select Add EVM Contract. The New EVM Contract window opens. Select Load.
- The Choose Smart Contract window opens. Select HBAR Proxy Factory. Select Add. The New EVM Contract window fills with the contract data.
- Select OK and validate the new changes to the system.
Update the Transaction Policies to include Hedera
It can be easy to forgot to add or update your system Transaction Policies to include the new Hedera currency if this is the first time you are adding this type of Smart Contract.
To update the Transaction Policies:
- Select Policy Management from the main menu. In the Transaction Policies select a policy to update by selecting the
edit icon.
- In the To - Address list select the Hedera HBAR contacts to add to the Transaction policy.

- In the Currencies section, under Allow in Policy, ensure that the Smart contract function calls box is ticked.

- Complete the rest of the policy and select Save policy.
At this stage you can, optionally, sync the value of the HBAR coin.
- Select Transactions from the side bar menu
- Select the account to use and the Hedera token HBAR. Select Sync.
- Type the Nonce value which is found in the Desktop app notification message.
- Update the value of HBAR tokens, this information is also found in the Desktop app notification message.
Make a Hedera transaction
Now that a transaction policy is updated you can make Hedera HTS transactions. This is essential to perform at this stage to create the HTS proxy for the account address. The transaction value is set to 0.
To create a transaction:
- Select Transactions from the side bar menu
- Select the account to use and the Hedera currency HBAR. Select New Transaction.
- The Create Hedera Transaction window opens. Select the Smart Contract Function Call box. Then select Load Smart Contract.
- The Choose Smart Contract window opens. Select the Smart Contract you want to load from the list. In our example the HBAR Proxy Factory is chosen. Select OK.

- In the Create Hedera Transaction window, select Smart Contract Data. The Choose Contract Function window opens. Select a function. In our example build(bytes32 salt) is chosen.
- The EVM Contract Data window opens. Type the values of each function parameter. In our example we enter the value for Parameter 1 (salt) as 0x000000000000000......0000000000000. Select OK.

- In the Create Hedera Transaction window, type the remaining values. Some values may appear in the Dektop app notifications.

- Select Send. A dry run transaction is run by the system to ensure that the parameters are correctly configured and the transaction will succeed to be added to the blockchain. The result appears in the Desktop app notification, if the dry run is successful, select Continue. The Transaction sent window appears.
This process creates the HTS proxy for the account address.
Create the HTS token with the HBAR contract
Next you must use the HTS smart contract to create the token and define it's various parameters, in this example the contract name is: HBAR HTS 1 Account 1. The name of this smart contract changes for each token and account that is created.
- Open Smart Contracts from the side bar menu.
- Select Add EVM Contract. The New EVM Contract window opens. Select Load.
- The Choose Smart Contract window opens. Select HBAR HTS 1 Account 1. Select Add.
- The New EVM Contract now lists the contract as the Contract name and lists the destination details and the available functions for this contract.
- Select Add and the new EVM contract is added to the list of Smart Contracts.
The HTS token is now added to the system. Now we want to use the token to run a smart contract function, such as CreateFungibleToken.
Using the HTS token functions
- Open Transactions from the side bar menu.
- Select the account to use and the Hedera currency HBAR. Select New Transaction.
- The Create Hedera Transaction window opens. Select the Smart Contract Function Call box. Then select Load Smart Contract.
- To load the HTS smart contract, select the row with: Contract Name: HBAR HTS 1 Account 1. Select OK. The New Transaction window will fill with some data.
- Select Smart Contract Data. The list of contract functions available appears in the Choose Contract Function window. Select the function you wish to use. In this example, we will use CreateFungibleToken.

- Type the values for each function parameter that appears in the list for the EVM Contract Data window. Select OK. The information is added to the Hedera transaction.

- Complete the rest of the Hedera Transaction information, and select Send. The system processes a dry-run of this transaction, with the results appearing in the Desktop app.
The HTS token is now created.
Create an HTS token using the HBAREVM Proxy smart contract
Load HBAREVM Proxy factory Smart contract to create the HTS proxy
The first stage is to load a Hedera smart contract into the Impenetrable Vault. This process must be performed in conjunction with the Desktop app which will display some of the information you need for this transaction, as well as confirmation codes.
The Impenetrable Vault has many preloaded smart contracts. The smart contract to connect to the Hedera blockchain is called HBAREVM Proxy Factory.
To Load the Hedera smart contract:
- Open Smart Contracts from the side bar menu.
- Select Add EVM Contract. The New EVM Contract window opens. Select Load.
- The Choose Smart Contract window opens. Select HBAREVM Proxy Factory. Select Add. The New EVM Contract window fills with the contract data.
- Select OK and validate the new changes to the system.
Update the Transaction Policies to include Hedera
It can be easy to forgot to add or update your system Transaction Policies to include the new Hedera currency if this is the first time you are adding this type of Smart Contract.
To update the Transaction Policies:
- Select Policy Management from the main menu. In the Transaction Policies select a policy to update by selecting the
edit icon.
- In the To - Address list select the Hedera HBAR contacts to add to the Transaction policy.

- In the Currencies section, under Allow in Policy, ensure that the Smart contract function calls box is ticked.

- Complete the rest of the policy and select Save policy.
At this stage you can, optionally, sync the value of the HBAREVM coin.
- Select Transactions from the side bar menu
- Select the account to use and the Hedera token HBAREVM. Select Sync.
- Type the Nonce value which is found in the Desktop app notification message.
- Update the value of HBAREVM, this information is also found in the Desktop app notification message.
Make a Hedera transaction
Now that a transaction policy is updated you can make Hedera HTS transactions. This is essential to perform at this stage to create the HTS EVM proxy for the account address. The transaction value is set to 0.
To create a transaction:
- Select Transactions from the side bar menu
- Select the account to use and the Hedera currency HBAREVM. Select New Transaction.
- The Create Hedera Transaction window opens. Select the Smart Contract Function Call box. Then select Load Smart Contract.
- The Choose Smart Contract window opens. Select the Smart contract you want to load from the list. In our example the HBAREVM Proxy Factory is chosen. Select OK.

- In the Create Hedera Transaction window, select Smart Contract Data. The Choose Contract Function window opens. Select a function. In our example build(bytes32 salt) is chosen.
- The EVM Contract Data window opens. Type the values of each function parameter. In our example we enter the value for Parameter 1 (salt) as 0x0000000000000.....000000000000000. Select OK.

- In the Create Hedera Transaction window, type the remaining values. Some values may appear in the Desktop app notifications.

- Select Send. A dry run transaction is run by the system to ensure that the parameters are correctly configured and the transaction will succeed to be added to the blockchain. The result appears in the Desktop app notification, if the dry run is successful select Continue. The Transaction sent window appears.
This process creates the HTS proxy for the account address.
Create the HTS token with the HBAREVM contract
Next you must use the HTS smart contract to create the token and define it's various parameters, in this example the contract name is: HBAREVM HTS 1 Account 1. The name of this smart contract changes for each token and Account that is created.
- Open Smart Contracts from the side bar menu.
- Select Add EVM Contract. The New EVM Contract window opens. Select Load.
- The Choose Smart Contract window opens. Select HBAREVM HTS 1 Account 1. Select Add.
- The New EVM Contract now lists the contract as the Contract name and lists the destination details and the available functions for this contract.
- Select Add and the new EVM contract is added to the list of Smart Contracts.
The HTS token is now added to the system. Now we want to use the token to run a smart contract function, such as CreateFungibleToken.
Using the HTS token functions
- Open Transactions from the side bar menu.
- Select the account to use and the Hedera currency HBAREVM. Select New Transaction.
- The Create Hedera Transaction window opens. Select the Smart Contract Function Call box. Then select Load Smart Contract.
- To load the HTS smart contract, select the row with: Contract Name: HBAREVM HTS 1 Account 1. Select OK. The New Transaction window will fill with some data.
- Select Smart Contract Data. The list of contract functions available appears in the Choose Contract Function window. Select the function you wish to use. In this example, we will use CreateFungibleToken.

- Type the values for each function parameter that appears in the list for the EVM Contract Data window. Select OK. The information is added to the Hedera transaction.

- Complete the rest of the Hedera Transaction information, and select Send. The system processes a dry-run of this transaction, with the results appearing in the Desktop app.
The HTS token is now created.
Adding more token functions to the Smart Contract
Extra token functions can be added to the smart contract by mapping other fuctions from the Hedera system by selecting Add in the Contract Functions section of the New EVM Contract window.

Add the ERC20 token to the Desktop app
In the Desktop app, add the Token as a smart contract or ERC-20
- Open the Admin Panel, the Settings side bar tab and go to the Coin Management tab. Select the
to add a new custom EVM coin.
To complete this, you need to be in contact with the Customer Success team who must send you an Activation Code to complete this process. It is advisable to make contact in advance. Select Add when the new coin form is completed.

- Import the new EVM token to the Impenetrable Vault.
- In the Impenetrable Vault, select Coin Management in the side bar menu.
- In the Coin Management page select the EVM tab. Select Import from MPC. The Import EVM from MPC window opens. Enter the information for the new EVM. The information appears in the Feed section of the Desktop app. Once the Approvers approve the addition of the EVM, it appears in the Dashboard currency list.
Add an ERC20 token to the Desktop app
Set the System to Impenetrable in the top bar dropdown list.
- Open the Admin Panel, the Settings side bar tab and go to the Coin Management tab. Select the
to add a new custom ERC-20 token.
- The Add a New Coin window opens. In the top tab, select ERC-20, then select ERC-20 custom coins.
- Select HaderaEVM, type the Contract address of the Fungible token created above. This can be found on the hashscan website that has logged your token creation.

Enter the rest of the ERC-20 information, such as Name, Symbol and Fees, etc. Select Add and complete the approval process.
Sync the ERC-20 token to the Impenetrable Vault
Sync the ERC-20 token to the Impenetrable Vault, which requires using both the Impenetrable Vault and the Desktop app.
- Open Coin Management from the side bar menu.
- Select the ERC20 tab, and select Import from MPC. The Import ERC20 token from MPC window opens. The information for this window appears in the Desktop app notifications. Enter the information in the correct fields.

- Select Import. The new ERC20 token appears in the Coin Mangement table. Select Save.
The new ERC20 token is also added to the Smart Contracts table.
Removing a Hedera Smart Contract
To remove a Hedera Smart Contract, see Removing a Smart Contract from the systemRemoving a Smart Contract from the system.
Using the API/ SDK to implement HTS contract calls
The SDK can also be used to set up, implement and run HTS smart contract actions.
This can be done using the hts.py file located in the apiClient\src\gk8_sdk\SpecificApis\HtsApis folder.
The file includes he following functions that can be implemented: build, getProxyAddress, createFungibleToken, associate, transfer, transferToken, and mintToken.
The file contains descriptions of each function and input examples to guide a developer. For more support, contact the Customer Success team.