Skip to content
Discussions/App Development/Is Allocation the recommended path for concurrent payments, or is TransferCommand still preferred? Is sequential-nonce a known/accepted limitation, or is migration expected?Forum ↗

Is Allocation the recommended path for concurrent payments, or is TransferCommand still preferred? Is sequential-nonce a known/accepted limitation, or is migration expected?

App Development3 posts82 views2 likesLast activity Jun 2026
CIPs mentioned:CIP-0056
DA
Daniel_FTPOP
Jun 2026

Implementing x402 on Canton via Splice.ExternalPartyAmuletRules.TransferCommand (client→facilitator-executed CC transfers). TransferCommand_Send aborts without archiving if nonce > nextNonce, locking the payer’s account until the facilitator settles - blocks concurrent payments from the same party.

Ref: ExternalPartyAmuletRules.daml

CC also supports the Allocation API (CIP-0056): client exercises AllocationFactory_Allocate → AmuletAllocation backed by LockedAmulet, settlement.executor = facilitator. Facilitator exercises Allocation_ExecuteTransfer to move funds. No nonce anywhere - concurrency is per-holding + allocateBefore/settleBefore deadlines, not a global counter.

Refs:

- AllocationV1.daml

- AllocationInstructionV1.daml

- AmuletAllocation.daml

- cip-0056.md

Context: github discussion

SI
Simon_Meier
Jun 2026

The preferred approach is to use the token standard APIs. TransferCommand will be deprecated soon and removed later.

CO
cocreature
Jun 2026
Simon_Meier:

TransferCommand will be deprecated soon and removed later.

Just a small correction: TransferCommand has been deprecated already as part of splice 0.5.16.

← Back to Discussions