EN

Signing and fees

4 minDifficulty Checked 2026-11-10
Key takeaways
  • Inner transactions have a zero fee, an empty SigningPubKey and the tfInnerBatchTxn flag.
  • Other accounts in a batch sign the whole package through BatchSigners.
  • The outer fee covers twice the base fee, every inner cost and each extra signature.

Inside a Batch, the inner transactions are unsigned and carry no fee. The outer package carries the signature and pays the whole bill.

There is a reason for this. Picture Alice and Bob trading. Alice sends XRP and Bob sends a token. If Alice handed Bob a signed payment, Bob could submit her payment alone and keep his token. So inner transactions are never signed on their own. They count only as part of the package.

Signing only her own half is not enough either. Bob could change his half to send less after she signed. So every account in a multi-account batch signs the whole package: every inner transaction, the mode, and who submits it.

Fees work like a cart total. The submitter pays a small charge for the package, plus the normal fee of each item inside, plus a little for each extra signature. The fee is charged even if every inner transaction fails, the same as for transactions sent one at a time.

Each inner transaction still uses its own account's sequence number or a ticket. That keeps every inner transaction unique.

Check yourself3 questions
1. Why are inner transactions left unsigned?
2. Alice and Bob swap tokens in one Batch that Bob submits. What must Alice sign?
3. A single-account Batch holds two Payments. The base fee is 10 drops. What is the minimum fee?
Sources
Next lessonWhy Batch was replaced4 min