Rollup Connection
You can connect to the Rollup using standard ethereum based tooling (e.g. MetaMask, Ethers.js, Hardhat etc).
Prerequisites
- Create an application in QuantConnect to obtain your unique client ID.
Error handling:
- The JSON-RPC responses include custom, rollup-specific error messages (for example, permission related errors).
- Clients should handle these specialised errors gracefully and implement retry or fallback logic as appropriate.
Authentication and access control
- Use your client ID to authenticate requests against the Rollup ETH-JSON-RPC endpoint.
- The Rollup ETH-JSON-RPC endpoint provides a defined set of methods relevant to rollup operations.
- Access to RPC methods is governed by role-based or permission-based rules. Only methods allowed for your client will be accessible which results in unauthorised attempts to be rejected with an appropriate error. RPC behaviour:
ETH-JSON-RPC information
The list of accessible and permissioned eth methods are as follows:
Method | Access Type | Notes |
---|---|---|
eth_blockNumber | ✅ Accessible | Returns current block height. |
eth_call | 🔐 Permissioned | The following must hold: if the from parameter is provided then it must be associated to an account this user owns; and if the providedto parameter is a contract address, then it must be restricted to contracts this user can access. |
eth_chainId | ✅ Accessible | Used to identify the chain ID for tx signing. |
eth_estimateGas | 🔐 Permissioned | The following must hold: if the from parameter is provided then it must be associated to an account this user owns; and if the providedto parameter is a contract address, then it must be restricted to contracts this user can access. |
eth_feeHistory | ✅ Accessible | Allows transaction fee analysis |
eth_gasPrice | ✅ Accessible | This RPC only returns the current gas price of the network |
eth_getBalance | ✅ Accessible | Allows balance checks |
eth_getBlockByHash | 🔐 Permissioned | The transactions array will show only transactions that satisfy either: the transaction'sto or from parameters are set to one of the user's accounts; or the transaction's to parameter is set to a smart contract that the user can access |
eth_getBlockByNumber | 🔐 Permissioned | The transactions array will show only transactions that satisfy either: the transaction'sto or from parameters are set to one of the user's accounts; or the transaction's to parameter is set to a smart contract that the user can access |
eth_getBlockReceipts | 🔐 Permissioned | The returned array will show only logs from transactions that satisfy either: the transaction's to or from parameters are set to one of the user's accounts; or the transaction's to parameter is set to a smart contract that the user can access |
eth_getCode | 🔐 Permissioned | If theaddress parameter is set to a smart contract address, then it must be restricted to a smart contract that this user can access. |
eth_getProof | 🔐 Permissioned | The address parameter provided must be either: set to an account that this user owns; or set to a smart contract that this user can access |
eth_getStorageAt | 🔐 Permissioned | The address must be restricted to contracts this user can access. |
eth_getTransactionByBlockHashAndIndex | 🔐 Permissioned | The transaction is returned only if either: the transaction'sto or from parameters are set to one of the user's accounts; or the to parameter is set to a smart contract that the user can access |
eth_getTransactionByBlockNumberAndIndex | 🔐 Permissioned | The transaction is returned only if either: the transaction'sto or from parameters are set to one of the user's accounts; or the to parameter is set to a smart contract that the user can access |
eth_getTransactionByHash | 🔐 Permissioned | The transaction is returned only if either: the transaction'sto or from parameters are set to one of the user's accounts; or the to parameter is set to a smart contract that the user can access |
eth_getTransactionCount | ✅ Accessible | Allows nonce checks |
eth_getTransactionReceipt | 🔐 Permissioned | The object is returned if the associated transaction object satisfies one of the following: the to or from parameters are set to one of the user's accounts; or the to parameter is set to a smart contract that the user can access |
eth_maxPriorityFeePerGas | ✅ Accessible | helps with transaction fees |
eth_protocolVersion | ✅ Accessible | Provides metadata only |
eth_sendRawTransaction | 🔐 Permissioned | The raw transaction needs to be decoded firstly. Then the transaction object will be considered. Firstly the transaction'sfrom parameter is added to the user's list of owned accounts (if it hasn't been added already). Next, if the transaction'sto parameter is a contract address, then it must be restricted to contracts this user can access. If to is null (because this transaction is a contract deployment), then the transaction is allowed and the deployed smart contract is assigned initially to the private access state for this particular user. |
eth_syncing | ✅ Accessible | Indicates node sync status. |
Updated about 5 hours ago