JSON-RPC API
Maroo Network provides a JSON-RPC API compatible with Ethereum tooling. This API allows developers to interact with the network, query blockchain data, and submit transactions.
Endpoints
https://rpc-testnet.maroo.io eth Namespace
Ethereum-compatible methods
eth_estimateGas Returns an estimate of how much gas a transaction will need if it were executed at the given block. The node simulates the call (no state change, no transaction) and reports the gas used. Use this before signing to set a sane gas field; pad the result by 20–30% for production transactions because actual on-chain gas can drift slightly with state changes between simulation and inclusion. On this chain the estimate also covers PCL policy evaluation: the compliance check that runs after your call executes is metered against your transaction's gas, and eth_estimateGas runs the same check, so the number it returns already includes it. Do not budget for it separately, and do not set a gas limit from the contract call's cost alone.
eth_getBalance Returns the OKRW balance of the specified address at a given block. Since OKRW is the native token, this returns the native balance (equivalent to ETH balance on Ethereum).
eth_getLogs Returns an array of log entries (events) matching the supplied filter. Use this for historical queries — point-in-time scans of contract events. For live subscriptions, use eth_subscribe (logs topic) over WebSocket. Maroo follows Ethereum's filter semantics; topics are hashed event signatures and indexed parameters, encoded as bytes32.
eth_getTransactionReceipt Returns the receipt of a transaction once it's been included in a block. Returns null while the transaction is still pending — poll until non-null, or use tx.wait() in ethers.js. The receipt contains the final status (success/revert), gas used, emitted logs, and contract address (if a deployment).
eth_sendRawTransaction Broadcasts a signed transaction to the network. Sign the transaction locally (e.g. with ethers.js or viem) and pass the resulting hex-encoded RLP bytes. The node returns the transaction hash immediately; use eth_getTransactionReceipt to wait for inclusion in a block.