gen_getTransactionReceipt
Retrieves the transaction receipt for a given transaction ID. This endpoint is a proxy to the underlying consensus layer's getTransactionAllData function, providing detailed information about a transaction that has been processed.
Method: gen_getTransactionReceipt
Parameters:
request(object, required):txId(string, required): The 32-byte transaction hash as a hexadecimal string with a0xprefix.
Returns:
A Transaction object which contains the details of the transaction. The structure is based on ITransactionsTransaction from the consensus contracts. The object has the following fields:
id(string): The transaction ID as a hex string.txOrigin(address): The original address that initiated the transaction.sender(address): The address of the sender.recipient(address): The destination address of the transaction.activator(address): The address of the validator that activated the transaction.status(uint8): The current status of the transaction.statusName(string): The ABI transaction status name forstatus(Uninitialized,Pending,Proposing,Committing,Revealing,Accepted,Undetermined,Finalized,Canceled,AppealRevealing,AppealCommitting,ValidatorsTimeout,LeaderTimeout, orLeaderRevealing).previousStatus(null): Always null. The contract dropped this field fromITransactions.Transaction(26 → 25 tuple components), so the node has nothing to report. It isnullrather than0because0decodes asUninitialized, which would be a wrong answer rather than an absent one. The field is removed in a v2 receipt.txSlot(uint256): The transaction slot number.initialRotations(uint256): The initial number of rotations.numOfInitialValidators(uint256): The number of initial validators.randomSeed(string): The random seed used for the transaction as a hex string.txExecutionHash(string): The execution hash of the transaction as a hex string.txCallData(string): The transaction call data as a hex string.eqBlocksOutputs(string): The equivalent blocks outputs as a hex string.timestamps(object): Object containing various timestamps:Created(uint256): When the transaction was created.Pending(uint256): When the transaction became pending.Activated(uint256): When the transaction was activated.Proposed(uint256): When the transaction was proposed.Committed(uint256): When the transaction was committed.LastVote(uint256): When the last vote was cast.AppealSubmitted(uint256): When an appeal was submitted.LeaderRevealed(uint256): When the leader was revealed.
result(uint8): The result of the transaction execution.txExecutionResult(uint8): The execution vote result (0NotVoted,1FinishedWithReturn,2FinishedWithError,3Timeout,4NondetDisagree,5DeterministicViolation).txExecutionResultName(string): The ABI vote type name fortxExecutionResult.epoch(uint256): The epoch the transaction belongs to.resultHash(string): The transaction result hash as a hex string.validUntil(uint256): The timestamp until which the transaction is valid.fees(object|null): Fee accounting echo.nullwhen fee accounting is disabled or the FeeManager binding/address is not available. All numeric values in this object are decimal strings.deposit(string): Submission-time fee custody sum, fromtransactionFeesBudget(txId) + transactionDeveloperFeesBudget(txId).userValue(string): User value carried by the transaction.distribution(object): Effective fee distribution for the transaction:leaderTimeunitsAllocation(string)validatorTimeunitsAllocation(string)appealRounds(string)executionBudgetPerRound(string)totalMessageFees(string)rotations(string[])maxPriceGenPerTimeUnit(string)storageFeeMaxGasPrice(string)receiptFeeMaxGasPrice(string)
locked(object|null): Activation-locked prices, ornullbefore activation when no locked prices exist:genPerTimeUnit(string)storageUnitPrice(string)receiptGasPrice(string)
consumed(object): On-chain consumption counters:executionConsumed(string)storageFeeUsed(string): Storage fee charged on-chain for the transaction, equal to the storage pages it consumed multiplied by the lockedstorageUnitPrice.messageFeesConsumed(string)messageFeesBudgetTotal(string)
hasAllocations(boolean):truewhen the transaction locked a pinned per-message fee allocation tree at submission;falsefor an open bucket (global message-fee bucket) or fee-less transactions.allocations(array): The pinned per-message fee allocation tree, one entry per locked allocation (empty for an open bucket). Budget comes from the on-chain allocation tree;consumedis read from the separateallocationConsumed(txId, key)mapping, keyed bykeccak256(abi.encode(messageType, recipient, callKey)). Each entry:messageType(number):0= external,1= internal.onAcceptance(boolean): Emission phase the allocation is pinned to (true= on acceptance,false= on finalization).parentIndex(string): Index of the parent allocation in the flat tree, or the root sentinel (2^256 - 1) for a root-layer allocation.recipient(string): Target contract address the allocation funds, or the zero address for a recipient wildcard.callKey(string): 32-byte call key (hex) the allocation matches, or thekeccak256("")call-key wildcard.budget(string): Maximum message-fee budget locked for this allocation.consumed(string): Amount consumed against this allocation so far.feeParams(string): ABI-encoded per-message fee params (hex), decoded permessageType.
readStateBlockRanges(array): Array of block range objects, each containing:ActivationBlock(uint256): The activation block number.ProcessingBlock(uint256): The processing block number.ProposalBlock(uint256): The proposal block number.
roundData(array): Array of round data objects containing:round(uint256): The round number.leaderIndex(uint256): Index of the round leader.votesCommitted(uint256): Number of votes committed.votesRevealed(uint256): Number of votes revealed.appealBond(uint256): The appeal bond amount.rotationsLeft(uint256): Number of rotations remaining.result(uint256): The round result.roundValidators(array): Array of validator addresses for this round.validatorVotes(string): Base64-encoded validator votes.validatorVotesHash(array): Array of vote hashes as hex strings.validatorResultHash(array): Array of result hashes as hex strings.
Example Request:
{
"jsonrpc": "2.0",
"method": "gen_getTransactionReceipt",
"params": [
{
"txId": "0x635060dd514082096d18c8eb64682cc6a944f9ce1ae6982febf7a71e9f656f49"
}
],
"id": 1
}Example Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"id": "0x635060dd514082096d18c8eb64682cc6a944f9ce1ae6982febf7a71e9f656f49",
"txOrigin": "0x5b70759760a85d92bf972b67ee8558e8e8da87d4",
"sender": "0x5b70759760a85d92bf972b67ee8558e8e8da87d4",
"recipient": "0x73ca5a2b51edf506ceaf110a41780ec51294d89f",
"activator": "0xf27b07d36ff5b9dcd37fd3a09811d6456dd4483a",
"status": 13,
"statusName": "LeaderRevealing",
"previousStatus": null,
"txSlot": 1,
"initialRotations": 1,
"numOfInitialValidators": 5,
"randomSeed": "0x3d0bdff63bce1cf84b155f1557bb15e303b903b1b559325b6492794a5e498954",
"txExecutionHash": "0x76744dc491b1725eb2ba08cf516855c14aac310e36711368c04442fd39d61853",
"txCallData": "f5b31604617267730da4017570646174656420746573742073746f72616765066d6574686f64747570646174655f73746f7261676500",
"eqBlocksOutputs": "c0",
"timestamps": {
"Created": 1750774777,
"Pending": 1750774777,
"Activated": 1750774781,
"Proposed": 1750774786,
"Committed": 1750774791,
"LastVote": 0,
"AppealSubmitted": 0,
"LeaderRevealed": 0
},
"result": 0,
"txExecutionResult": 3,
"txExecutionResultName": "Timeout",
"epoch": 12,
"resultHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"validUntil": 0,
"fees": {
"deposit": "1234500000000000",
"userValue": "0",
"distribution": {
"leaderTimeunitsAllocation": "100",
"validatorTimeunitsAllocation": "200",
"appealRounds": "0",
"executionBudgetPerRound": "20000000000000000",
"totalMessageFees": "0",
"rotations": ["0"],
"maxPriceGenPerTimeUnit": "1200000000000000",
"storageFeeMaxGasPrice": "12",
"receiptFeeMaxGasPrice": "300000000"
},
"locked": {
"genPerTimeUnit": "0",
"storageUnitPrice": "10",
"receiptGasPrice": "250000000"
},
"consumed": {
"executionConsumed": "0",
"storageFeeUsed": "250",
"messageFeesConsumed": "0",
"messageFeesBudgetTotal": "0"
},
"hasAllocations": false,
"allocations": []
},
"readStateBlockRanges": [
{
"ActivationBlock": 1377797,
"ProcessingBlock": 1377797,
"ProposalBlock": 1377798
}
],
"roundData": [
{
"round": 0,
"leaderIndex": 3,
"votesCommitted": 5,
"votesRevealed": 0,
"appealBond": 0,
"rotationsLeft": 1,
"result": 0,
"roundValidators": [
"0xa707a1d9dd946242f921f0ad62f61e1b7df30c85",
"0xf27b07d36ff5b9dcd37fd3a09811d6456dd4483a",
"0xf3738216c3208d77a9db79a1d31824e5133083c4",
"0x56394354538bff1e0ee5021c2b6d3522fce30257",
"0xcfdbac032f82f388d9eca76efa6610b98e7f59fe"
],
"validatorVotes": "AAAAAAA=",
"validatorVotesHash": [
"54e3478b02dfb009a35d46b19ac7c967b65416430a33d3860e9301a0f2b19d57",
"f74a48e7283c91757bf2c612e40f8a9eb69ea0f02cf5e6b89c3c9b6ad629a3c1",
"2f51c3b1d9ff35140260fb42330fbed12303a9915b8da786c9b8ed060983fa6c",
"730127e27167fcf2450fe506250b85d916fbf07dd874b7f0c69a2f8ceb9e44a6",
"473d57953f7e7c1a6fb1d2335618f21088025e02bd9fa30d6f85f20a55c24d15"
],
"validatorResultHash": [
"0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
}