# Message

Contracts in AIA Chain can send "messages" to other contracts. A message is an unserialized virtual object that exists only within the AIA Chain execution environment. A message consists of:

* **Sender of the Message** (implicit)
* **Recipient of the Message**
* **AIA Amount**: The amount of AIA transferred along with the message
* **Optional Data Field**: An optional field that may contain additional data
* **STARTGAS Value**: The maximum computational steps allowed for the message

Essentially, messages are similar to transactions, except that they are generated by contracts rather than external participants. A contract that is currently executing will generate a message when it performs a **CALL** opcode, which is the opcode used to create and execute messages. Just like transactions, messages trigger the recipient's account to run its code. Thus, contracts can establish relationships with each other in the same way external participants do.

It's important to note that the fuel allocation assigned to a transaction or contract applies to the total fuel consumed by both the transaction and all of its subsequent child executions. For example, if an external participant A sends a transaction to B with an allocation of 1000 units of fuel, and B sends a message to C that consumes 600 units of fuel, and C performs an internal operation consuming 300 units of fuel to return a result, B will have used up 900 units of fuel and only 100 units will remain for further use.


---

# 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/message.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.
