API-based retrieval
This section covers how to access transaction data from the blockchain using APIs. You'll learn about the available API services in TON and how to retrieve data by account, by message, or through a full blockchain scan.
TON HTTP API services
An HTTP API service is a software solution that retrieves raw data from a LiteServer node and encodes it into standard formats for other services. A provider that offers such a solution is referred to as an HTTP API provider.
In this section, we review services that are part of the native infrastructure. Most third-party API providers rely on one of these standard solutions. We recommend evaluating each provider independently based on its historical performance and suitability for your specific use case.
TON Center
The TON Center was developed by the TON Core team using the Go stack. It consists of two separate services:
- TON Center API V3: provides blockchain indexing functionality.
- TON Center API V2: optimized for fast read and write operations to the blockchain.
TON API
A solution focused on business needs. It often provides ready-made implementations for common tasks in TON.
Tonhub API
An alternative open-source HTTP API service with a unique structure different from TON API and TON Center. This interface may be helpful in some specific use cases.
API data levels
HTTP services retrieve data from LiteServer nodes and deserialize it according to the TL-B schema. Data that undergoes minimal post-processing is often referred to as raw data. This format is typically used in solutions where architectural priorities favor security and precision over ease of integration or simplicity. These solutions offload the interpretation and analysis of raw data to the client side, allowing for greater control and reliability at the cost of additional local resource consumption.
In contrast, when working with event analytics that does not involve significant asset transfers, it is often more efficient to use high-level interfaces — such as APIs that apply post-processing before returning results. These interfaces provide simplified, structured data that is easier to work with in most application-level scenarios.
In TON, transactions are bundled into blocks. Finalized BaseChain blocks are committed into MasterChain blocks. To extract transaction data, services must, therefore, read both the MasterChain and the corresponding BaseChain blocks. Additionally, since TON uses sharding, each MasterChain block includes references to relevant shard blocks, which must also be parsed. Each shard block contains all transactions associated with that MasterChain block.
All WorkChain blocks follow a consistent structure. For transaction analysis, the relevant section is the block_extra
field.
block#11ef55aa global_id:int32
info:^BlockInfo value_flow:^ValueFlow
state_update:^(MERKLE_UPDATE ShardState)
extra:^BlockExtra = Block;
The block_extra
section of a block contains the account_blocks
structure,
which in turn includes the transactions processed by all accounts within the corresponding shard.
block_extra in_msg_descr:^InMsgDescr
out_msg_descr:^OutMsgDescr
account_blocks:^ShardAccountBlocks
rand_seed:bits256
created_by:bits256
custom:(Maybe ^McBlockExtra) = BlockExtra;
Thus, when reading the blockchain, services iteratively process blocks, starting from the most recently read one and proceeding up to the latest finalizedz block. The extracted transactions are considered raw data and can be passed to downstream services for further use. Additionally, specialized services may analyze and enrich this data to strike a balance between the complexity and the trustless nature of the system.
API methods for transaction access
Key terms
-
Transaction: a transaction represents a state change of an account in the blockchain. It is triggered by an incoming message and may optionally result in one or more outgoing messages. Analyzing the contents of a transaction is a fundamental method used across all services.
-
Trace: a trace is a deterministic graph of all transactions triggered by a single external message. Trace interfaces enable the retrieval of the complete graph associated with a specific transaction, making it easier to analyze all related interactions. This is especially useful for exchanges and analytical tools to verify asset flows or to reconstruct the logic of a business operation. Trace can also be used to detect Jetton transfers even in the absence of Jetton notification messages. It is particularly relevant when a business operation spans multiple interdependent transactions.
-
Action: an action is an aggregated abstraction that represents a complete business operation across one or more account state changes. For example, transferring Jettons between two users would be represented as a single action. Actions are used exclusively for visualization and have no role in the actual execution or validation of fund transfers.
High-level access
How to fetch a list of transactions or a single transaction via API
To fetch transaction data, you can use high-level interfaces such as:
get /actions
get /traces
get /jetton/transfers
andget /jetton/burns
get /nft
With this approach, the developer doesn’t need to parse the contents of individual transactions. This method, which involves no additional data validation, is only suitable when fund transfers are not involved. In addition to simple service-level checks, this approach can also be used in more advanced scenarios. For example, by using the traces method, you can identify all related transactions for further analysis.
By message payload
Use getTransaction
by external or internal message. Available in API v3 only.
This method is beneficial when tracking a small number of accounts (up to ~10). It works well for wallet-v4 and wallet-v5 transfers and is primarily used to find transactions triggered by external messages.
There may be a delay of up to 10 seconds. For better performance in real-time scenarios, consider also monitoring the pending pool.
By account address
To query transactions for an account you are monitoring, use API v2. This method is broadly supported, including in LiteClient, and is suitable for tracking up to ~100 accounts.
Full blockchain transaction scan
When monitoring a large number of accounts (1,000 or more), you need to iterate through all transactions starting from the latest masterchain block.
- API v2:
- Fetch shard information for the MasterChain block
- Compute shard diffs
- For each resulting block, call
getBlockTransactionsExt
See: TON Center cookbook: How to scan blockchain
- API v3: Do not reuse the API v2 logic. Instead, use the dedicated method: GET /transactions/by-masterchain-block
You have a choice: either a straightforward implementation that places a high level of trust in major providers or a more complex one that does not require trusting the provider. However, for greater security, it is always recommended to process transactions block by block independently.
API response
In the blockchain, a regular transaction consists of a whole body and a unique header.
transaction$0111 account_addr:bits256 lt:uint64
prev_trans_hash:bits256 prev_trans_lt:uint64 now:uint32
outmsg_cnt:uint15
orig_status:AccountStatus end_status:AccountStatus
^[ in_msg:(Maybe ^(Message Any)) out_msgs:(HashmapE 15 ^(Message Any)) ]
total_fees:CurrencyCollection state_update:^(HASH_UPDATE Account)
description:^TransactionDescr = Transaction;
The header TransactionDescr
defines the nature of the transaction in the blockchain. All user-initiated service operations are represented as regular transactions of type Ordinary.
trans_ord$0000 credit_first:Bool
storage_ph:(Maybe TrStoragePhase)
credit_ph:(Maybe TrCreditPhase)
compute_ph:TrComputePhase action:(Maybe ^TrActionPhase)
aborted:Bool bounce:(Maybe TrBouncePhase)
destroyed:Bool
= TransactionDescr;
Each transaction returned in the API response (Transaction[]
) reflects the structure defined in TL-B but often includes additional computed fields for convenience.
- Native – present on-chain. This refers to the field name as defined in the TL-B
block.tlb
schemas. - Native computed – the core data exists on-chain, but additional information is expanded by the API.
- Postprocessed – data computed additionally by the API provider based on indexed information.
One of the most important computed fields is the transaction hash, which does not exist in the blockchain itself. It is generated by the API provider.
"hash": "/QesPZ+FW7Z0MdG/vVDuYR/sK1dWx2Nip6CCDbdqQeM="
TON Center
Transaction API/v2
The https://toncenter.com/api/v2/getTransactions method returns raw transaction data based on the TL-B structure.
Example curl
request:
curl -X 'GET' \
'https://toncenter.com/api/v2/getTransactions?address=EQAFmjUoZUqKFEBGYFEMbv-m61sFStgAfUR8J6hJDwUU09iT&limit=10&to_lt=0&archival=true' \
-H 'accept: application/json'
The response includes the transaction body, which consists of the following components:
@fields
- internal maintenance fields in TON Center API/v2.- Header data - transaction metadata
lt
,now
(Unix time) - Fees - high-level information
- Incoming message data — an internal or external incoming message that initiated the transaction
- Outgoing message data — the array that optionally contains from 0 to 255 messages sent during this transaction
Field | Origin | Description | Example |
---|---|---|---|
address.account_address | Native computed | Account address where the transaction occurred; returned in userfriendly format | "EQDcN89ChMLQe4G-p5Tqk5qhH_PpY9lbhRjXNagmCGsg_9l1" |
utime | Native | UNIX timestamp of the transaction. TL-B field name: now | 1736738146 |
transaction_id.hash | Postprocessed | Hash of the current transaction | mkma+u5TOi12BSu6m6YhZaatY2b2ozdabOdBnVuWmWM= |
transaction_id.lt | Native | Logical time of the transaction; unique per account. TL-B field name: lt | 52863169000074 |
fee | Native | Total amount of fees associated with the transaction. TL-B field: total_fees in Gas units. | 1207600 |
storage_fee | Native | Storage fees. TL-B field: Trans Descriptor -> TrStoragePhase -> | 1207600 |
other_fee | Native | other_fee = fee - storage_fee | 1207600 |
in_msg | Native | Inbound message Message X structure that triggered this transaction | "in_msg": {...} |
out_msgs | Native | List of outbound messages represented by Message X structure | "out_msgs": [{...}, {...}, ..., {...}] |
"result": [
{
"@type": "raw.transaction",
"address": {
"@type": "accountAddress",
"account_address": "EQDcN89ChMLQe4G-p5Tqk5qhH_PpY9lbhRjXNagmCGsg_9l1"
},
"utime": 1736738146,
"data": "te6cckECCAEAAc0AA7V9w3z0KEwtB7gb6nlOqTmqEf8+lj2VuFGNc1qCYIayD/AAAwFCpo8orDf2vdoH1n96C0l9c0Xbxq/7Vyj+b1Bsw/jTohWiegygAAMBQqaPKIZ4SFYgADRhy3BoAQIDAgHgBAUAgnJhXUy/QLYxeNcfvOGwlIsucuES8LwAmAcs26m1y9/nJvAc82jOBRqD108rByoN3QmaIBq8NLslDBcjC0wpnrEuASUECTEsgEAQYYpWDgGBBGmYII1qBwCxaAEV97IJPAV1L6qto8QId19JS886Gi89o8RV8ChfpEGhdwA3DfPQoTC0HuBvqeU6pOaoR/z6WPZW4UY1zWoJghrIP9MSyAQABggjWgAAYChUdlcIzwkKtEABAd8GALlYAbhvnoUJhaD3A31PKdUnNUI/59LHsrcKMa5rUEwQ1kH/ACK+9kEngK6l9VW0eIEO6+kpeedDRee0eIq+BQv0iDQu0xJ+T0AGCCNaAABgKFTR5RbPCQrEf////8AAnkD8bD0JAAAAAAMoAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgpUle",
"transaction_id": {
"@type": "internal.transactionId",
"lt": "52863169000074",
"hash": "mkma+u5TOi12BSu6m6YhZaatY2b2ozdabOdBnVuWmWM="
},
"fee": "1207600",
"storage_fee": "0",
"other_fee": "1207600",
"in_msg": {
...
},
"out_msgs": [
{...}
]
},
]
Details
"result": [
{
"@type": "raw.transaction",
"address": {
"@type": "accountAddress",
"account_address": "EQDcN89ChMLQe4G-p5Tqk5qhH_PpY9lbhRjXNagmCGsg_9l1"
},
"utime": 1736738146,
"data": "te6cckECCAEAAc0AA7V9w3z0KEwtB7gb6nlOqTmqEf8+lj2VuFGNc1qCYIayD/AAAwFCpo8orDf2vdoH1n96C0l9c0Xbxq/7Vyj+b1Bsw/jTohWiegygAAMBQqaPKIZ4SFYgADRhy3BoAQIDAgHgBAUAgnJhXUy/QLYxeNcfvOGwlIsucuES8LwAmAcs26m1y9/nJvAc82jOBRqD108rByoN3QmaIBq8NLslDBcjC0wpnrEuASUECTEsgEAQYYpWDgGBBGmYII1qBwCxaAEV97IJPAV1L6qto8QId19JS886Gi89o8RV8ChfpEGhdwA3DfPQoTC0HuBvqeU6pOaoR/z6WPZW4UY1zWoJghrIP9MSyAQABggjWgAAYChUdlcIzwkKtEABAd8GALlYAbhvnoUJhaD3A31PKdUnNUI/59LHsrcKMa5rUEwQ1kH/ACK+9kEngK6l9VW0eIEO6+kpeedDRee0eIq+BQv0iDQu0xJ+T0AGCCNaAABgKFTR5RbPCQrEf////8AAnkD8bD0JAAAAAAMoAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgpUle",
"transaction_id": {
"@type": "internal.transactionId",
"lt": "52863169000074",
"hash": "mkma+u5TOi12BSu6m6YhZaatY2b2ozdabOdBnVuWmWM="
},
"fee": "1207600",
"storage_fee": "0",
"other_fee": "1207600",
"in_msg": {
"@type": "raw.message",
"hash": "wY9HZG8iPissn4t3/nc8bxYqc5kxo+gd7MdkqdrUt0Y=",
"source": "EQCK-9kEngK6l9VW0eIEO6-kpeedDRee0eIq-BQv0iDQu_Rb",
"destination": "EQDcN89ChMLQe4G-p5Tqk5qhH_PpY9lbhRjXNagmCGsg_9l1",
"value": "3300000000",
"extra_currencies": [],
"fwd_fee": "266669",
"ihr_fee": "0",
"created_lt": "52863166000004",
"body_hash": "lqKW0iTyhcZ77pPDD4owkVfw2qNdxbh+QQt4YwoJz8c=",
"msg_data": {
"@type": "msg.dataRaw",
"body": "te6cckEBAQEAAgAAAEysuc0=",
"init_state": ""
},
"message": ""
},
"out_msgs": [
{
"@type": "raw.message",
"hash": "n/CmWFQsCB0MZr4RYzpUyxe9khLCCNV1HhNYgh25RlA=",
"source": "EQDcN89ChMLQe4G-p5Tqk5qhH_PpY9lbhRjXNagmCGsg_9l1",
"destination": "EQCK-9kEngK6l9VW0eIEO6-kpeedDRee0eIq-BQv0iDQu_Rb",
"value": "3298792400",
"extra_currencies": [],
"fwd_fee": "266669",
"ihr_fee": "0",
"created_lt": "52863169000075",
"body_hash": "2kgTJil7CKGfT/jw1tLMcQJ5ngwOSgK6iXnDY6CA2IY=",
"msg_data": {
"@type": "msg.dataRaw",
"body": "te6cckEBAQEABgAACP/////btDe4",
"init_state": ""
},
"message": "/////w==\n"
}
]
},
]
Transaction API/v3
The API service deserializes the entire transaction structure with precise mapping to appropriate string and numeric types. As a result, the transaction body is returned in JSON format.
The https://toncenter.com/api/v3/transactions method returns a large structure enriched with additional computed data.
Example request:
curl -X 'GET' \
'https://toncenter.com/api/v3/transactions?limit=10&offset=0&sort=desc' \
-H 'accept: application/json'
The transaction object includes the following key sections:
- Header data - transaction metadata
lt
,now
(Unix time) - Incoming message data - a message that initiated the transaction
- Compute phase data - results of command executions
- Action phase data - results of actions done after computed, sent messages
- Block ref - data of the blockchain block belonging.
- Account state before and after
Field | Origin | Description | Example |
---|---|---|---|
"account" | Native computed | Account address where the transaction occurred; returned in RAW format | "0:C8F053E2CE.." |
hash | Postprocessed | Hash of the current transaction | "/QesPZ+FW7Z.." |
utime / now | Native | UNIX timestamp of the transaction. TL-B field name: now | 1696238450 |
lt | Native | Logical time of the transaction | "15371766000003" |
mc_block_seqno | Postprocessed | Sequence number of the masterchain block containing this transaction | 13353447 |
trace_id | Postprocessed | ID of traces in TON Center API/v3 | "13b...dBjpfc=" |
prev_trans_hash | Native | Hash of the previous transaction on this account | "6+AzO3...dwuI=" |
prev_trans_lt | Native | Logical time of the previous transaction | "15371704000004" |
orig_status | Native | Account status before the transaction, AccountStatus structure. | "active" |
end_status | Native | Account status after the transaction, AccountStatus structure. | "active" |
total_fees | Native computed | Total fees charged for the transaction (in nanotons) | "12446659" |
description | Native computed | Set of transaction descriptors type , aborted | { "type": "ord", "aborted": false, ... } |
compute_ph | Native | Deserialized TrComputePhase structure | { "success": true, "gas_used": "8823", "exit_code": 0 } |
action | Native | Deserialized TrActionPhase structure | { "success": true, "msgs_created": 1, "total_fwd_fees": "10871000" } |
block_ref | Computed | Reference to the block this transaction belongs to | { "workchain": 0, "seqno": 14627985 } |
in_msg | Native | Inbound message Message X structure that triggered this transaction | { "source": "...", "value": "400000000", "opcode": "0x0f8a7ea5" } |
out_msgs | Native | List of outbound messages represented by Message X structure | [ { "destination": "...", "value": "380306000" }, ... ] |
account_state_before | Native | Account state snapshot before this transaction | { "balance": "37821399", "status": "active" } |
account_state_after | Native | Account state snapshot after this transaction | { "balance": "37821351", "status": "active" } |
{
"account": "0:C8F053E2CE6406D3D8FCFA30BA0D0EFC3FD9FE9217DCD50147EB73BFC4EA5BBF",
"hash": "/QesPZ+FW7Z0MdG/vVDuYR/sK1dWx2Nip6CCDbdqQeM=",
"lt": "15371766000003",
"now": 1696238450,
"mc_block_seqno": 13353447,
"trace_id": "13bnlzO0u4ayE5qPXtdSTUikuLaoYJj5HL4GZdBjpfc=",
"prev_trans_hash": "6+AzO3VYCnq9PO5ibdHXE5i9VASBo/DS9iYZksVdwuI=",
"prev_trans_lt": "15371704000004",
"orig_status": "active",
"end_status": "active",
"total_fees": "12446659",
"description": {
...
},
"compute_ph": {
....
},
"action": {
...
},
"block_ref": {
...
},
"in_msg": {
...
},
"out_msgs": [
...
],
"account_state_before": {
...
},
"account_state_after": {
...
}
}
Details
{
"account": "0:C8F053E2CE6406D3D8FCFA30BA0D0EFC3FD9FE9217DCD50147EB73BFC4EA5BBF", # account of transcation
"hash": "/QesPZ+FW7Z0MdG/vVDuYR/sK1dWx2Nip6CCDbdqQeM=",
"lt": "15371766000003", # logical time, may have same values for txs on different accounts but every transaction on a given account will have unique lt
"now": 1696238450, # unix timestamp
"mc_block_seqno": 13353447, # seqno of masterchain block
"trace_id": "13bnlzO0u4ayE5qPXtdSTUikuLaoYJj5HL4GZdBjpfc=", # tx_hash of the root transaction of the trace
"prev_trans_hash": "6+AzO3VYCnq9PO5ibdHXE5i9VASBo/DS9iYZksVdwuI=", # hash of previous transaction on this account
"prev_trans_lt": "15371704000004", # lt of prev. transaction
"orig_status": "active", # account status before transaction
"end_status": "active", # ... after transaction
"total_fees": "12446659", # ... sum of fees from description
"description": {
"type": "ord",
"aborted": false,
"destroyed": false,
"credit_first": false,
"storage_ph": {
"storage_fees_collected": "48",
"status_change": "unchanged"
},
"compute_ph": {
"skipped": false,
"success": true,
"msg_state_used": false,
"account_activated": false,
"gas_fees": "8823000",
"gas_used": "8823",
"gas_limit": "400000",
"mode": 0,
"exit_code": 0,
"vm_steps": 178,
"vm_init_state_hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"vm_final_state_hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
},
"action": {
"success": true,
"valid": true,
"no_funds": false,
"status_change": "unchanged",
"total_fwd_fees": "10871000",
"total_action_fees": "3623611",
"result_code": 0,
"tot_actions": 1,
"spec_actions": 0,
"skipped_actions": 0,
"msgs_created": 1,
"action_list_hash": "9XTNK6e1Fmmhd3cdzI0XcNDYRAoP5f5L4bWPUD3KNIE=",
"tot_msg_size": {
"cells": "23",
"bits": "8377"
}
}
},
# reference for the block of the transaction
"block_ref": {
"workchain": 0,
"shard": "8000000000000000",
"seqno": 14627985
},
# in message
"in_msg": {
"hash": "O9XCuICyXBWOs4hHMOYA0k6o4GPBsWbAkjFi2qbttQE=", # hash of whole message
"source": "0:F0C9C78F021AC65839B4006321A68BBB32DE5025F84C853CB9D75EB4894D0848", # account who has sended this message
"destination": "0:C8F053E2CE6406D3D8FCFA30BA0D0EFC3FD9FE9217DCD50147EB73BFC4EA5BBF", # account who received this message (for in_msg should be same as account of transaction)
"value": "400000000", # attached TONS
"fwd_fee": "1494679", # fee for forwarding the message using Hypercube Routing
"ihr_fee": "0", # fee for forwarding the message throught Instant Hypercube Routing (now IHR is not implemented so this should be added to value)
"created_lt": "15371766000002", # logical time of creation (usually slightly differs from transaction lt, where this message appears as an out_msg)
"created_at": "1696238450", # unix timestamp
"opcode": "0x0f8a7ea5", # opcode
"ihr_disabled": true,
"bounce": true, # if bounce should be perfomed on failure
"bounced": false, # if bounce has happened
"import_fee": null,
"message_content": { # message body
"hash": "tWjTyEL/sabOLNt97uyCj5na740lW54GUcVa0UrSDao=", # hash of the message body
# message body in base64 format
"body": "te6cckEBAgEAiAABbQ+KfqUAAAAAdJizmkC/A/doAc9ztfOy5YIoBWjnofpWHchoFtAb/s4FvzXctxUu0Cf0ED8uUQMBAJclk4VhgB3j1vChEcRNFz9a4PfQWGcds91PdwGR6Jm4o4muESRZKAJfTMEAPDJx48CGsZYObQAYyGmi7sy3lAl+EyFPLnXXrSJTQhIQIjm5Xw==",
"decoded": null # text comment if it could be decoded
},
"init_state": null
},
"out_msgs": [
{
"hash": "FuV4JPR/uZZOCzZxWQ473bASToqChvKDLmnf5BiCspI=",
"source": "0:C8F053E2CE6406D3D8FCFA30BA0D0EFC3FD9FE9217DCD50147EB73BFC4EA5BBF", # should coinside with transaction account for out_msg
"destination": "0:794760D36E657A27CDB8D3D65F243D6B468CAD2C34AF413E7709390E4DBE9907",
"value": "380306000",
"fwd_fee": "7247389",
"ihr_fee": "0",
"created_lt": "15371766000004",
"created_at": "1696238450",
"opcode": "0x178d4519",
"ihr_disabled": true,
"bounce": true,
"bounced": false,
"import_fee": null,
"message_content": {
"hash": "o+VOluS6wdyl44k2AIFTcRBvdxZD/98275dunIWcVIA=",
"body": "te6cckEBAgEAiAABbReNRRkAAAAAdJizmkC/A/doAeGTjx4ENYywc2gAxkNNF3ZlvKBL8JkKeXOuvWkSmhCQIH5cogYBAJclk4VhgB3j1vChEcRNFz9a4PfQWGcds91PdwGR6Jm4o4muESRZKAJfTMEAPDJx48CGsZYObQAYyGmi7sy3lAl+EyFPLnXXrSJTQhIQPzgXtA==",
"decoded": null
},
# init state in same format as message body
# needed to deploy a new contract
"init_state": {
"hash": "eUdg025leifNuNPWXyQ9a0aMrSw0r0E+dwk5Dk2+mQc=",
"body": "te6cckECFAEAA4AAAgE0AgEBhwgBz3O187LlgigFaOeh+lYdyGgW0Bv+zgW/Ndy3FS7QJ/UAN1wXvOOOdJfwh7sHnzxnFjjhTeJ04Bmd10caY4RPyrggAgEU/wD0pBP0vPLICwMCAWIEBQICywYHABug9gXaiaH0AfSB9IGoYQIBIAgJAIPSAINch7UTQ+gD6QPpA1DAE0x+CEBeNRRlSILqCEHvdl94TuhKx8uLF0z8x+gAwE6BQI8hQBPoCWM8WAc8WzMntVICAUgKCwIBWAwNAMNCDHAJJfBOAB0NMDAXGwlRNfA/AQ4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTH4IQD4p+pVIgupUxNFnwDeCCEBeNRRlSILqWMUREA/AO4DWCEFlfB7y6k1nwD+BfBIQX8vCAART6RDBwuvLhTYAfFQPTP/oA+kAh8ALtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIDgIBIA8QAK6CEBeNRRnIyx8Zyz9QB/oCIs8WUAbPFiX6AlADzxbJUAXMI5FykXHiUAioE6CCCOThwKoAggiYloCgoBS88uLFBMmAQPsAECPIUAT6AljPFgHPFszJ7VQD9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloCCCJiWgBK2CKGCCOThwKAYoSfjDyXXCwHDACOAREhMA2ztRND6APpA+kDUMAfTP/oA+kAwUVGhUknHBfLiwSfC//LiwoII5OHAqgAWoBa88uLDghB73ZfeyMsfFcs/UAP6AiLPFgHPFslxgBjIywUkzxZw+gLLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAHBSeaAYoYIQc2LQnMjLH1Iwyz9Y+gJQB88WUAfPFslxgBDIywUkzxZQBvoCFctqFMzJcfsAECQQIwAOEEkQODdfBAB2wgCwjiGCENUydttwgBDIywVQCM8WUAT6AhbLahLLHxLLP8ly+wCTNWwh4gPIUAT6AljPFgHPFszJ7VTOKoYI",
"decoded": null
}
}
],
# account state before the transaction
"account_state_before": {
"hash": "ICpM+dm0PYhxtwS/EnIwMAvOQbtDhVWMnPtMAlw5Dog=", # hash of whole account state
"balance": "37821399", # balance
"account_status": "active", # status of account (active, nonexist = deleted, frozen, uninitialized)
"frozen_hash": null, # hash of state when it became frozen
"data_hash": "XeSmBiLWvwn00CWu5oq/q9Q6d4luPKxnOWC4NgEeugU=", # hash of data
"code_hash": "ITmGtOPGMSaMQ8fGUTxczC5zEmkqfhV7VEQchrqjpGc=" # hash of code
},
# account state after the transaction
"account_state_after": {
"hash": "7vvsHBjy5KoM/rIs6U8nHZt0pYOW5I3oTbBirxVK+Go=",
"balance": "37821351",
"account_status": "active",
"frozen_hash": null,
"data_hash": "aD0LD2LpPQYYR81n5b/EBHCPYmhBo4soNdvPoTL+xIk=",
"code_hash": "ITmGtOPGMSaMQ8fGUTxczC5zEmkqfhV7VEQchrqjpGc="
}
}
Once a developer fetches a dataset of transactions filtered by a specific account or set of accounts, they can process the raw data to extract meaningful events.
Next step
To understand how transactions are structured, executed, and parsed across various TON contexts, continue here:
Explore transactions