Transaction Finality
Execution and consensus finality are separate from product settlement. ValueChain uses single slot finality (2-second slot): a receipt with a block means the transaction is included and will not revert.
JSON-RPC block tags (latest, safe, finalized) and confirmation depth are documented in Differences from Ethereum. Do not treat finalized as a second wait after the receipt.
Confirmation stages
Submitted
A transaction hash
Identifies the submission; does not prove inclusion or success.
Included
A receipt with blockHash, blockNumber, and status
The transaction is in a block and will not revert. status is only the EVM outcome.
A plain SOSO or ERC-20 transfer that does not create a product request is complete at Included when status is "0x1".
Track transaction execution
Query the receipt for the hash you are tracking. For Relayer submissions, follow Transaction Status first and use any replaced_by_hash before querying JSON-RPC.
curl -sS https://mainnet.valuechain.xyz \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["YOUR_TRANSACTION_HASH"]}'result: null: not included yet. This is not a failure. Queryeth_getTransactionByHash: an object withoutblockNumberis still pending;nullfrom both methods means this node does not have the transaction (it may have been dropped, or Relayer replaced it).Receipt
status: "0x1": execution succeeded in the reported block.Receipt
status: "0x0": execution failed in the reported block.
status does not confirm product settlement. Persist the transaction hash and the receipt blockHash. Treat a JSON-RPC error as a failed query, not as a failed transaction. Do not resubmit while the first hash is unknown or pending; that can create a duplicate request.
Last updated