# Pseudo-Transactions

Pseudo-transactions are never submitted by users, nor [propagated through the network](/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](/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](/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. |