Get a transaction on one chain
/v1/chains/{chain}/txs/{hash}Returns what happened in one transaction: whether it succeeded, which block holds it, who sent it, who received it, how much coin moved, and what it cost in gas. Use it for a transaction page in an explorer, or whenever you know the chain a transaction lives on, for example from a block's transaction list. If you only have the hash and do not know the chain, use the transaction finder (/v1/txs/{hash}) or search.
What you can pass. {chain} is a chain ID, eip155:1 (Ethereum), eip155:143 (Monad) or eip155:5042 (Arc). {hash} is the transaction hash, 0x followed by 64 hex digits in any letter case, for example 0xd8da0850029a64bcf82546585d1305d349a2e2565f5b7fe329868f3c98d48966 on eip155:1.
What comes back: data is the transaction (kind tx). status is success, failed (it ran but reverted, and its fee was still paid), pending or unknown. block and index say where it sits. from and to are the sender and the receiver, and contract_created is the new contract's address when the transaction deployed one. value is the coin sent, gas_used and effective_gas_price give the gas, and fee is the total paid for gas. method_id identifies the contract function that was called, input_size and log_count size the call data and the events emitted, and ext.evm holds extra fields for dynamic-fee, blob and set-code transactions (see type). meta.finality is finalized or confirmed, or pending when no block holds the transaction yet.
A transaction that is still pending has status pending and meta.finality pending; its block, index, gas_used, effective_gas_price, fee and log_count are null, and the answer is not cached, so ask again later for the finished record.
Path parameters
| Name | Type | Description |
|---|---|---|
chainRequired | string | The chain to read, as a CAIP-2 chain ID: |
hashRequired | string | The transaction hash: |
Response
The transaction, wrapped in the {data, meta, links} envelope. data.kind is tx.
| Field | Type | Description |
|---|---|---|
| block | object | null | The block that holds the transaction. |
| chain | string | The chain this transaction belongs to. |
| contract_created | string | null | The address of the contract this transaction deployed. It is set only when |
| effective_gas_price | string | null | The price per unit of gas that was actually paid, in wei (divide by 10^9 for gwei). It comes from the transaction's receipt, or from the transaction's own gas price when the receipt has none. |
| ext | object | Extra fields that are specific to one kind of chain, grouped by kind. |
| fee | object | null | The total paid for gas, as an amount of the chain's coin. It is |
| from | string | The address that sent the transaction. |
| gas_limit | integer | The most gas the sender allowed the transaction to use. Unused gas is not charged. |
| gas_used | integer | null | The gas the transaction actually used. |
| hash | string | The hash that identifies the transaction. |
| index | integer | null | The transaction's position within its block, counting from 0. |
| input_size | integer | The size of the transaction's input data, in bytes. It is 0 for a plain coin transfer. |
| kind | string | Always |
| log_count | integer | null | How many event logs the transaction emitted, for example one for each token transfer. |
| method_id | string | null | The first 4 bytes of the transaction's input, as |
| nonce | integer | The sender's transaction counter: how many transactions the sender had sent before this one. A sender's nonces are used in order, starting at 0. |
| status | string | How the transaction ended. |
| system | boolean | True for a Monad system transaction, one the protocol itself creates rather than a user, such as the one that pays out a block reward. It comes from a reserved system address and has a gas limit, gas price and fee of 0. Always false on Ethereum. |
| to | string | null | The address the transaction was sent to, either a wallet that receives coin or a contract that is called. |
| type | integer | The transaction format, as an EIP-2718 type number. |
| value | object | The coin sent along with the transaction, which does not include the fee. It is 0 for most contract calls. |
Cost
1 credit. The time limit is the chain's own lookup limit, 2.5 s on Ethereum and 7 s on Monad and Arc. It is longer than for blocks because a chain needs a moment to be sure it has never seen a hash.
Errors
| Status | Code |
|---|---|
| 400 | invalid_id |
| 404 | unsupported_chainnot_found |
| 429 | rate_limitedcredits_exhausted |
| 500 | internal |
| 503 | upstream_unavailable |
| 504 | deadline_exceeded |
400 invalid_id if the chain ID or hash is malformed. 404 unsupported_chain if the chain is well formed but not served. 404 not_found if this chain has no transaction with that hash: it may not have been broadcast yet, or it may live on the other chain. 429 rate_limited or credits_exhausted. 503 upstream_unavailable or 504 deadline_exceeded if the chain data source is down or slow; retry.