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 inject an identical pseudo-transaction for it to be approved by the consensus process, then the pseudo-transaction becomes included in the ledger, and appears in ledger data thereafter.

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)
SigningPubKey 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.