# Transaction types

You can interact with the [Ethereum JSON-RPC API](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api) using different transaction types (specified by the `type` parameter).

The following methods use a unique format depending on the transaction type:

* [`eth_call`](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_call)
* [`eth_estimateGas`](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_estimategas)
* [`eth_getTransactionByBlockHashAndIndex` ](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_gettransactionbyblockhashandindex)
* [`eth_getTransactionByBlockNumberAndIndex`](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_gettransactionbyblocknumberandindex)&#x20;
* [`eth_getTransactionByHash` ](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_gettransactionbyhash)
* [`eth_getTransactionReceipt` ](https://paralinker.gitbook.io/paralinker-docs/reference/ethereum-execution-layer/json-rpc-api/eth_gettransactionreceipt)

## Legacy transactions

Transactions with type `0x0` are legacy transactions that use the transaction format existing before typed transactions were introduced in [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718). They contain the parameters `nonce`, `gasPrice`, `gasLimit`, `to`, `value`, `data`, `v`, `r`, and `s`. Legacy transactions don’t use [access lists](#access-list-transactions) or incorporate [EIP-1559 fee market changes](#undefined).

## Access list transactions

Transactions with type `0x1` are transactions introduced in [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930). They contain, along with the [legacy parameters](#legacy-transactions), an `accessList` parameter, which specifies an array of addresses and storage keys that the transaction plans to access (an *access list*). Access list transactions must specify an access list, and they don’t incorporate EIP-1559 fee market changes.

## EIP-1559 transactions

Transactions with type `0x2` are transactions introduced in [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md), included in Ethereum's [London fork](https://ethereum.org/en/history/#london). EIP-1559 addresses the network congestion and overpricing of transaction fees caused by the historical fee market, in which users send transactions specifying a gas price bid using the `gasPrice` parameter, and miners choose transactions with the highest bids.

EIP-1559 transactions don’t specify `gasPrice`, and instead use an in-protocol, dynamically changing *base fee* per gas. At each block, the base fee per gas is adjusted to address network congestion as measured by a gas target.

EIP-1559 transactions contain, along with the [`accessList`](#access-list-transactions) parameter and [legacy parameters](#legacy-transactions) except for `gasPrice,` a `maxPriorityFeePerGas` parameter, which specifies the maximum fee the sender is willing to pay per gas above the base fee (the maximum *priority fee* per gas), and a `maxFeePerGas` parameter, which specifies the maximum total fee (base fee + priority fee) the sender is willing to pay per gas.

An EIP-1559 transaction always pays the base fee of the block it’s included in, and it pays a priority fee as priced by `maxPriorityFeePerGas` or, if the base fee per gas + `maxPriorityFeePerGas` exceeds `maxFeePerGas`, it pays a priority fee as priced by `maxFeePerGas` minus the base fee per gas. The base fee is burned, and the priority fee is paid to the miner that included the transaction. A transaction’s priority fee per gas incentivizes miners to include the transaction over other transactions with lower priority fees per gas.

Read the [ConsenSys EIP-1559 primer](https://consensys.net/blog/quorum/what-is-eip-1559-how-will-it-change-ethereum/) for more information on how EIP-1559 changes Ethereum.
