Cycle cost to pass cycles

Is there a significant cycle cost to pass cycles to another canister?

Or put another way, would it be better to pass cycles with every call, or to do one top up call? How much of a difference in cycles would this be?

Short answer: there are no additional costs, you can send cycles with every single call for free.

Long one: if canister A calls canister B, the cost of the. call is 590K cycles to execute the update on canister B side and 590K to execute response on canister A side + number of instructions executed.

Adding cycles to the call has no provisions or whatever, and it’s guaranteed to be either fully or partially accepted by canister B, or returned back to canister A.


  1. Computation and Storage Costs on IC
  2. Example Cycles Flow between canister A and B

What about the 260K for the Xnet call? (from Computation and Storage Costs | Internet Computer Home)

Sure, for cross-net calls there are additional charges per call and per byte. But anyway, there are no additional charges for adding cycles to each such a call.