# Pseudo-Transactions Pseudo-transactions are never submitted by users, nor [propagated through the network](/es-es/docs/concepts/networks-and-servers/peer-protocol). 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](/es-es/docs/concepts/consensus-protocol) 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](/docs/references/protocol/transactions/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](/docs/references/protocol/binary-format) | Value | | --- | --- | --- | --- | | `Account` | String | AccountID | [ACCOUNT_ZERO](/es-es/docs/concepts/accounts/addresses#special-addresses) | | `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](/docs/references/protocol/binary-format) | 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. |