Method Signature
align.blockchain.transactions.waitForConfirmation(
txHash: string,
network: Network,
confirmations?: number
): Promise<TransactionReceiptData>
Parameters
Transaction hash to wait for
Network where the transaction was sent
Number of confirmations to wait for (default: 1)
Returns
Block number where transaction was included
1 for success, 0 for failure
Examples
import Align from "@tolbel/align";
const align = new Align({
apiKey: process.env.ALIGN_API_KEY!,
environment: "sandbox",
});
// Send transaction
const tx = await align.blockchain.wallets.sendNativeToken(
wallet,
recipient,
"0.1",
"polygon"
);
console.log(`TX sent: ${tx.hash}`);
// Wait for 1 confirmation
const receipt = await align.blockchain.transactions.waitForConfirmation(
tx.hash,
"polygon"
);
console.log(`Confirmed in block ${receipt.blockNumber}`);
console.log(`Gas used: ${receipt.gasUsed}`);
const tx = await align.blockchain.wallets.sendNativeToken(
wallet, recipient, "0.1", "polygon"
);
const receipt = await align.blockchain.transactions.waitForConfirmation(
tx.hash, "polygon"
);
console.log("Confirmed in block:", receipt.blockNumber);
Wait for Multiple Confirmations
For high-value transactions, wait for more confirmations:
// Wait for 12 confirmations (recommended for Ethereum)
const receipt = await align.blockchain.transactions.waitForConfirmation(
tx.hash,
"ethereum",
12
);
console.log(
`Transaction finalized with ${receipt.confirmations} confirmations`
);
With Timeout Handling
const timeoutMs = 60000; // 60 seconds
try {
const receipt = (await Promise.race([
align.blockchain.transactions.waitForConfirmation(tx.hash, "polygon"),
new Promise((_, reject) =>
setTimeout(() => reject(new Error("Timeout")), timeoutMs)
),
])) as TransactionReceiptData;
console.log("Confirmed:", receipt.blockNumber);
} catch (error) {
if (error.message === "Timeout") {
console.log("Transaction taking longer than expected");
// Check status manually
const status = await align.blockchain.transactions.getStatus(
tx.hash,
"polygon"
);
}
}
Confirmation times vary by network: - Polygon: ~2 seconds per block -
Ethereum: ~12 seconds per block - Arbitrum/Optimism: ~0.3 seconds per
block