Pseudo-transactions are never submitted by users, nor propagated through the network. Instead, a server may choose to inject pseudo-transactions in a proposed ledger directly according to specific protocol rules. If enough servers propose the exact same pseudo-transaction, the consensus process approves it, and the pseudo-transaction is included in that ledger's transaction data.

Special Values for Common Fields

Some of the required common fields for normal transactions do not make sense for pseudo-transactions. Pseudo-transactions use following special values for these common fields:

Field JSON Type Internal Type Value
Account String AccountID ACCOUNT_ZERO
Fee String Amount 0
Sequence Number UInt32 0
SigningPubKey String Blob "" (Empty string)
TxnSignature String Blob "" (Empty string)

Pseudo-transactions use the following common fields as normal:

  • TransactionType
  • Flags
Field JSON Type Internal Type Description
TransactionType String UInt16 (Required) The type of transaction.
Flags Number UInt32 (Optional) A set of bit-flags for this transaction. The meaning of specific flags varies based on the transaction type.
  • EnableAmendment

    Enable a change in transaction processing.

  • SetFee

    Change global reserve and transaction cost settings.

  • UNLModify

    Change the list of trusted validators currently considered offline.