Skip to main content
Transfer Canton Coin to a receiver. If the receiver has an existing TransferPreapproval, the transfer settles atomically. Otherwise the transaction creates a TransferOffer that the receiver must accept. Invoked through the two-phase transaction flow with:
  • operation = TRANSACTION_OPERATION_TRANSFER_CC
  • params.transfer_cc = TransferCcParams { … }

Params

receiver_party
string
required
Canton party ID of the receiver.
amount
string
required
Decimal amount of Canton Coin to transfer.
description
string (optional)
Human-readable description attached to the transfer.
command_id
string
required
Client-generated command ID for idempotency.
settlement_proposal_id
string (optional)
Link this transfer to an existing settlement proposal.
amulet_cids
string[]
Explicit amulet contract IDs to consume. If omitted, the server selects amulets automatically.
message TransferCcParams {
  string receiver_party = 1;
  string amount = 2;
  optional string description = 3;
  string command_id = 4;
  optional string settlement_proposal_id = 5;
  repeated string amulet_cids = 6;
}
Call GetAmulets first if you need to pre-select amulets for deterministic fee calculation.

See also

  • GetPreapprovals — check whether the receiver has an active TransferPreapproval (which makes this transfer settle atomically).
  • RequestPreapproval — create a preapproval for the authenticated party.
  • SplitCc — reshape amulet denominations before transferring.
  • ExecuteMultiCall — bundle a transfer with other operations atomically.