Transaction Statuses on GOAT Mainnet
Transactions on the GOAT Protocol can have various statuses depending on their stage in the inclusion process on the blockchain. Understanding these statuses can help you troubleshoot issues, build safer applications, and display more accurate information to your users.
Pending
Instant after sending to Sequencer
A transaction is considered "pending" when it has been sent to the Sequencer but has not yet been included in a block. This is the initial status a transaction will have after being sent to the Sequencer. At this stage, the transaction is not part of the blockchain, and there is no guarantee that it will be included.
- How to Check: The list of all pending transactions can be retrieved by calling the standard JSON-RPC method
eth_getBlockByNumber
with the parameterpending
as the block number.
Sequencer Confirmed / Unsafe
Typically within 2-4 seconds
A transaction is considered "sequencer confirmed" or "unsafe" when it has been included in a block by the Sequencer but that block has not yet been published to the Bitcoin network. Although the transaction is included in a block, it is still possible for the transaction to be excluded from the final blockchain if the Sequencer fails to publish the block within the allotted time frame.
- How to Check: The latest "sequencer confirmed" block can be retrieved by calling the standard JSON-RPC method
eth_getBlockByNumber
with the parameterlatest
as the block number.
Published to Bitcoin / Safe
Typically within 5-10 minutes, up to 12 hours
A transaction is considered "safe" when it has been included in a block by the Sequencer and that block has been published to Bitcoin but is not yet finalized. Once a block has been published to Bitcoin, there is a high likelihood that the block will be included in the final blockchain. However, it is still possible for the block to be excluded from the final blockchain if the Bitcoin blockchain experiences a reorganization.
- How to Check: The latest "safe" block can be retrieved by calling the standard JSON-RPC method
eth_getBlockByNumber
with the parametersafe
as the block number.
Finalized
Typically within 15-20 minutes, up to 12 hours
A transaction is considered "finalized" when it has been included in a block by the Sequencer, that block has been published to Bitcoin, and that block has been finalized. Once a block has been finalized, it is guaranteed to be included in the GOAT Protocol blockchain. Applications that require the highest level of certainty that a transaction will be included in the blockchain should wait until the transaction is "finalized" before considering it successful.
- How to Check: The latest "finalized" block can be retrieved by calling the standard JSON-RPC method
eth_getBlockByNumber
with the parameterfinalized
as the block number.
By understanding these transaction statuses, developers can better manage transaction lifecycles, provide accurate status updates to users, and ensure the reliability of their applications on the GOAT Protocol.