No response in the interactive API
The response to the call might be too big for ReadMe to handle, so if you are not getting it here, copy the CURL example and run in your terminal—this will work.
Arbitrum API method that retrieves the receipt of a transaction from a transaction hash. It can be used to verify the success or failure of a transaction, check the execution status of a smart contract, retrieve logs, check if a transaction deployed a smart contract, and more.
Get you own node endpoint today
Start for free and get your app to production levels immediately. No credit card required.
You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
hash
— the hash identifying a transaction
Response
Transaction receipt
— the receipt object with:blockHash
— the block hash. Identifies the block in which the transaction was included. This field isnull
for transactions that have not yet been included in a block.blockNumber
— the number of the block in which the transaction was included. This field isnull
for transactions that have not yet been included in a block.contractAddress
— the address of the contract created by the transaction if it was a contract creation transaction. Otherwise, the value isnull
.cumulativeGasUsed
— the total amount of gas used in the block until this transaction was executed.effectiveGasPrice
— the actual value deducted from the sender's account for this transaction.from
— the address of the sender who initiated the transaction.gasUsed
— the amount of gas used by this specific transaction alone.logs
— an array of log objects generated by this transaction, if any. Logs are generated by smart contracts.logsBloom
— the bloom filter used by light clients to quickly retrieve logs related to the transaction.status
— the success status of the transaction, represented as1
for success or0
for failure.to
— the address of the recipient of the transaction if it was a transaction to an address. For contract creation transactions, this field isnull
.transactionHash
— the hash that uniquely identifies the transaction.transactionIndex
— the index of the transaction within the block.type
— the type of the transaction.0
indicates a regular transfer;2
indicates a contract creation or smart contract function call.
eth_getTransactionReceipt
code examples
eth_getTransactionReceipt
code examplesconst Web3 = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function getReceipt(transactionHash) {
const receipt = await web3.eth.getTransactionReceipt(transactionHash)
console.log(receipt)
}
getReceipt("0x3985727a3dbb61eab145ad22cfa842562d9e633806057290a5403b2eb880e160")
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const getTransactionReceipt = async (transactionHash) => {
const receipt = await provider.send("eth_getTransactionReceipt", [transactionHash]);
console.log(receipt);
};
getTransactionReceipt('0x3985727a3dbb61eab145ad22cfa842562d9e633806057290a5403b2eb880e160')
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
print(web3.eth.get_transaction_receipt("0x3985727a3dbb61eab145ad22cfa842562d9e633806057290a5403b2eb880e160"))
Use case
A practical use case for eth_getTransactionReceipt
is to verify a transaction's status and whether it was successful or not. This can be especially useful when deploying a contract, as you can use the receipt to confirm that the contract was deployed successfully and has a valid contract address.
Here's an example in web3.js:
const Web3 = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
async function verifyTransaction(transactionHash) {
// Get the transaction receipt
const receipt = await web3.eth.getTransactionReceipt(transactionHash);
// Check if the receipt is not yet available
if (!receipt) {
console.log(`Transaction ${transactionHash} is still pending...`);
return;
}
// Check if the transaction was successful
if (receipt.status) {
console.log(`✅The transaction was successful! \nHash: ${transactionHash}`);
// Check if the transaction deployed a smart contract
if (receipt.contractAddress != null) {
console.log(`📑The smart contract was deployed at address: ${receipt.contractAddress}`);
} else {
console.log(`❗This transaction did not deploy a smart contract`);
}
} else {
console.log(`💥The transaction failed. \nHash: ${transactionHash}`);
}
}
verifyTransaction('0x1f001c4e6a2d2e8f5c7a7dfa479178a7a055dc02c1480a3324545410c8706522')
This script holds an async function called verifyTransaction
that takes a transaction hash as input. The function uses the web3.js library to retrieve the transaction receipt of the specified transaction using the eth_getTransactionReceipt
method.
The function first checks if the transaction receipt is not yet available, and if so, it logs a message to the console indicating that the transaction is still pending. If the receipt is available, the function checks the status property of the receipt to determine if the transaction was successful.
If the transaction was successful, the function checks if a smart contract was deployed as part of the transaction. The function logs the smart contract's address to the console if a smart contract is deployed. If not, the function logs a message indicating that no smart contract was deployed.
If the transaction was not successful, the function logs a message indicating that the transaction failed, along with the transaction hash.
Try the eth_getTransactionReceipt
RPC method yourself
eth_getTransactionReceipt
RPC method yourself