Skip to main content
Atomically execute a batch of operations through Canton’s Execute_MultiCall DAR choice. Each sub-operation is individually gated against its own functional group — a disabled group will cause the whole batch to be rejected. Invoked through the two-phase transaction flow with:
  • operation = TRANSACTION_OPERATION_EXECUTE_MULTICALL
  • params.execute_multicall = ExecuteMultiCallParams { … }

Params

operations
MultiCallOp[]
required
Ordered list of sub-operations to execute atomically.
amulet_cids
string[]
Canton Coin amulets to be consumed by the batch.
holding_cids
string[]
CIP-56 holding contract IDs to be consumed by the batch.
message ExecuteMultiCallParams {
  repeated MultiCallOp operations   = 1;
  repeated string      amulet_cids  = 2;
  repeated string      holding_cids = 3;
}
All sub-operations succeed or the entire batch is rolled back. MultiCall is the right tool when two or more actions must be strictly atomic (e.g. split + transfer in the same commit).
Call GetAmulets and GetActiveContracts to pre-select the amulet_cids and holding_cids the batch should consume.

See also