eth_createAccessList
Creates an EIP-2930 access list that you can include in a transaction.
Use this method to optimize your smart contract interactions. Access lists are a part of Ethereum's EIP-2930, which aims to improve the network's scalability and reduce gas costs by specifying an explicit list of addresses and storage keys that a transaction intends to access.
See the Infura article Optimizing Ethereum Transactions with eth_createAccessList that describes how eth_createAccessList
can help optimize gas costs, reduce out-of-gas errors, and verify clients for infrastructure access.
This JSON-RPC method allows a request to be forwarded to a partner service provider if Infura should experience a service issue or outage. See Failover protection and Enable API request forwarding for complete details.
If you would like failover protection but don't qualify under your current plan, then either self-upgrade to the Growth plan or contact a sales representative to upgrade to a Custom plan.
Parameters
Transaction call object
: [Required]from
: [optional] 20 bytes. The address of the sender.to
: 20 bytes. Address the transaction is directed to.gas
: [optional] Hexadecimal value of the gas provided for the transaction execution.gasPrice
: [optional] Hexadecimal value gas price, in wei, provided by the sender. The default is0
. Used only in non-EIP-1559 transactions.maxPriorityFeePerGas
: [optional] Maximum fee, in wei, the sender is willing to pay per gas above the base fee. See EIP-1559 transactions. If used, must specifymaxFeePerGas
.maxFeePerGas
: [optional] Maximum total fee (base fee + priority fee), in wei, the sender is willing to pay per gas. See EIP-1559 transactions. If used, must specifymaxPriorityFeePerGas
.value
: [optional] Hexadecimal of the value transferred, in wei.data
: [optional] Hash of the method signature and encoded parameters. See Ethereum contract ABI specification.
block number
orblock hash
: [required] A string representing a block number, block hash, or one of the string tagslatest
,earliest
,pending
,safe
, orfinalized
. See the default block parameter.
Returns
Access list object with the following fields:
accessList
: A list of objects with the following fields:address
: Addresses to be accessed by the transaction.storageKeys
: Storage keys to be accessed by the transaction.
gasUsed
: A hexadecimal string representing the approximate gas cost for the transaction if the access list is included.
Example
Replace <YOUR-API-KEY>
with an API key from your MetaMask Developer dashboard.
Request
- curl
- WSS
curl https://polygon-mainnet.infura.io/v3/<YOUR-API-KEY> \
-X POST \
-H "Content-Type: application/json" \
-d '{"method": "eth_createAccessList", "params": [{"from": "0xaeA8F8f781326bfE6A7683C2BD48Dd6AA4d3Ba63", "data": "0x608060806080608155"}, "pending"], "id": 1, "jsonrpc": "2.0"}'
wscat -c wss:///polygon-mainnet.infura.io/ws/v3/<YOUR-API-KEY> -x '{"method": "eth_createAccessList", "params": [{"from": "0xaeA8F8f781326bfE6A7683C2BD48Dd6AA4d3Ba63", "data": "0x608060806080608155"}, "pending"], "id": 1, "jsonrpc": "2.0"}'
Response
- JSON
{
"accessList": [
{
"address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
"storageKeys": [
"0x0000000000000000000000000000000000000000000000000000000000000081",
]
}
]
"gasUsed": "0x125f8"
}