Smart Contract Addresses
Last updated
Last updated
After a smart contract is deployed on Hedera, it is associated with a unique smart contract address. There are two types of addresses a smart contract can be referenced by in the system:
The standard smart contract EVM address is the address that is compatible with EVM. The EVM contract address is returned by the system once the contract is deployed. This is the address format that is commonly used in the Ethereum ecosystem. You can use the smart contract EVM address to reference smart contracts in Ethereum Ecosystem tools like Hardhat and MetaMask.
Example Contract EVM Address hex encoded contract ID: 0x00000000000000000000000000000000002cd37f
Note: Contracts deployed using the ContractCreate
Hedera API transactions will have this form (For example, using ContractCreateTransaction in the SDKs). All other deployment cases will be in the standard EVM address, post HIP-729.
Example Contract EVM Address: 0x86ecca95fecdb515d068975b75eac4357contractd6e86c5
In the Hedera Network, smart contracts can also be identified by a smart contract ID. A smart contract ID is a contract identifier native to the Hedera network. Both the smart contract EVM address and smart contract ID are accepted identifiers for a smart contract when interacting with the contract on Hedera using the Hedera transactions.
Example Contract ID: 0.0.123
In some cases, the EVM address is the hex-encoded format of the contract ID.
The smart contract ID is not a compatible address format accepted or known in the Ethereum ecosystem. For example, if you use MetaMask, you will not specify the contract by its contract ID and instead use its EVM address.
When viewing the contract information, you may see both types of addresses noted in Hedera Network Explorers like HashScan.
Similar to Ethereum, Smart Contract entities are also a type of account. A smart contract deployed on Hedera can hold HBAR, fungible, and non-fungible tokens.
Smart Contract ID
Smart Contract EVM Address
Smart Contract Hex Encoded Contract ID
0x00000000000000000000000000000000002cff73 *This is only present if the contract was NOT deployed via an EVM tool and instead the Hedera SDKs.
Smart Contract Account ID