App Development
Applications on GOAT Network should distinguish between fast L2 confirmation and Bitcoin-backed finality.
Pending
|
v
Sequencer confirmed
|
v
Published to Bitcoin
|
v
Finalized
| Property | Detail |
|---|
| Meaning | The transaction is in the mempool or waiting to be included in a GOAT Network block. |
| Typical action | Show a pending badge and allow replacement or cancellation if your wallet supports it. |
| Property | Detail |
|---|
| Meaning | The transaction was included in a GOAT Network block but is not yet Bitcoin-final. |
| Typical action | Tell users the transaction is visible on GOAT Network but not yet final. |
| Property | Detail |
|---|
| Meaning | The commitment or related settlement data reached Bitcoin, but confirmation depth may still be low. |
| Typical action | Show confirmation progress toward finality. |
| Property | Detail |
|---|
| Meaning | The transaction is now backed by sufficient Bitcoin confirmations. |
| Typical action | Mark the action complete and irreversible. |
Check transaction receipt with ethers.js const receipt = await provider.getTransactionReceipt(txHash);
if (!receipt) {
console.log('Pending');
} else if (receipt.status === 1n) {
console.log('Included on GOAT Network');
} else {
console.log('Failed');
}
const latestBlock = await provider.getBlockNumber();
console.log({ latestBlock });
| RPC method | Purpose |
|---|
eth_getTransactionReceipt | Retrieve execution status and block metadata |
eth_getTransactionByHash | Read the raw transaction payload |
eth_getBlockByNumber | Check block timing and confirmation progress |
- Use different UI labels for GOAT Network inclusion and Bitcoin finality.
- Surface reorg risk until Bitcoin confirmation depth is acceptable for your use case.
- Handle
status: false receipts as contract or execution failures, not just slow confirmations.
- Link users to the appropriate explorer for independent verification.