Fires on every change to the signing huddle's membership during the
signing stage — each co-signer joining or leaving the MPC session. Drives
a live "who's signing" view.
signers is the set this ceremony actually engages: the proposing host plus
the robos it nudges. This is exactly the threshold of parties needed to
produce the signature — the account's other human signers are not invited to
this ceremony and so are deliberately not listed here. total is
therefore the number of expected signers for this ceremony, not the
account's full signer count.
Fires on every transition through the transaction lifecycle, ending with a
terminal success or failure stage.
const ceremony = await salt.submitTx({
accountId: '0a1b2c3d4e5f',
to: '0xRecipientAddress',
value: parseEther('0.1'),
chainId: 11155111,
userAddress: account.address,
walletClient,
publicClient,
});
ceremony.on('stateChanged', ({ stage, transactionId }) => {
console.log(`tx ${transactionId ?? '(pending)'} is now ${stage}`);
});
const { transaction } = await ceremony.wait();
Lifecycle events emitted by a TransactionHostCeremony. Subscribe with
.on()before callingwait()to drive a "what's happening now" status UI.