id | Unique identifier for an operation | integer | | Yes | The operation id is the transaction id + order number |
source_account | The account address that originates the operation | string | | Yes | Defaults to '' |
source_account_muxed | If an account is multiplexed (muxed), the virtual account address that originates the operation | string | | No | |
transaction_id | The transaction identifier in which the operation executed. There can be up to 100 operations in a given transaction | integer | | Yes | |
ledger_sequence | The sequence number of this ledger. It represents the order of the ledger within the Stellar blockchain. Each ledger has a unique sequence number that increments with every new ledger, ensuring that ledgers are processed in the correct order. | integer | | Yes | |
type | The number indicating which type of operation this operation executes | integer | - 0 - Create Account
- 1 - Payment
- 2 - Path Payment Strict Receive
- 3 - Manage Sell Offer
- 4 - Create Passive Sell Offer
- 5 - Set Options
- 6 - Change Trust
- 7 - Allow Trust
- 8 - Account Merge
- 9 - Inflation
- 10 - Manage Data
- 11 - Bump Sequence
- 12 - Manage Buy Offer
- 13 - Path Payment Strict Send
- 14 - Create Claimable Balance
- 15 - Claim Claimable Balance
- 16 - Begin Sponsoring Future Reserves
- 17 - End Sponsoring Future Reserves
- 18 - Revoke Sponsorship
- 19 - Clawback
- 20 - Clawback Claimable Balance
- 21 - Set Trust Line Flags
- 22 - Liquidity Pool Deposit
- 23 - Liquidity Pool Withdraw
| Yes | |
type_string | The string indicating which type of operation this operation executes | string | | Yes | |
details | Unstructured JSON object that contains details based on the type of operation executed | blob | see details below (E10:E108) | No | Bigquery does not have a JSON field type (currently in pre-GA pilot only) so this field is a structured, sparse, record field instead. In the upstream data, this field is a true json blob |
details.account | The new resulting account address that is created and funded (create operation) The account address that is being removed and merged into another account (merge operation) | string | | No | |
details.account_muxed | The virtual address of the account if the account is multiplexed | string | | No | |
details.account_muxed_id | Integer representation of the virtual address of the account if the account is multiplexed | integer | | No | |
details.account_id | The address of the account which is no longer sponsored | string | | No | |
details.amount | Float representation of the amount of an asset sent/offered/etc | float | | No | |
details.asset | The asset available to be claimed in the form of "asset_code:issuing_address". If the claimable balance is in XLM, it is reported as "native" | string | | No | |
details.asset_code | The 4 or 12 character code representation of the asset on the network | string | - 1 - Payment
- 2 - Path Payment Strict Receive
- 6 - Change Trust
- 7 - Allow Trust
- 13 - Path Payment Strict Send
- 19 - Clawback
- 21 - Set Trust Line Flags
| No | Asset codes have no guarantees of uniqueness. The combination of asset code, issuer and type represents a distinct asset |
details.asset_issuer | The account address of the original asset issuer that created the asset | string | - 1 - Payment
- 2 - Path Payment Strict Receive
- 6 - Change Trust
- 7 - Allow Trust
- 13 - Path Payment Strict Send
- 19 - Clawback
- 21 - Set Trust Line Flags
| No | |
details.asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | - credit_alphanum4
- credit_alphanum12
- native
| No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' |
details.authorize | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | No | |
details.balance_id | The unique identifier of the claimable balance. The id is comprised of 8 character type code + SHA-256 hash of the history operation id that created the balance. | string | | No | |
details.buying_asset_code | The 4 or 12 character code representation of the asset that is either bought or offered to buy in a trade | string | | No | |
details.buying_asset_issuer | The account address of the original asset issuer that created the asset bought or offered to buy | string | | No | |
details.buying_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | - credit_alphanum4
- credit_alphanum12
- native
| No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' |
details.claimable_balance_id | The balance id of the claimable balance which is no longer sponsored | string | | No | |
details.claimant | The account address of the account which claimed the claimable balance | string | | No | |
details.claimant_muxed | If the account is multiplexed, the virtual address of the account which claimed the claimable balance | string | | No | |
details.claimant_muxed_id | If the account is multiplexed, an integer representation of the muxed account which claimed the balance | integer | | No | |
details.claimants | An unstructured field that lists account addresses eligible to claim a balance and the conditions which must be satisfied to claim the balance (typically time bound conditions) | array[record] | | No | |
details.data_account_id | The account address of the account whose data entry is no longer sponsored | string | | No | |
details.data_name | The name of the data entry which is no longer sponsored | string | | No | |
details.from | The account address from which the payment originates (the sender account) | string | | No | |
details.from_muxed | If the account is multiplexed, the virtual address of the sender account | string | | No | |
details.from_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the sender account | integer | | No | |
details.funder | When a new account is created, an account address "funds" the new account | string | | No | |
details.funder_muxed | If the account is multiplexed, the virtual address of the account funding the new account | string | | No | |
details.funder_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the funding account | integer | | No | |
details.high_threshold | The sum of the weight of all signatures that sign a transaction for the high threshold operation | integer | | No | Each operation falls under a specific threshold category: low, medium, or high. Thresholds define the level of privilege an operation needs in order to succeed. Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance; Medium Security: Everything Else; High Security: Account Merge, Set Options |
details.home_domain | The home domain used for the stellar.toml file discovery | string | | No | |
details.inflation_dest | The account address specifying where to send inflation funds. The concept of inflation on the network has been discontinued | string | | No | Inflation was retired from the network in 2019. |
details.into | The account address receiving the deleted account's lumens. This is the account in which the intended deleted account will be merged | string | | No | |
details.into_muxed | If the account is multiplexed, the virtual address of the account receiving the deleted account's lumens | string | | No | |
details.into_muxed_id | If the account is multiplexed, the integer representation of the account receiving the deleted account's lumens | integer | | No | |
details.limit | The upper bound amount of an asset that an account can hold | float | | No | |
details.low_threshold | The sum of the weight of all signatures that sign a transaction for the low threshold operation | integer | | No | Each operation falls under a specific threshold category: low, medium, or high. Thresholds define the level of privilege an operation needs in order to succeed. Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance; Medium Security: Everything Else; High Security: Account Merge, Set Options |
details.master_key_weight | An account's private key is called the master key. For signing transactions, the account holder can specify a weight for the master key, which contributes to thresholds validation when processing a transaction | integer | Integers from 1 to 255 | No | Defaults to 1 |
details.med_threshold | The sum of the weight of all signatures that sign a transaction for the medium threshold operation | integer | | No | Each operation falls under a specific threshold category: low, medium, or high. Thresholds define the level of privilege an operation needs in order to succeed. Low Security: Allow Trust, Set Trust Line Flags, Bump Sequence and Claim Claimable Balance; Medium Security: Everything Else; High Security: Account Merge, Set Options |
details.name | The manage data operation allows an account to write and store data directly on the ledger in a key-value pair format. The name is the key for a data entry | string | | No | If the name is new, the manage data operation will add the given name/value pair to the account. If the name is already present, the associated value will be modified. |
details.offer_id | The unique id for the offer. This id can be joined with the offers table | integer | | No | |
details.path | Path payments maximize the best exchange rate path when sending money from one asset to another asset. The intermediary assets that this path hops through will be reported in the record. This feature is especially useful when the market between the original asset pair is illiquid | record | | No | Up to 6 paths are permitted for a single payment. Example: sending EUR -> MXN could look like EUR -> BTC -> CNY -> XLM -> MXN to maximize the best exchange rate. Payments are atomic, so if an exchange in the middle of a path payment fails, the entire payment will fail, meaning the user will keep their original funds. They will not be stuck with an intermediary asset in the event of payment failure. |
details.price | The ratio of selling asset to buying asset. This is a number representing how many units of a selling asset it takes to get 1 unit of a buying asset | array[float] | | No | |
details.price_r | Precise representation of the buy and sell price of the assets on an offer. The n is the numerator, the d is the denominator. By calculating the ratio of n/d you can calculate the price of the bid or ask | record | | No | |
details.selling_asset_code | The 4 or 12 character code representation of the asset that is either sold or offered to sell in a trade | string | | No | |
details.selling_asset_issuer | The account address of the original asset issuer that created the asset sold or offered to sell | string | | No | |
details.selling_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | - credit_alphanum4
- credit_alphanum12
- native
| No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' |
details.set_flags | Array of numeric values of the flags set for a given trustline in the operation | array[integer] | - 1 - Auth Required
- 2 - Auth Revocable
- 4 - Auth Immutable
| No | |
details.set_flags_s | Array of string values of the flags set for a given trustline in the operation | array[string] | - Auth Required
- Auth Revocable
- Auth Immutable
| No | |
details.signer_account_id | The address of the account of the signer no longer sponsored | string | | No | |
details.signer_key | The address of the signer which is no longer sponsored | string | | No | |
details.signer_weight | The weight of the new signer. For transactions, multiple accounts can sign a transaction from a source account. This weight contributes towards calculating whether the transaction exceeds the specified threshold weight to complete the transaction | integer | Integers from 1 to 255 | No | |
details.source_amount | The originating amount sent designated in the source asset | float | | No | |
details.source_asset_code | The 4 or 12 character code representation of the asset that is originally sent | string | | No | |
details.source_asset_issuer | The account address of the original asset issuer that created the asset sent | string | | No | |
details.source_asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM. | string | - credit_alphanum4
- credit_alphanum12
- native
| No | XLM is the native asset to the network. XLM has no asset code or issuer representation and will instead be displayed with an asset type of 'native' |
details.source_max | The maximum amount to be sent, designated in the source asset | float | | No | Exchanging an asset causes a small amount of the asset value to be spent in fees and exchange rates. The sender can specify a maximum amount they are willing to send if the rates between the asset pair are unfavorable. |
details.starting_balance | The amount of XLM to send to the newly created account. The account starting balance will need to exceed the minimum balance necessary to hold an account on the Stellar Network | float | | No | |
details.to | The address of the account receiving the payment funds | string | | No | |
details.to_muxed | If the account is multiplexed, the virtual address of the account receiving the payment | string | | No | |
details.to_muxed_id | If the account is multiplexed, the integer representation of the virtual address of the recipient account | integer | | No | |
details.trustee | The issuing account address (only present for credit asset types) | string | | No | |
details.trustee_muxed | If the issuing account address is multiplexed, the virtual address | string | | No | |
details.trustee_muxed_id | If the issuing account address is multiplexed, the integer representation of the virtual address | integer | | No | |
details.trustline_account_id | The address of the account whose trustline is no longer sponsored | string | | No | |
details.trustline_asset | The asset of the trustline which is no longer sponsored | string | | No | A sponsor can determine they want to revoke sponsorship of certain assets but maintain the sponsorship of other assets |
details.trustor | The trusting account address, or the account being authorized or unauthorized | string | | No | |
details.trustor_muxed | If the trusting account is multiplexed, the virtual address of the account | string | | No | |
details.trustor_muxed_id | If the trusting account is multiplexed, the integer representation of the virtual address | integer | | No | |
details.value | The manage data operation allows an account to write and store data directly on the ledger in a key-value pair format. The value is the value of a key for a data entry | string | | No | |
details.clear_flags | Array of numeric values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[integer] | - 1 - Auth Required
- 2 - Auth Revocable
- 4 - Auth Immutable
| No | |
details.clear_flags_s | Array of string values of the flags cleared for a given trustline in the operation. If the flag was originally set, this will delete the flag | array[string] | - Auth Required
- Auth Revocable
- Auth Immutable
| No | |
details.destination_min | The minimum amount to be received, designated in the expected destination asset | string | | No | Exchanging an asset causes a small amount of the asset value to be spent in fees and exchange rates. The sender can specify a guaranteed minimum amount they want sent to the recipient to ensure they receive a specified value. |
details.bump_to | The new desired value of the source account's sequence number | string | | No | |
details.authorize_to_maintain_liabilities | Indicates whether the trustline is authorized. 0 is the account is not authorized to transact with the asset in any way. 1 if the account is authorized to transact with the asset. 2 if the account is authorized to maintain orders, but not to perform other transactions. | boolean | | No | |
details.clawback_enabled | Indicates whether the asset can be clawed back by the asset issuer | boolean | | No | |
details.sponsor | The account address of another account that maintains the minimum balance in XLM for the source account to complete operations | string | Any Type | No | |
details.sponsored_id | The account address of the account which will be sponsored | string | | No | |
details.begin_sponsor | The account address of the account which initiated the sponsorship | string | | No | |
details.begin_sponsor_muxed | If the initiating sponsorship account is multiplexed, the virtual address | string | | No | |
details.begin_sponsor_muxed_id | If the initiating sponsorship account is multiplexed, the integer representation of the virtual address | integer | | No | |
details.liquidity_pool_id | Unique identifier for a liquidity pool | string | | No | Liquidity pools are automated money markets between an asset pair. A given pool will only ever have two assets unless there is a protocol change |
details.reserve_a_asset_type | The identifier for type of asset code, can be an alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM | string | - credit_alphanum4
- credit_alphanum12
- native
| No | |
details.reserve_a_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | No | |
details.reserve_a_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | No | |
details.reserve_a_max_amount | The maximum amount of reserve a that can be deposited into the pool | float | | No | Deposit operations calculate via formula how much of both asset a and asset b should be deposited out of a source account and into a pool. The source account must deposit an equivalent value of both asset a and b. Since markets fluctuate, a maximum amount will specify the upper limit of an asset the account is willing to deposit |
details.reserve_a_deposit_amount | The amount of reserve a that ended up actually deposited into the pool | float | | No | |
details.reserve_b_asset_type | The identifier for type of asset code, can be an alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM | string | - credit_alphanum4
- credit_alphanum12
- native
| No | |
details.reserve_b_asset_code | The 4 or 12 character code representation of the asset of one of the two asset pairs in a liquidity pool | string | | No | |
details.reserve_b_asset_issuer | The account address of the original asset issuer that created one of the two asset pairs in the liquidity pool | string | | No | |
details.reserve_b_max_amount | The maximum amount of reserve b that can be deposited into the pool | float | | No | Deposit operations calculate via formula how much of both asset a and asset b should be deposited out of a source account and into a pool. The source account must deposit an equivalent value of both asset a and b. Since markets fluctuate, a maximum amount will specify the upper limit of an asset the account is willing to deposit |
details.reserve_b_deposit_amount | The amount of reserve b that ended up actually deposited into the pool | float | | No | |
details.min_price | The floating point value indicating the minimum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | No | Market rates fluctuate for pricing and the source account can specify a minimum price they expect to receive as a ratio of the two assets in the pool |
details.min_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | No | |
details.max_price | The floating point value indicating the maximum exchange rate for this deposit operation. Reported as Reserve A / Reserve B | float | | No | Market rates fluctuate for pricing and the source account can specify a maximum price they expect to receive as a ratio of the two assets in the pool |
details.max_price_r | A fractional representation of the prices of the two assets in a pool. The n is the numerator (value of asset a) and the d is the denominator (value of asset b) | array[record] | | No | |
details.shares_received | A floating point number representing the number of pool shares received for this deposit. A pool share is a compilation of both asset a and asset b reserves. It is not possible to own only asset a or asset b in a pool | float | | No | |
details.reserve_a_min_amount | The minimum amount of reserve a that can be withdrawn from the pool | float | | No | |
details.reserve_a_withdraw_amount | The amount of reserve a that ended up actually withdrawn from the pool | float | | No | |
details.reserve_b_min_amount | The minimum amount of reserve b that can be withdrawn from the pool | float | | No | |
details.reserve_b_withdraw_amount | The amount of reserve b that ended up actually withdrawn from the pool | float | | No | |
details.shares | The number of shares withdrawn from the pool. It is not possible to withdraw only asset a or asset b; equal value must be withdrawn from the pool | float | | No | |
details.asset_balance_changes | The balance changes applied to an account or contract from an invoke host function. An asset must be a classic asset transferred through the SAC to be included. | record | | No | |
details.asset_balance_changes.amount | The amount of token minted, transferred or burned using the SAC contract | integer | | No | |
details.asset_balance_changes.asset_code | The 4 or 12 character code representation of the asset transferred using SAC contract | string | | No | |
details.asset_balance_changes.asset_issuer | The wallet address of the account that issued the asset. This asset is a classic asset even though it is sent through SAC contract | string | | No | |
details.asset_balance_changes.asset_type | The identifier for type of asset code, can be a alphanumeric with 4 characters, 12 characters or the native asset to the network, XLM | string | - credit_alphanum4
- credit_alphanum12
- native
| No | |
details.asset_balance_changes.from | The originating wallet address or contract id from where the funds were sent | string | | No | |
details.asset_balance_changes.to | The destination wallet address or contract id where the funds go | string | | No | |
details.asset_balance_changes.type | The specific SAC operation type that indicates the type of value transfer occurring. | string | | No | |
details.parameters | The parameters passed to the function call for a Soroban contract. These are base64 encoded XDR. The record follows the format of type + value pair | record | | No | |
details.parameters_decoded | The decoded human-readable parameters passed to a function call for a Soroban contract. The record follows the format of type + value pair | record | | No | |
details.function | The function type invoked by the host operation | string | - HostFunctionTypeHostFunctionTypeInvokeContract
- HostFunctionTypeHostFunctionTypeCreateContract
- HostFunctionTypeHostFunctionTypeUploadContractWasm
| No | |
details.address | The wallet address used to create and deploy a Soroban contract instance | string | | No | |
details.type | The type of Soroban operation that is invoked within a host function | string | - invoke_contract
- create_contract
- upload_wasm
- extend_footprint_ttl
- restore_footprint
| No | |
details.extend_to | The number of ledgers in which the Soroban ledger entry is extended | integer | | No | |
details.contract_id | The unique identifier of the deployed contract instance. Each custom Soroban contract and deployed SAC token will have a unique contract_id | string | | No | |
details.contract_code_hash | The hex-encoded SHA-256 hash that represents the contract code's XDR-encoded form | string | | No | |
batch_id | String representation of the run id for a given DAG in Airflow. Takes the form of "scheduled__<batch_end_date>-<dag_alias>". Batch ids are unique to the batch and help with monitoring and rerun capabilities | string | | Yes | |
batch_run_date | The start date for the batch interval. When taken with the date in the batch_id, the date represents the interval of ledgers processed. The batch run date can be seen as a proxy of closed_at for a ledger | datetime | | Yes | The table is partitioned on batch_run_date. It is recommended to always include the batch_run_date in the filter if possible to help reduce query cost |
batch_insert_ts | The timestamp in UTC when a batch of records was inserted into the database. This field can help identify if a batch executed in real time or as part of a backfill | timestamp | | Yes | |
closed_at | Timestamp in UTC when this ledger closed and committed to the network. Ledgers are expected to close ~every 5 seconds | timestamp | | Yes | We are aiming to repartition this table on closed_at |
operation_result_code | The result code returned when an operation is applied. This code is helpful for understanding failed operations | string | - OperationResultCodeOpInner
- OperationResultCodeOpBadAuth
- OperationResultCodeOpNoAccount
- OperationResultCodeOpNotSupported
- OperationResultCodeOpTooManySubentries
- OperationResultCodeOpExceededWorkLimit
- OperationResultCodeOpTooManySponsoring
| Yes | Field will be backfilled at a future date |
operation_trace_code | The trace code returned when an operation is applied to the Stellar Network. This code is helpful for understanding nuanced failures by operation type. This code provides the lowest level detail regarding why a transaction fails | string | - InvokeHostFunctionResultCodeInvokeHostFunctionSuccess
- Malformed
- Trapped
- ResourceLimitExceeded
- EntryArchived
- InsufficientRefundableFee
- ExtendFootprintTtlResultCodeExtendFootprintTtlSuccess
- Malformed
- ResourceLimitExceeded
- InsufficientRefundableFee
- RestoreFootprintResultCodeRestoreFootprintSuccess
- Malformed
- ResourceLimitExceeded
- InsufficientRefundableFee
| Yes | See the XDR documentation for more details |
details_json | Record that contains details based on the type of operation executed. Each operation will return its own relevant details, with the rest of the details as null | json | | | |