# Messages and Transactions

In AIA Chain, the term "transaction" refers to a signed data package containing a message intended to be sent from an externally owned account. A transaction consists of:

* **Message Recipient**: The account to which the message is sent.
* **Signature**: Used to verify the sender’s identity.
* **AIA Amount**: The amount of AIA transfers from the sender to the recipient.
* **Optional Data Field**: An optional field that may contain additional data.
* **STARTGAS Value**: The maximum computational steps allowed for the transaction.
* **GASPRICE Value**: The fee the sender pays per computational step.

The first three fields are standard for any cryptocurrency transaction. By default, the data field has no predefined function, though the virtual machine includes an opcode that contracts can use to access this data. For example, in a domain name registration contract on blockchain, the contract might interpret the data as containing two fields: the first being the domain name to register and the second the IP address to associate with it. The contract would then read these values from the message data and store them accordingly.

The STARTGAS and GASPRICE fields are crucial for AIA Chain’s anti-denial-of-service model. To prevent unintentional or malicious infinite loops or computational waste, each transaction must set a limit on the computational steps its code can execute. The fundamental unit of computation is "fuel"; typically, a single computational step consumes one unit of fuel, but some operations require more due to their computational intensity or the amount of data they add to the state. Each byte of transaction data incurs an additional cost of 5 units of fuel. This fee system ensures that any party attempting to drain network resources—such as computation, bandwidth, or storage—must pay in proportion to the amount consumed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aia-chain-1.gitbook.io/aialabs/technical-framework/core-architecture/messages-and-transactions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
