Authors: David Rusu [email protected]

Revisions History

Version Changes Date
1.0.0 Initial revision. 2026-12-01
1.1.0 ‣ 2026-03-25
1.2.0 ‣ 2026-04-02
1.3.0 ‣ 2026-04-24
1.4.0 ‣ 2026-05-06
1.4.1 Removed mention of DA. Updated KeyCount from Byte to UINT16 to follow Mantle. 2026-05-21

Introduction

This document specifies the canonical encoding of Mantle transactions (see Mantle Transaction) and it’s sub-components. Transactions sent through the mempool and included in blocks use this encoding.

Overview

The transaction encoding is specified in ABNF form to remove any ambiguity and guarantee a canonical encoding. The high level encoding choices which were not immediately derivable from the Mantle specification are listed here:

  1. All multi-byte integers use little-endian encoding
  2. Any lists are length-prefixed with fixed width uints
  3. We derive number of proofs and type of proof from the Ops list parsed earlier

Specification

Signed Mantle Tx

SignedMantleTx = MantleTx OpsProofs

Mantle Tx

MantleTx = OpCount *Op
~~~~OpCount  = Byte

Operations

Op     = Opcode OpPayload
Opcode = Byte

OpPayload = Transfer /
						ChannelInscribe /
            ChannelConfig /
            ChannelDeposit /
            ChannelWithdraw /
            SDPDeclare /
            SDPWithdraw /
            SDPActive /
            LeaderClaim 

Channel Operations

ChannelInscribe = ChannelId Inscription Parent Signer
Inscription     = UINT32 *BYTE 

~~~~ChannelConfig     = ChannelId KeyCount *Signer PostingTimeframe PostingTimeout ConfigThreshold WithdrawThreshold
KeyCount          = UINT16
PostingTimeframe  = UINT32
PostingTimeout    = UINT32
ConfigThreshold   = UINT16
WithdrawThreshold = UINT16

ChannelDeposit = ChannelId Inputs Metadata
Inputs         = InputCount *NoteId
InputCount     = Byte
~~~~Metadata       = UINT32 *BYTE

~~~~ChannelWithdraw = ChannelId Outputs WithdrawNonce
Outputs         = OutputCount *Note
OutputCount     = Byte
WithdrawNonce   = UINT32

ChannelId = Hash32
Parent    = Hash32
Signer    = Ed25519PublicKey

SDP Operations