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:

MethodAccess TypeNotes
eth_blockNumber✅ AccessibleReturns current block height.
eth_call🔐 PermissionedThe 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✅ AccessibleUsed to identify the chain ID for tx signing.
eth_estimateGas🔐 PermissionedThe 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✅ AccessibleAllows transaction fee analysis
eth_gasPrice✅ AccessibleThis RPC only returns the current gas price of the network
eth_getBalance✅ AccessibleAllows balance checks
eth_getBlockByHash🔐 PermissionedThe 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🔐 PermissionedThe 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🔐 PermissionedThe 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🔐 PermissionedIf 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🔐 PermissionedThe 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🔐 PermissionedThe address must be restricted to contracts this user can access.
eth_getTransactionByBlockHashAndIndex🔐 PermissionedThe 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🔐 PermissionedThe 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🔐 PermissionedThe 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✅ AccessibleAllows nonce checks
eth_getTransactionReceipt🔐 PermissionedThe 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✅ Accessiblehelps with transaction fees
eth_protocolVersion✅ AccessibleProvides metadata only
eth_sendRawTransaction🔐 PermissionedThe 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✅ AccessibleIndicates node sync status.