GOAT Network
App Development

Transaction Statuses

Applications on GOAT Network should distinguish between fast L2 confirmation and Bitcoin-backed finality.

Transaction lifecycle
Pending
  |
  v
Sequencer confirmed
  |
  v
Published to Bitcoin
  |
  v
Finalized

Status Reference

Pending

PropertyDetail
MeaningThe transaction is in the mempool or waiting to be included in a GOAT Network block.
AvailabilityQuery the pending pool with eth_getTransactionByHash.
Typical actionShow a pending badge and allow replacement or cancellation if your wallet supports it.

Sequencer Confirmed

PropertyDetail
MeaningThe transaction was included in a GOAT Network block but is not yet Bitcoin-final.
Typical timeframeUsually 2-4 seconds.
Typical actionTell users the transaction is visible on GOAT Network but not yet final.

Published to Bitcoin

PropertyDetail
MeaningThe commitment or related settlement data reached Bitcoin, but confirmation depth may still be low.
Typical timeframeUsually 10-60 minutes, depending on Bitcoin block times.
Typical actionShow confirmation progress toward finality.

Finalized

PropertyDetail
MeaningThe transaction is now backed by sufficient Bitcoin confirmations.
Typical timeframeDepends on required confirmation depth, for example about 1 hour for 6 Bitcoin confirmations.
Typical actionMark the action complete and irreversible.

Monitoring Examples

Check transaction receipt with ethers.js
const receipt = await provider.getTransactionReceipt(txHash);

if (!receipt) {
  console.log('Pending');
} else if (receipt.status === 1) {
  console.log('Included on GOAT Network');
} else {
  console.log('Failed');
}
Poll for confirmation
const latestBlock = await provider.getBlockNumber();
console.log({ latestBlock });

Useful RPC Methods

RPC methodPurpose
eth_getTransactionReceiptRetrieve execution status and block metadata
eth_getTransactionByHashRead the raw transaction payload
eth_getBlockByNumberCheck block timing and confirmation progress

Special Considerations

  • Bitcoin reorgs can affect transactions in the published-but-not-final stage. Wait for enough confirmations before treating high-value actions as final.
  • A receipt with status: false usually means insufficient gas, fee configuration problems, or a smart contract execution error.
  • Batch operations are atomic: if one operation reverts, the whole batch reverts.
  • Use retries carefully. Replacing a pending transaction with the same nonce and higher fees can be useful, but careless retries can create nonce conflicts.

Best Practices

  1. Use different UI labels for GOAT Network inclusion and Bitcoin finality.
  2. Surface reorg risk until Bitcoin confirmation depth is acceptable for your use case.
  3. Handle status: false receipts as contract or execution failures, not just slow confirmations.
  4. Link users to the appropriate explorer for independent verification.
  5. Join the GOAT Developer Chat for support and operational updates.

On this page