RPC Methods (Detailed Breakdown)
This section provides a detailed breakdown of Ethereum RPC method support via VeChainThor's SDK RPC Proxy, available at https://rpc-mainnet.vechain.energy . This is critical for developers.
debug_traceBlockByHash
Fully Supported
Provides detailed execution traces for all transactions within a specified block, identified by its hash. This is primarily a debugging tool and is accessed via the debug namespace. The output format will be VeChainThor-specific.
debug_traceBlockByNumber
Fully Supported
Provides detailed execution traces for all transactions within a specified block, identified by its number. This is primarily a debugging tool and is accessed via the debug namespace. The output format will be VeChainThor-specific.
debug_traceCall
Fully Supported
Similar to debug_traceTransaction, but allows tracing the execution of a call (like eth_call) without actually submitting a transaction. Useful for debugging and simulating contract calls. Returns a VeChainThor-specific trace format.
debug_traceTransaction
Fully Supported
Provides a detailed execution trace for a single transaction, identified by its hash. This is useful for debugging smart contract execution. Accessed via the debug namespace. Output is VeChainThor-specific.
eth_accounts
Fully Supported
Requests that the user provides an Ethereum address to be used by your dApp. Commonly intercepted by wallets like MetaMask.
For security reasons, this is not recommended and is typically blocked on public nodes.
Returns the configured signer addresses on the RPC Proxy instance which are only useful when the service is self-hosted.
eth_blockNumber
Fully Supported
Returns the latest block number. Equivalent to the latest finalized block on VeChainThor. Returns the latest "best" VeChainThor block number.
eth_call
Partially Supported
Simulates a contract call without making any changes to the blockchain state. Useful for reading data from contracts or testing function calls. Gas is required even if it won’t be subtracted. Important: Does not support state override.
eth_chainId
Fully Supported
Returns the chain ID of the VeChainThor network (Mainnet: 100009 (0x186a9), Testnet: 100010). This is crucial for ensuring your application is interacting with the correct network. Returns 0x186a9 for VeChain mainnet.
eth_coinbase
Not Supported
VeChainThor's Proof of Authority consensus does not have a "coinbase" address in the same way as Ethereum's Proof of Work.
eth_createAccessList
Not Supported
VeChainThor does not support access lists in the same way as Ethereum.
eth_estimateGas
Partially Supported
Estimates the VTHO required to execute a transaction.
At the moment, the method requires to pass a dummy value for both gas and gasPrice.
Crucially, this method only works reliably for single-clause transactions. It will likely fail or produce inaccurate results for multi-clause transactions (a core VeChainThor feature). For multi-clause transactions, use VeChainThor-specific gas estimation methods. Only supports the from, to, value, data fields.
eth_gasPrice
Fully Supported
Returns the current VTHO gas price. This is not directly analogous to Ethereum's gas price auction; VeChainThor's gas price is more stable, fixed at 1e+13 Wei (representing VTHO cost). It is not a direct result of an auction mechanism.
eth_getBalance
Fully Supported
Returns the VET balance of a given address. Important: This method only returns the VET balance. To retrieve the VTHO balance, you must use VeChainThor-specific APIs (e.g., the RESTful API) or call the VTHO contract's balanceOf function directly. Do not assume this method returns VTHO.
eth_getBlockByHash
Partially Supported
Returns information about a block, identified by its hash. Limitations: "finalized" and "safe" block tags (EIP-1898) are planned for future support but currently not supported.
eth_getBlockByNumber
Partially Supported
Returns information about a block, identified by its number. Limitations: "finalized" and "safe" block tags (EIP-1898) are planned for future support but currently not supported.
eth_getBlockReceipts
Fully Supported
Retrieves receipts for all transactions within a given block. The receipt will also show VeChainThor-specific multi-clauses, but the functionality is equivalent to Ethereum.
eth_getBlockTransactionCountByHash
Fully Supported
Returns the number of transactions in a block, identified by the block's hash. The block hash is a VeChainThor block ID.
eth_getBlockTransactionCountByNumber
Fully Supported
Returns the number of transactions in a block, identified by the block's number. The block number is in Hex format.
eth_getCode
Fully Supported
Returns the bytecode of the smart contract deployed at a given address. This is useful for verifying contract code.
eth_getLogs
Partially Supported
Retrieves event logs matching a given filter. Note: There might be practical limitations on the number of logs returned in a single call (e.g., a limit of 1000 entries). For large log queries, consider using pagination or VeChainThor's native event querying capabilities via the RESTful API. If fromBlock or toBlock is not defined then best block is assumed. Filtering by blockhash is not supported.
eth_getStorageAt
Fully Supported
Retrieves the value stored at a specific storage slot within a smart contract. This is a low-level method used for directly accessing contract storage.
eth_getTransactionByBlockHashAndIndex
Fully Supported
Returns information about a transaction, identified by the block hash and the transaction's index within that block. The block hash is a VeChainThor block ID.
eth_getTransactionByBlockNumberAndIndex
Fully Supported
Returns information about a transaction identified by the block number and the transaction's index within that block. The block number is in Hex format.
eth_getTransactionByHash
Fully Supported
Returns details for a specific transaction, identified by its hash. The returned transaction object will be in the VeChainThor format (including clauses, gasUsed, etc.). The block hash is a VeChainThor block ID.
eth_getTransactionCount
Full Supported*
Returns a number that can be used as nonce for the next transaction. Functionally Different: In Ethereum, this returns the number of transactions sent from an address as to use it as nonce for the next one. In VeChainThor (via the SDK RPC Proxy), this method returns a random value that does not represent the transaction count.
eth_getTransactionReceipt
Fully Supported
Returns the transaction receipt for a given transaction hash. The receipt will contain VeChainThor-specific details, including information about individual clauses within the transaction (if applicable) and the output field, which provides details about contract calls.
eth_getUncleByBlockHashAndIndex
Fully Supported
Returns null as VeChainThor has no "uncles" concept.
eth_getUncleByBlockNumberAndIndex
Fully Supported
Returns null as VeChainThor has no "uncles" concept.
eth_getUncleCountByBlockHash
Fully Supported
Returns 0 as VeChainThor has no "uncles" concept.
eth_getUncleCountByBlockNumber
Fully Supported
Returns 0 as VeChainThor has no "uncles" concept.
eth_requestAccounts
Fully Supported
Requests that the user provides an Ethereum address to be used by your dApp. Commonly intercepted by wallets like MetaMask.
For security reasons, this is not recommended and is typically blocked on public nodes.
Returns the configured signer addresses on the RPC Proxy instance which are only useful when the service is self-hosted.
eth_sendRawTransaction
Fully Supported
Recommended method for sending transactions: Accepts a pre-signed transaction (formatted for VeChainThor) and submits it to the network. This is the preferred method for sending transactions, as it keeps private keys secure. Use VeChainThor-specific libraries to create and sign the raw transaction. The raw transaction needs to be a signed, encoded VeChainThor format transaction.
eth_sendTransaction
Fully Supported
Deprecated for public nodes: This method requires signing the transaction with a private key within the client application. For security reasons, this is not recommended and is typically blocked on public nodes. Use eth_sendRawTransaction instead, where the transaction is signed before being sent. Only supported if signer addresses are configured.
eth_signTransaction
Not Supported
VeChainThor does not support this Ethereum method for signing transactions. Use VeChainThor-specific libraries and eth_sendRawTransaction.
eth_signTypedData_v4
Fully Supported
Supports signing typed data according to EIP-712. The signer must be configured within the RPC Proxy.
eth_subscribe
Fully Supported
Subscribes to real-time events on the blockchain (e.g., new blocks, new pending transactions, logs). Use this for building reactive applications that respond to blockchain events. newHeads and logs subscriptions are supported. Subscription IDs and event data formats are VeChainThor-specific.
eth_syncing
Partially Supported
Returns an object indicating the node's synchronization status. Note: The startingBlock field, often present in Ethereum, is not supported in VeChainThor's implementation. Returns false if the best block is older than 11 seconds. Other fields may have VeChainThor-specific values.
eth_unsubscribe
Fully Supported
Unsubscribes from a previously created subscription.
evm_mine
Fully Supported
Forces the node to mine a new block. Useful in development and testing environments. Waits for the next best block. Note eth_mining is not supported.
net_listening
Fully Supported
Returns true if the node is actively listening for network connections, false otherwise. This is a basic health check. Returns false if the best block is older than 30 seconds.
net_peerCount
Fully Supported
Returns the number of peers currently connected to the node. This can be used to monitor network connectivity.
net_version
Fully Supported
Returns the network ID (Mainnet: 100009 (0x186a9), Testnet: 100010), which is distinct from the chain ID. Returns 0x186a9 for VeChain mainnet.
txpool_content
Not Supported
VeChainThor does not expose transaction pool content in the same way as Ethereum. Returns null.
txpool_contentFrom
Not Supported
VeChainThor does not expose transaction pool content in the same way as Ethereum. Returns null.
txpool_inspect
Not Supported
VeChainThor does not expose transaction pool content in the same way as Ethereum. Returns null.
txpool_status
Not Supported
VeChainThor does not expose transaction pool status in the same way as Ethereum. Returns null.
web3_clientVersion
Fully Supported
Returns the version of the client software (e.g., the SDK RPC Proxy version). Returns thor.
web3_sha3
Fully Supported
Returns the Keccak256 hash of the provided data. No difference in behavior from Ethereum.
eth_newFilter
Not Supported
eth_newBlockFilter
Not Supported
eth_newPendingTransactionFilter
Not Supported
eth_uninstallFilter
Not Supported
eth_getFilterChanges
Not Supported
eth_getFilterLogs
Not Supported
eth_getProof
Not Supported
Last updated
Was this helpful?