enum
Status
The transaction passed the precheck validations.
For any error not handled by specific error codes listed below.
Payer account does not exist.
Node Account provided does not match the node account of the node the transaction was submitted to.
Pre-Check error when TransactionValidStart + transactionValidDuration is less than current consensus time.
Transaction start time is greater than current consensus time
The given transactionValidDuration was either non-positive, or greater than the maximum valid duration of 180 secs.
The transaction signature is not valid
Transaction memo size exceeded 100 bytes
The fee provided in the transaction is insufficient for this type of transaction
The payer account has insufficient cryptocurrency to pay the transaction fee
This transaction ID is a duplicate of one that was submitted to this node or reached consensus in the last 180 seconds (receipt period)
If API is throttled out
The API is not currently supported
The file id is invalid or does not exist
The account id is invalid or does not exist
The contract id is invalid or does not exist
Transaction id is not valid
Receipt for given transaction id does not exist
Record for given transaction id does not exist
The solidity id is invalid or entity with this solidity id does not exist
The responding node has submitted the transaction to the network. Its final status is still unknown.
The transaction succeeded
There was a system error and the transaction failed because of invalid request parameters.
There was a system error while performing fee calculation, reserved for future.
There was a system error while performing balance checks, reserved for future.
Key not provided in the transaction body
Unsupported algorithm/encoding used for keys in the transaction
When the account balance is not sufficient for the transfer
During an update transaction when the system is not able to find the Users Solidity address
Not enough gas was supplied to execute transaction
contract byte code size is over the limit
local execution (query) is requested for a function which changes state
Contract REVERT OPCODE executed
For any contract execution related error not handled by specific error codes listed above.
In Query validation, account with +ve(amount) value should be Receiving node account, the receiver account should be only one account in the list
Header is missing in Query request
The update of the account failed
Provided key encoding was not supported by the system
null solidity address
update of the contract failed
the query header is invalid
Invalid fee submitted
Payer signature is invalid
The keys were not provided in the request.
Expiration time provided in the transaction was invalid.
WriteAccess Control Keys are not provided for the file
The contents of file are provided as empty.
The crypto transfer credit and debit do not sum equal to 0
Transaction body provided is empty
Invalid transaction body provided
the type of key (base ed25519 key, KeyList, or ThresholdKey) does not match the type of signature (base ed25519 signature, SignatureList, or ThresholdKeySignature)
the number of key (KeyList, or ThresholdKey) does not match that of signature (SignatureList, or ThresholdKeySignature). e.g. if a keyList has 3 base keys, then the corresponding signatureList should also have 3 base signatures.
the livehash body is empty
the livehash data is missing
the keys for a livehash are missing
the livehash data is not the output of a SHA-384 digest
the query body is empty
the crypto livehash query is empty
the livehash is not present
the account id passed has not yet been created.
the livehash already exists for a given account
File WACL keys are invalid
Serialization failure
The size of the Transaction is greater than transactionMaxBytes
The Transaction has more than 50 levels
Contract is marked as deleted
the platform node is either disconnected or lagging behind.
one public key matches more than one prefixes on the signature map
transaction not created by platform due to large backlog
auto renewal period is not a positive number of seconds
the response code when a smart contract id is passed for a crypto API request
the account has been marked as deleted
the file has been marked as deleted
same accounts repeated in the transfer account list
attempting to set negative balance value for crypto account
when deleting smart contract that has crypto balance either transfer account or transfer smart contract is required
when deleting smart contract that has crypto balance you can not use the same contract id as transferContractId as the one being deleted
transferAccountId or transferContractId specified for contract delete does not exist
attempting to modify (update or delete a immutable smart contract, i.e. one created without a admin key)
Unexpected exception thrown by file system functions
the duration is not a subset of [MINIMUM_AUTORENEW_DURATION,MAXIMUM_AUTORENEW_DURATION]
Decoding the smart contract binary to a byte array failed. Check that the input is a valid hex string.
File to create a smart contract was of length zero
Bytecode for smart contract is of length zero
Attempt to set negative initial balance
[Deprecated]. attempt to set negative receive record threshold
[Deprecated]. attempt to set negative send record threshold
Special Account Operations should be performed by only Genesis account, return this code if it is not Genesis Account
The fee payer account doesn't have permission to submit such Transaction
FreezeTransactionBody is invalid
FreezeTransactionBody does not exist
Exceeded the number of accounts (both from and to) allowed for crypto transfer list
Smart contract result size greater than specified maxResultSize
The payer account is not a special account(account 0.0.55)
Negative gas was offered in smart contract call
Negative value / initial balance was specified in a smart contract call / create
Failed to update fee file
Failed to update exchange rate file
Payment tendered for contract local call cannot cover both the fee and the gas
Entities with Entity ID below 1000 are not allowed to be deleted
Violating one of these rules: 1) treasury account can update all entities below 0.0.1000, 2) account 0.0.50 can update all entities from 0.0.51 - 0.0.80, 3) Network Function Master Account A/c 0.0.50 - Update all Network Function accounts & perform all the Network Functions listed below, 4) Network Function Accounts: i) A/c 0.0.55 - Update Address Book files (0.0.101/102), ii) A/c 0.0.56 - Update Fee schedule (0.0.111), iii) A/c 0.0.57 - Update Exchange Rate (0.0.112).
Fee Schedule Proto uploaded but not valid (append or update is required)
Fee Schedule Proto uploaded but not valid (append or update is required)
Fee Schedule Proto File Part uploaded
The change on Exchange Rate exceeds Exchange_Rate_Allowed_Percentage
Contract permanent storage exceeded the currently allowable limit
Transfer Account should not be same as Account to be deleted
The expiration date/time on a smart contract may not be reduced
Gas exceeded currently allowable gas limit per transaction
File size exceeded the currently allowable limit
When a valid signature is not provided for operations on account with receiverSigRequired=true
The Topic ID specified is not in the system.
A provided admin key was invalid.
A provided submit key was invalid.
An attempted operation was not authorized (ie - a deleteTopic for a topic with no adminKey).
A ConsensusService message is empty.
The autoRenewAccount specified is not a valid, active account.
An adminKey was not specified on the topic, so there must not be an autoRenewAccount.
The topic has expired, was not automatically renewed, and is in a 7 day grace period before the topic will be deleted unrecoverably. This error response code will not be returned until autoRenew functionality is supported by HAPI.
chunk number must be from 1 to total (chunks) inclusive.
For every chunk, the payer account that is part of initialTransactionID must match the Payer Account of this transaction. The entire initialTransactionID should match the transactionID of the first chunk, but this is not checked or enforced by Hedera except when the chunk number is 1.
Account is frozen and cannot transact with the token
An involved account already has more than tokens.maxPerAccount associations with non-deleted tokens.
The token is invalid or does not exist
Invalid token decimals
Invalid token initial supply
Treasury Account does not exist or is deleted
Token Symbol is not UTF-8 capitalized alphabetical string
Freeze key is not set on token
Amounts in transfer list are not net zero
A token symbol was not provided
The provided token symbol was too long
KYC must be granted and account does not have KYC granted
KYC key is not set on token
Token balance is not sufficient for the transaction
Token transactions cannot be executed on deleted token
Supply key is not set on token
Wipe key is not set on token
The requested token mint amount would cause an invalid total supply
The requested token burn amount would cause an invalid total supply
A required token-account relationship is missing
The target of a wipe operation was the token treasury account
The provided KYC key was invalid.
The provided wipe key was invalid.
The provided freeze key was invalid.
The provided supply key was invalid.
Token Name is not provided
Token Name is too long
The provided wipe amount must not be negative, zero or bigger than the token holder balance
Token does not have Admin key set, thus update/delete transactions cannot be performed
An associateToken operation specified a token already associated to the account
An attempted operation is invalid until all token balances for the target account are zero
An attempted operation is invalid because the account is a treasury
Same TokenIDs present in the token list
Exceeded the number of token transfers (both from and to) allowed for token transfer list
TokenTransfersTransactionBody has no TokenTransferList
TokenTransfersTransactionBody has a TokenTransferList with no AccountAmounts
The Scheduled entity does not exist; or has now expired, been deleted, or been executed
The Scheduled entity cannot be modified. Admin key not set
The provided Scheduled Payer does not exist
The Schedule Create Transaction TransactionID account does not exist
The provided sig map did not contain any new valid signatures from required signers of the scheduled transaction
The required signers for a scheduled transaction cannot be resolved, for example because they do not exist or have been deleted
Only whitelisted transaction types may be scheduled
At least one of the signatures in the provided sig map did not represent a valid signature for any required signer
The scheduled field in the TransactionID may not be set to true
A schedule already exists with the same identifying fields of an attempted ScheduleCreate (that is, all fields other than scheduledPayerAccountID)
A string field in the transaction has a UTF-8 encoding with the prohibited zero byte
A schedule being signed or deleted has already been deleted
A schedule being signed or deleted has already been executed
ConsensusSubmitMessage request's message size is larger than allowed.
An operation was assigned to more than one throttle group in a given bucket
The capacity needed to satisfy all opsPerSec groups in a bucket overflowed a signed 8-byte integral type
Given the network size in the address book, the node-level capacity for an operation would never be enough to accept a single request; usually means a bucket burstPeriod should be increased
A bucket was defined without any throttle groups
A throttle group was granted zero opsPerSec
The throttle definitions file was updated, but some supported operations were not assigned a bucket
The new contents for the throttle definitions system file were not valid protobuf
The new throttle definitions system file were invalid, and no more specific error could be divined
The transaction references an account which has passed its expiration without renewal funds available, and currently remains in the ledger only because of the grace period given to expired entities
Invalid token max supply
Invalid token nft serial number
Invalid nft id
Nft metadata is too long
Repeated operations count exceeds the limit
The range of data to be gathered is out of the set boundaries
A custom fractional fee set a denominator of zero
The transaction payer could not afford a custom fee
More than 10 custom fees were specified
Any of the feeCollector accounts for customFees is invalid
Any of the token Ids in customFees is invalid
Any of the token Ids in customFees are not associated to feeCollector
A token cannot have more units minted due to its configured supply ceiling
The transaction attempted to move an NFT serial number from an account other than its owner
A custom fee schedule entry did not specify either a fixed or fractional fee
Only positive fees may be assessed at this time
Fee schedule key is not set on token
A fractional custom fee exceeded the range of a 64-bit signed integer
A royalty cannot exceed the total fungible value exchanged for an NFT
Each fractional custom fee must have its maximum_amount, if specified, at least its minimum_amount
A fee schedule update tried to clear the custom fees from a token whose fee schedule was already empty
Only tokens of type FUNGIBLE_COMMON can be used to as fee schedule denominations
Only tokens of type FUNGIBLE_COMMON can have fractional fees
The provided custom fee schedule key was invalid
The requested token mint metadata was invalid
The requested token burn metadata was invalid
The treasury for a unique token cannot be changed until it owns no NFTs
An account cannot be dissociated from a unique token if it owns NFTs for the token
A NFT can only be burned when owned by the unique token's treasury
An account did not own the NFT to be wiped
An AccountAmount token transfers list referenced a token type other than FUNGIBLE_COMMON
All the NFTs allowed in the current price regime have already been minted
The payer account has been marked as deleted
The reference chain of custom fees for a transferred token exceeded the maximum length of 2
More than 20 balance adjustments were to satisfy a CryptoTransfer and its implied custom fee payments
The sender account in the token transfer transaction could not afford a custom fee
Currently no more than 4,294,967,295 NFTs may be minted for a given unique token type
Only tokens of type NON_FUNGIBLE_UNIQUE can have royalty fees
The account has reached the limit on the automatic associations count.
Already existing automatic associations are more than the new maximum automatic associations.
Cannot set the number of automatic associations for an account more than the maximum allowed token associations tokens.maxPerAccount.
Token is paused. This Token cannot be a part of any kind of Transaction until unpaused.
Pause key is not set on token
The provided pause key was invalid
The update file in a freeze transaction body must exist.
The hash of the update file in a freeze transaction body must match the in-memory hash.
A FREEZE_UPGRADE transaction was handled with no previous update prepared.
A FREEZE_ABORT transaction was handled with no scheduled freeze.
The update file hash when handling a FREEZE_UPGRADE transaction differs from the file hash at the time of handling the PREPARE_UPGRADE transaction.
The given freeze start time was in the (consensus) past.
The prepared update file cannot be updated or appended util either the upgrade has been completed, or a FREEZE_ABORT has been handled.
Once a freeze is scheduled, it must be aborted before any other type of freeze can can be performed.
If an NMT upgrade has been prepared, the following operation must be a FREEZE_UPGRADE. (To issue a FREEZE_ONLY, submit a FREEZE_ABORT first.)
If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must confirm the id of the to be used in the upgrade.
If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must confirm the hash of the file to be used in the upgrade.
Consensus throttle did not allow execution of this transaction. System is throttled at consensus level.
A precompiled contract succeeded, but was later reverted.
All contract storage allocated to the current price regime has been consumed.
An alias used in a CryptoTransfer transaction is not the serialization of a primitive Key message--that is, a Key with a single Ed25519 or ECDSA(secp256k1) public key and no unknown protobuf fields.
An approved allowance specifies a spender account that is the same as the hbar/token owner account.
The establishment or adjustment of an approved allowance cause the token allowance to exceed the token maximum supply.
The specified amount for an approved allowance cannot be negative.
The approveForAll flag cannot be set for a fungible token.
The spender does not have an existing approved allowance with the hbar/token owner.
The transfer amount exceeds the current approved allowance for the spender account.
The payer account of an approveAllowances or adjustAllowance transaction is attempting to go beyond the maximum allowed number of allowances.
Spender is repeated more than once in Crypto or Token or NFT allowance lists in a single CryptoApproveAllowance or CryptoAdjustAllowance transaction.
Serial numbers are repeated in nft allowance for a single spender account
Fungible common token used in NFT allowances
Non fungible token used in fungible token allowances
An approval/adjustment transaction was submitted where the payer and owner account are not the same. Currently only the owner is permitted to perform these operations.
A CryptoCreate or ContractCreate used the deprecated proxyAccountID field.
An account set the staked_account_id to itself in CryptoUpdate or ContractUpdate transactions.
The staking account id or staking node id given is invalid or does not exist.
Native staking, while implemented, has not yet enabled by the council.
The range provided in UtilPrng transaction is negative.
The maximum number of entities allowed in the current price regime have been created.
The full prefix signature for precompile is not valid
The combined balances of a contract and its auto-renew account (if any) did not cover the rent charged for net new storage used in a transaction.
A contract transaction tried to use more than the allowed number of child records, via either system contract records or internal contract creations.
The combined balances of a contract and its auto-renew account (if any) or balance of an account did not cover the auto-renewal fees in a transaction.
A transaction's protobuf message includes unknown fields; could mean that a client expects not-yet-released functionality to be available.
The account cannot be modified. Account's key is not set
An alias that is assigned to an account or contract cannot be assigned to another account or contract.