Array of transactions, AsyncTransactions, or raw decoded calls to batch.
A typed API with tx.Utility.batch_all/batch/force_batch. Works with any
chain that has the Utility pallet — no chain-specific imports required.
All calls must target the same chain as this API. Do not mix decoded calls
from different chains (e.g., Asset Hub and Bulletin) in a single batch.
The signer to use. Can come from a wallet extension, Host API
(getProductAccountSigner), or createDevSigner.
Optionaloptions: BatchSubmitOptionsOptional BatchSubmitOptions (extends SubmitOptions with mode).
The transaction result from the batch submission.
import { batchSubmitAndWatch } from "@polkadot-apps/tx";
const tx1 = api.tx.Balances.transfer_keep_alive({ dest: addr1, value: 1_000n });
const tx2 = api.tx.Balances.transfer_keep_alive({ dest: addr2, value: 2_000n });
const result = await batchSubmitAndWatch([tx1, tx2], api, signer, {
onStatus: (status) => console.log(status),
});
Batch multiple transactions into a single Substrate Utility batch and submit.
Extracts
.decodedCallfrom each transaction (handling Ink SDKAsyncTransactionwrappers), wraps them inUtility.batch_all(orbatch/force_batchvia themodeoption), and submits via submitAndWatch with full lifecycle tracking.