<aside> ❗
This RFC follows an older schema and will be updated when time allows.
</aside>
✏️ Authors: @Thomas Lavaur
🚧→[📘 | ⚰️] Approvals (research): 📘**@Marcin Pawlowski**
📘→[✅ | ⚰️] Approvals (engineering): ✅ @Daniel Sanchez Quiros @Youngjoon Lee
In [1.2.0] Mantle, the Ledger Transaction is modeled as a special, mandatory component of every Mantle Transaction. Each Mantle Transaction must include exactly one Ledger Transaction, which is validated and executed separately from the rest of the transaction:
# v1.2
class MantleTx:
ledger_tx: LedgerTx
ops: list[Op]
permanent_storage_gas_price: TokenValue
execution_gas_price: TokenValue
class SignedMantleTx:
tx: MantleTx
op_proofs: list[OpProof | None]
ledger_tx_proof: ZkSignature # separate from op proofs
This structure introduces unnecessary complexity by treating the Ledger Transaction asymmetrically: it is validated and executed in a dedicated step, outside the normal Operation pipeline. It also prevents multiple users from issuing independent transfers within a single atomic Mantle Transaction.
This RFC proposes removing that constraint. Instead, the Ledger Transaction becomes a regular transfer Operation, subject to the same validation and execution rules as any other Operation.
We introduce a TRANSFER Operation (opcode 0x00) that is semantically equivalent to the former LedgerTx. The Mantle Transaction structure is simplified to a flat list of Operations:
# v1.3 — proposed
class MantleTx:
ops: list[Op]
permanent_storage_gas_price: TokenValue
execution_gas_price: TokenValue
class SignedMantleTx:
tx: MantleTx
op_proofs: list[OpProof | None] # Transfer proof now included here
A transfer that previously lived in ledger_tx is now represented as a TRANSFER Operation inside ops. A Mantle Transaction becomes a homogeneous bundle of Operations that are either all valid or all invalid together.
The distinction between LedgerTx and Op was an artificial split. Treating transfers as first-class Operations removes a special case from every layer of the stack (validation, execution, encoding, gas).
Several actors can issue independent transfers within one atomic Mantle Transaction, with no off-chain compensation required.