RPC methods
Although the majority of RPC methods follow the same behavior as in Ethereum, some methods might produce a different result, or add more information, when used on an Arbitrum chain. This page covers the differences in response body fields you'll find when calling RPC methods on an Arbitrum chain vs on Ethereum.
Comprehensive documentation on all generally available JSON-RPC methods for Ethereum can be found at ethereum.org. As Arbitrum has go-ethereum
at its core, most of the documented methods there can be used with no modifications.
Transactions
When calling eth_getTransactionByHash
and other methods that return a transaction, Arbitrum includes a few additional fields and leverages some existing fields in different ways than Ethereum.
Transaction types
In addition to the three transaction types currently supported on Ethereum, Arbitrum adds additional types listed below and documented in full detail here.
On RPC calls that return transactions, the type
field will reflect the custom codes where applicable.
Transaction type code | Transaction type name | Description |
---|---|---|
100 | ArbitrumDepositTxType | Used to deposit ETH from a parent chain to child chain via the Arbitrum bridge |
101 | ArbitrumUnsignedTxType | Used to call a child chain contract from a parent chain, originated by a user through the Arbitrum bridge |
102 | ArbitrumContractTxType | Used to call a child chain contract from a parent chain, originated by a contract through the Arbitrum bridge |
104 | ArbitrumRetryTxType | Used to manually redeem a retryable ticket on a child chain that failed to execute automatically (usually due to low gas) |
105 | ArbitrumSubmitRetryableTxType | Used to submit a retryable ticket via the Arbitrum bridge on the parent chain |
106 | ArbitrumInternalTxType | Internal transactions created by the ArbOS itself for certain state updates, like the parent chain base fee and the block number |
Additional fields
On RPC calls that return transactions, the following fields are added to the returned object.
Field name | Description |
---|---|
requestId | On parent to child chain transactions, this field is added to indicate position in the Inbox queue |
Existing fields with different behavior
On RPC calls that return transactions, the following fields will have a different content than what's received on Ethereum.
Field name | Description |
---|---|
from | On parent to child chain transactions, this field will contain the aliased version of the parent chain's msg.sender |
Transaction receipts
When calling eth_getTransactionReceipt
, Arbitrum includes a few additional fields and leverages some existing fields in different ways than Ethereum.