Skip to main content

Transactions

While the Midnight node supports the standard transaction format provided by the Polkadot SDK, these default-style transactions are not commonly used for on-chain activity in practice. This is because Midnight relies on a proof-based verification model, tightly coupled with the design of the Midnight Ledger.

Most transactions on Midnight are unsigned and adhere to a format defined by the Midnight Ledger itself. Rather than relying on traditional signature-based authorization, these transactions embed a cryptographic proof that attests to the validity of a specific action. This action may be a contract invocation, a contract deployment, or a ZSwap transaction. The presence of this proof allows the network to validate state transitions without needing to expose sensitive data or signatures directly.

When a transaction is submitted, it undergoes several processing stages. First, it is validated within the transaction pool. Validation at this stage checks the well-formedness of the transaction—ensuring it meets the structural and logical requirements defined by the runtime and the ledger specification.

Once included in a block, the embedded proof is fully verified. If valid, the corresponding state transition is executed according to the logic defined in the runtime. The resulting state update is then committed to the on-chain storage layer, completing the transaction lifecycle.