eth_getTransactionReceipt - Mantle RPC Method
Get transaction receipt with status and logs on Mantle. Essential for verifying transaction execution for liquid staking (mETH $1.87B TVL), institutional DeFi via Bybit, and yield optimization strategies.
Returns the receipt of a transaction by transaction hash on Mantle. Receipt is only available for mined transactions.
Why Mantle? Build on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration with near-instant ZK finality via OP Succinct, $6.2B treasury backing, mETH liquid staking, and 25% Bybit trading fee discounts.
When to Use This Method
eth_getTransactionReceipt is essential for DeFi developers, liquid staking builders, and teams seeking institutional exchange integration:
- Transaction confirmation with success/failure status: Verify that a transaction has been mined on Mantle and determine whether it succeeded or reverted
- Gas usage analysis: Compare actual gas consumed against pre-transaction estimates for liquid staking (mETH $1.87B TVL), institutional DeFi via Bybit, and yield optimization strategies
- Event log parsing from emitted events: Extract and decode contract events for indexing, analytics, and notification systems
- Contract deployment detection: Identify newly deployed contracts on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration by checking the
contractAddressfield
Common Use Cases
1. Confirm Transaction Success and Parse Emitted Events
Poll eth_getTransactionReceipt after submitting a transaction to confirm it was mined successfully on Mantle. Once available, iterate through the logs array to decode and process events emitted by the transaction.
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://api-mantle-mainnet.n.dwellir.com/YOUR_API_KEY');
async function confirmAndParse(txHash) {
let receipt = null;
while (!receipt) {
receipt = await provider.getTransactionReceipt(txHash);
if (!receipt) {
console.log('Waiting for confirmation...');
await new Promise(r => setTimeout(r, 2000));
}
}
const status = receipt.status === 1 ? 'Success' : 'Failed';
console.log(`Transaction ${status} in block #${receipt.blockNumber}`);
console.log(`Gas used: ${receipt.gasUsed.toString()}`);
console.log(`Events emitted: ${receipt.logs.length}`);
for (const log of receipt.logs) {
console.log(` Event from ${log.address} with topics:`, log.topics);
}
return receipt;
}
confirmAndParse('0x01fec3bc45d186d1bffc3ed7e7fd88bd8408f5b4c68a86a83c54c60846589b06');2. Detect Contract Deployments by Checking contractAddress
When monitoring the chain for new contract deployments on Mantle, check the contractAddress field in transaction receipts. A non-null value indicates a contract creation transaction.
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://api-mantle-mainnet.n.dwellir.com/YOUR_API_KEY'))
def detect_deployment(tx_hash):
receipt = w3.eth.get_transaction_receipt(tx_hash)
if not receipt:
print(f'Transaction {tx_hash} not yet mined')
return None
if receipt['contractAddress']:
print(f'Contract deployed at: {receipt["contractAddress"]}')
print(f'Deployer: {receipt["from"]}')
print(f'Gas used: {receipt["gasUsed"]}')
return receipt['contractAddress']
else:
print(f'Transaction {tx_hash} is not a contract deployment')
return None
detect_deployment('0x01fec3bc45d186d1bffc3ed7e7fd88bd8408f5b4c68a86a83c54c60846589b06')3. Compute Effective Gas Price Paid by the Sender
Use the effectiveGasPrice field from the receipt (available on EIP-1559 chains) to calculate the actual cost of a transaction on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration. Compare this against the gas price from the transaction object for fee analysis.
package main
import (
"context"
"fmt"
"log"
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, _ := ethclient.Dial("https://api-mantle-mainnet.n.dwellir.com/YOUR_API_KEY")
txHash := common.HexToHash("0x01fec3bc45d186d1bffc3ed7e7fd88bd8408f5b4c68a86a83c54c60846589b06")
receipt, _ := client.TransactionReceipt(context.Background(), txHash)
if receipt == nil {
log.Fatal("Transaction not yet mined")
}
status := "Success"
if receipt.Status == 0 {
status = "Failed"
}
fmt.Printf("Status: %s\n", status)
fmt.Printf("Block: %d\n", receipt.BlockNumber.Uint64())
fmt.Printf("Gas used: %d\n", receipt.GasUsed)
// Calculate total cost: gasUsed * effectiveGasPrice
totalCost := new(big.Int).Mul(
big.NewInt(int64(receipt.GasUsed)),
receipt.EffectiveGasPrice,
)
fmt.Printf("Total cost: %s wei\n", totalCost.String())
if receipt.ContractAddress != (common.Address{}) {
fmt.Printf("Contract deployed at: %s\n", receipt.ContractAddress.Hex())
}
}Best Practices
- Receipt is only available after mining; poll until non-null: A
nullresponse means the transaction is pending or not found; implement a polling loop with exponential backoff to wait for confirmation - Check the
statusfield:0x1indicates a successful execution;0x0means the transaction reverted and may have consumed all provided gas - Parse the
logsarray for events using known topic hashes: Each log entry contains up to 4 indexed topics and a data field; use ABI definitions to decode them into readable event parameters - For frontrunning detection, compare effective gas price across similar transactions: Monitoring the
effectiveGasPriceacross transactions in a block can reveal priority gas auction dynamics on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration contractAddressis non-null only for contract deployment transactions: Use this field to distinguish regular transfers from contract create operations
Code Examples
Error Handling
| Error Code | Message | Description |
|---|---|---|
| -32602 | Invalid params | Invalid transaction hash |
Note: Returns null if transaction is not yet mined.
Related Methods
eth_getTransactionByHash- Get transaction detailseth_getLogs- Query logs by filter
eth_getTransactionByHash
Retrieve transaction details by hash on Mantle. Essential for DeFi developers, liquid staking builders, and teams seeking institutional exchange integration tracking transactions on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration.
eth_estimateGas
Estimate gas required for transactions on Mantle. Essential for optimizing transaction costs for liquid staking (mETH $1.87B TVL), institutional DeFi via Bybit, and yield optimization strategies.