Forward Fee
Fee paid for routing a message between shards on TON. Depends on the message's size and the number of shard hops, not on the receiver's logic.
Aliases: fwd_fee, forwarding fee, message fee
Forward Fee is the cost of delivering a message from one contract to another across the TON network. It pays nodes for relaying the cell and placing it in the destination shard’s queue. It is a separate component of total transaction cost, distinct from gas (compute) and storage fees.
What it depends on
Forward fee is computed from a formula whose dominant inputs are message size in bits and cells and the network-config parameter lump_price. The bigger the body and the deeper the cell tree, the higher the fwd_fee.
Cross-shard routing adds a hop multiplier: if the destination is in another shard, the fee goes up. Same-shard messages are cheapest.
Who pays
By default the forward fee is deducted from the value attached to the message. If value = 0.05 TON and fwd_fee = 0.001 TON, the receiver eventually sees about 0.049 TON (minus gas). With mode 1 (PAY_GAS_SEPARATELY), the fee is paid from the sender’s own balance and the full value goes through.
Practical implications
- Large bodies are expensive. Sending NFT metadata in one message costs noticeably more than a compact opcode message.
- Message chains compound. Every relayed message carries its own forward fee. Proxy contracts inflate the total cost of an operation.
- Headroom matters. Wallets and SDKs typically pad the value (commonly 0.01–0.05 TON extra) so the message has enough left after fwd_fee to land.
For ordinary transfers forward fee is a fraction of a cent and effectively invisible. In complex DEX swaps with dozens of internal messages it becomes a meaningful share of total cost.