eth_simulateV1 — Elysium JSON-RPC
Simulate calls without persisting state.
POST
https://triport.io/rpc/elysium- Network
- Elysium mainnet (chain ID 99901)
- Scope
- elysium:rpc
- Auth
- X-API-Key: $TRIPORT_API_KEY
- Rate limit
- elysium_read_rpc - 5 / 10 / 25 / 40 / 40 RPS sustained (Free / Basic / Pro / Business / Enterprise; BE5, 2026-11-08); Limits
Endpoint and plans: Elysium RPC endpoint.
eth_simulateV1 — simulate calls without persisting state. Elysium is an Arbitrum Orbit L2 (chain ID 99901) that pays gas in HYPE; the signature and response shape come from the Elysium OpenRPC contract.
Simulate call groups on a selected base block. The captured zero-value self-transfer returns status 0x1 and creates no persistent transaction. Simulation block hashes and numbers are hypothetical execution output.
Parameters
JSON-RPC params is a positional array.
simulationobjectrequiredSimulation options: blockStateCalls contains call groups; validation and traceTransfers are optional booleans. Execution is not persisted.
blockBlockTagoptionalBlock number in hex, or a tag:
latest, earliest, pending.Response
Measured 2026-11-08T20:25:49.867Z on Elysium mainnet; complete captured JSON-RPC request and response, not a captured Triport response.
Errors
See Elysium errors. Inspect the code and message together.
| Code | Meaning | Action |
|---|---|---|
| -32601 | Method unavailable | Check the documented method set. A method outside it is rejected earlier with HTTP 403 method_unknown. |
| -32602 | Invalid parameters | Correct the request. |
| -32005 | Request limit exceeded | Arrives with HTTP 429: back off and honor Retry-After; see Limits. |
| -32000 | Upstream unavailable | Retry reads with bounded backoff. |
HTTP 429 rate_limited | Plan RPS exceeded (plain HTTP error, not JSON-RPC) | Honor Retry-After; see Limits. |
Examples
const response = await fetch("https://triport.io/rpc/elysium", {
method: "POST",
headers: { "X-API-Key": process.env.TRIPORT_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({"jsonrpc":"2.0","id":20,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0x5699616f730312dc6646cab82e12edb3990d333d","to":"0x5699616f730312dc6646cab82e12edb3990d333d","value":"0x0"}]}],"validation":false,"traceTransfers":false},"0x287f17"]}),
});
const payload = await response.json();Notes
- The result is the view of the healthy node that answered; adjacent calls are not pinned to one node.
- For transaction submission, see eth_sendRawTransaction (live). The Triport contract excludes
net_listening,net_peerCount,txpool_*,debug_*andtrace_*: they are rejected with HTTP 403method_unknown; see unsupported methods.