> For the complete documentation index, see [llms.txt](https://devs.truebit.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://devs.truebit.io/architecture/execution-transcripts/api-transcript.md).

# API Transcript

### Overview

The API Transcript specifically captures the interactions between the Truebit node and external data sources. It documents the requests made and responses received, providing a cryptographic audit trail for all off-chain data exchanges during an API Task.

### Example

<details>

<summary>API Transcript Example</summary>

{% code expandable="true" %}

```json
{
    "executionId": "bafcfb33-f845-4845-a7d3-b4e612a70382",
    "transcript": [
        {
            "type": "api_task_created",
            "executionId": "bafcfb33-f845-4845-a7d3-b4e612a70382",
            "message": {
                "type": "dispatch_api_task",
                "taskId": "api_93f70a3299ad48ea9f4f7296f63d57d861aaa39f0bc5310b59649c6e65b9f96e",
  {
    "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
    "transcript": [
        {
            "type": "api_task_created",
            "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
            "message": {
                "type": "dispatch_api_task",
                "taskId": "api_142456019dd5b351e82b6f679bf7b36af9e9a0fd523f30844a2c479d908b913e",
                "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
                "msgHash": "3e4e7f04c4819075ebbef546b90fb3337e53e17df62bf5d5e722b7566913592c",
                "signature": {
                    "v": 28,
                    "r": "888fdedd9bc53b760565895cc2305028c7c7b8d2c270de3f0b66974d95c9a908",
                    "s": "127074388069fa37af2690e926375ff0c10d96d41d00b7ee0ee0f07e58c092e4"
                },
                "executionTimeout": 30000,
                "ledgerName": "evm",
                "blockHash": "0x************************************************************d3ab",
                "blockNumber": 47503404,
                "chainId": "43113",
                "taskRegistryContractAddress": "0x************************************5f5A",
                "taskAuthorizationContractAddress": "0x************************************96E4",
                "taskRequesterAddress": "0x************************************C8F7",
                "taskPath": "/62faaf33/basic",
                "taskVersion": 1,
                "senderAddress": "0x************************************058B",
                "input": {
                    "path": "/basic-auth/{user}/{password}",
                    "method": "GET",
                    "params": {
                        "user": "foo",
                        "password": "bar"
                    }
                }
            },
            "msgHash": "d6f80a07d2998701afeb0cde3aa4954d6525750b53bf12a34d91f7dc51580d9b",
            "signature": {
                "v": 28,
                "r": "7b0e0bed74e79e8527d296a750e7283fc482c4adaa45beaebd5e569c4e5c3579",
                "s": "429d80d2d3b205d1d717c1b239ca409d81eabd4fdfc53401ca8ff488041202c7"
            },
            "publicKey": "0423fcbc3763e133bbec077378366887191b9dc7053bea44505ba7df8fa7d571be967f04e5246261884b3737ff94de900bca12aa41367138c033558d36d81b9299",
            "sequencerAddress": "0x************************************058B",            
            "timestamp": 1762441257820
        },
        {
            "type": "api_outcome",
            "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
            "message": {
                "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd", 
                "senderAddress": "0x************************************058B",              
                "bodyResponse": {
                    "attestation": {
                        "document": "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",
                        "documentHash": "11949182f4735845d796070e1cdc90a906f00971cef4c245b5238119dbe7e819",
                        "enclave": {
                            "moduleId": "i-051ab778f823e1fa9-enc019a49877912e3ee",
                            "nonce": null,
                            "userData": null
                        },
                        "platform": {
                            "PCR0": "79e6458cb7f1e107ab4ae2c58925f7b1b42b65295a14c74d19a38ff21593a25b48b3be26438e9ea4a9fb3e347027d87e",
                            "PCR1": "4b4d5b3661b3efc12920900c80e126e4ce783c522de6c02a2a5bf7af3a2b9327b86776f188e4be1c1c404a129dbda493",
                            "PCR10": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR11": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR12": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR13": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR14": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR15": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR2": "a23414aa06f12638383ae09b898b91049a26be28e0256c69909f427db00a4ea59c732405a4d299cbbe757ba6bf26c978",
                            "PCR3": "7b088613b2138b5ee1f8eae1bb85ca9563046957b2a622d5a0450075680c916b9f8916f9e72769138126f1fa4341aa72",
                            "PCR4": "f461e10441bf33ab6eadf649027c74a43c33424d61749626df6d90b8dee9c241c9b95eb83d42ffd5543350cb1f23ce30",
                            "PCR5": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR6": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR7": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                            "PCR8": "82095bc25c07cc680d7170b801a33e6428f35c83207743dcd902d9e5766ef4d93b9ab0554c194e85c11bbb80d4398d36",
                            "PCR9": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
                        },
                        "timestamp": "2025-11-06T14:49:37.000493",
                        "validated": true
                    },
                    "data": "{\"authenticated\":true,\"user\":\"foo\"}\n",
                    "executedAt": "2025-11-06T15:00:57.878929",
                    "headers": {
                        "Access-Control-Allow-Credentials": "true",
                        "Access-Control-Allow-Origin": "*",
                        "Connection": "close",
                        "Content-Length": "36",
                        "Content-Type": "application/json",
                        "Date": "Thu, 06 Nov 2025 15:01:04 GMT",
                        "Server": "gunicorn"
                    },
                    "request_id": "50616139-0bfb-4d15-8e85-943465555716",
                    "status": "success",
                    "statusCode": 200,
                    "tlsInfo": {
                        "cipher": "Unknown",
                        "host": "10.1.10.100",
                        "port": 80,
                        "protocol": "Unknown",
                        "source": "fallback",
                        "timestamp": "2025-11-06T15:00:57.878900",
                        "verified": false
                    }
                },
                "msgHash": "dcdcaf566bc34196502ab8f522a135d1350670358aa148ac3c52a922e077b2da",
                "signature": {
                    "v": 28,
                    "r": "925cfcf8ad7c9834c4d94e407a132cbe931ef4ad45aa41a2bec74131ed569895",
                    "s": "76d63ebdfeec66297acd0cb78b955c0239db532e2d1919d14ab2153888457792"
                },
                "tlsHandshakeHash": "b48d38f93eaa084033fc5970bf96e559c33c4cdc07d889ab00b4d63f9590739d",
                "status": "succeed",
                "totalTransferredBytes": {
                    "request": 0,
                    "response": 0
                }
            },
            "msgHash": "d9fbe7f5a28465ee3c6bba6814eb5558c604f41db90b72f32a532d100ad1db62",
            "signature": {
                "v": 27,
                "r": "d530ccb0295e7e55190d7038f580c0df0d72d5e6272c36230057af089cd7bac7",
                "s": "73824ae7f3e1ccf9e21843718c5727e72be37a8fbe61cad162586bd58a7ebadc"
            },
            "sequencerAddress": "0x************************************058B",
            "timestamp": 1762441264136
        },
        {
            "type": "execution_completed",
            "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
            "transcriptHash": "cbac5b7008ec4dcccdae8106a7e7687907c790b24761d59f5ce4a93a72ef49cc",
            "status": "ReadyForInvoice",
            "signature": {
                "v": 28,
                "r": "2b100190b3a157c55e29ce0b2de8ca4222ffa711b096b42b3f9a3cdff51cbbba",
                "s": "7db04fca1d6454cb20af183b00048b0d35e03bc637c34ace2f06912e01969974"
            },
            "signerAddress": "0x************************************058B",
            "timestamp": 1762441264189
        },
        {
            "type": "execution_metadata",
            "executionId": "e7e444fa-96c5-45c9-9c65-dd9f8edfdafd",
            "message": {
                "version": "1.0.0"
            },
            "msgHash": "cbb80896ec2c2f544b454860af2e695eaebae6aedf1f8fb3d792bdb526bfd9d0",
            "signature": {
                "v": 27,
                "r": "9b1af47030318a674d9f76da1785ebfb2ffab0bc09196b4f857ca234b76356be",
                "s": "02e02ab9dbc958ac35a7a32565756aa04d888e2372a2ba7365c322cd005dfed0"
            },
            "timestamp": 1762441264407
        }
    ],
    "timestamp": 1762441278885,
    "msgHash": "ac2afb66b2d876907a14dac1b37a3d6fc7bf8086fb6167f025eec953b2babb01",
    "signature": {
        "v": 28,
        "r": "153dc4ba3ee67da6ed75bcafb4d51e927aef49ecf417f30c62b122f774772a8a",
        "s": "5ca6c8907fbaede968a61fe6e3db204a35d1ead34483e25763a88377f5ed3e7e"
    }
}            "sequencerAddress": "0x************************************058B",
            "timestamp": 1762186653114
        },
        {
            "type": "execution_completed",
            "executionId": "bafcfb33-f845-4845-a7d3-b4e612a70382",
            "transcriptHash": "16b2697357335b70994b8edb24cd9896fe19c0374ff272346e0889b99a47a154",
            "status": "ReadyForInvoice",
            "signature": {
                "v": 28,
                "r": "a649b6d25a2b4c4c590e09ad29ad7bb70a25eea9ec92e8eb1711a3bd5e65f08e",
                "s": "7c6cea2e65b21e501f078a5010ee9f407ae2079299c5efc393e6e8f5ea283e73"
            },
            "signerAddress": "0x************************************058B",
            "timestamp": 1762186653162
        },
        {
            "type": "execution_metadata",
            "executionId": "bafcfb33-f845-4845-a7d3-b4e612a70382",
            "message": {
                "version": "1.0.0"
            },
            "msgHash": "b8b018e500513e608feef59653e223e22e2d0691596601145b5cc057b2d95165",
            "signature": {
                "v": 28,
                "r": "75493c403f330d69c615ad5376283a98d729e0dbd8ef80f9cdfdc08083f4304e",
                "s": "19f5a424579ad9f768cf7bea2c9a8a115e63f8068098c5310e3ad9c2b01ad228"
            },
            "timestamp": 1762186653366
        }
    ],
    "timestamp": 1762186724007,
    "msgHash": "a386c3ea87141ff8d953813745474f38354ae365c94d239e03ae9eaa17f48bc1",
    "signature": {
        "v": 27,
        "r": "37ed6a404550eb352eed1275434071a1e273f456a2cb01cae7e179e0cb35a6eb",
        "s": "033cfd9a7225021dcb3648e898b8e5a9ecc0fe430a76bad32eb71ebe12ff1fd9"
    }
}
```

{% endcode %}

</details>

### Execution Lifecycle Messages

<details>

<summary>root message</summary>

This `root message` is the first entry recorded in the execution transcript. It contains key information such as the **execution ID**, the **timestamp** of when the task requester initiated the execution, and the **hash** representing all the messages contained within the transcript.

<table><thead><tr><th>Property</th><th width="355.3333333333333">Description</th><th>Possible values</th></tr></thead><tbody><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td><a href="#execution-lifecycle-messages">transcript</a></td><td>List of all the messages generated during the API Task execution</td><td>Array of data </td></tr><tr><td>timestamp</td><td>Transcript query request timestamp. The moment when the task-requester calls the transcript query endpoint.</td><td>Number</td></tr><tr><td>msgHash</td><td>Transcript Hash</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr></tbody></table>

</details>

<details>

<summary>api_task_created</summary>

The `api_task_created` message is added to the transcript when the Truebit platform receives a new execution request from the task requester. It contains key information such as the **execution ID**, the **original message** sent by the requester (stored in the **message** field), and all data is **signed by the Truebit Verify Hub**.

<table><thead><tr><th width="188">Property</th><th width="256.6145833333333">Description</th><th>Possible values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td>api_task_created</td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td><a href="#task-created-message">message</a></td><td>Original message received from the Task Requester</td><td>see below "dispatch_api_task"</td></tr><tr><td>msgHash</td><td>Current Message Hash</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>publickey</td><td>Truebit Verify Hub public key</td><td>Text</td></tr><tr><td>sequencerAddress</td><td>Truebit Verify Hub Address</td><td>Text</td></tr><tr><td>timestamp</td><td>task_created message created timestamp</td><td>Number</td></tr></tbody></table>

**Original message sent by the Task Requester:** `dispatch_api_task`

<table><thead><tr><th width="204.859375">Property</th><th>Description</th><th>Values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td><code>dispatch_api_task</code></td></tr><tr><td>taskId</td><td>API Task ID</td><td>Text</td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td>msgHash</td><td>Current message Hash</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>executionTimeout</td><td>Execution time out</td><td>number</td></tr><tr><td>ledgerName</td><td>Current ledger in usage</td><td>['avalanche']</td></tr><tr><td>blockHash</td><td>Current block hash</td><td>Text</td></tr><tr><td>blockNumber</td><td>Current block number</td><td>Number</td></tr><tr><td>chainId</td><td>Unique ID for blockchain identification</td><td>Number</td></tr><tr><td>taskRegistryContractAddress</td><td>Task registration Smart contract Address</td><td>Text</td></tr><tr><td>taskAuthorizationContractAddress</td><td>Task Authorization Contract Address</td><td>Text</td></tr><tr><td>taskRequesterAddress</td><td>Task Requester Address. This address will pay for the task execution</td><td>Text</td></tr><tr><td>taskPath</td><td>Provided path for task execution. It must contain the namespace and taskname</td><td>Text</td></tr><tr><td>taskVersion</td><td>Provided version Task for execution </td><td>Number</td></tr><tr><td>senderAddress</td><td>Truebit Verify Hub address</td><td>Text</td></tr><tr><td>input</td><td>API Task Input parameters</td><td>path: Endpoint Path<br>method: {POST, GET}<br>body: Body endpoint values</td></tr></tbody></table>

</details>

<details>

<summary>api_outcome</summary>

The `api_outcome` message is recorded in the transcript once Truebit Verify Hub receives a response from the TEE. It includes key information such as the **execution ID**, the **original message** from the TEE (stored in the **message** field), and all data is **signed by the Truebit Verify Hub**.

<table><thead><tr><th width="186">Property</th><th width="229.7421875">Description</th><th>Values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td>api_outcome</td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td><a href="#api-outcome-message">message</a></td><td>Original message received from the TEE</td><td>see below "api_fetcher_outcome"</td></tr><tr><td>msgHash</td><td>Current message Hash</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>sequencerAddress</td><td>Truebit Verify Hub address</td><td>Text</td></tr><tr><td>timestamp</td><td>Message sent timestamp</td><td>Number</td></tr></tbody></table>

**Original message sent by the Task Requester:** `api_fetcher_outcome`

<table><thead><tr><th width="189.59375">Property</th><th width="271.62890625">Description</th><th>Values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td><code>api_fetcher_outcome</code></td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td>senderAddress</td><td>Truebit Verify Hub address</td><td>Text</td></tr><tr><td>bodyResponse</td><td>TEE response</td><td>see below "bodyResponse" message</td></tr><tr><td>msgHash</td><td>Current message Hash</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>tlsHandshakeHash</td><td>TLS handshake information hash </td><td>Text</td></tr><tr><td>status</td><td>API execution status</td><td>{Failed, Success, Running}</td></tr><tr><td>totalTransferredBytes</td><td>Bytes transferred during the API execution.</td><td><ul><li>request: Total bytes transferred in the Request</li><li>response: Total bytes transferred in the Response.</li></ul></td></tr></tbody></table>

**Information stored within the bodyResponse message**

<table><thead><tr><th width="130.88671875"></th><th width="164.84765625"></th><th></th></tr></thead><tbody><tr><td>attestation</td><td></td><td></td></tr><tr><td></td><td>document</td><td>The base64-encoded signed quote (Nitro attestation report) — this is the root of trust</td></tr><tr><td></td><td>documentHash</td><td>SHA-256 of the binary document</td></tr><tr><td></td><td>enclave.moduleId</td><td>Identifies the specific enclave that generated the quote.</td></tr><tr><td></td><td>enclave.nonce</td><td>Prevents replay attacks (each task gets unique nonce).</td></tr><tr><td></td><td>enclave.userData</td><td>Should contain task-specific data (e.g., hash of input parameters, task ID).</td></tr><tr><td></td><td>platform.PCR0</td><td>Enclave image hash — proves which code was loaded.</td></tr><tr><td></td><td>platform.PCR3</td><td>Hash of the enclave image file (EIF). This proves exactly what code ran in the enclave.</td></tr><tr><td></td><td>platform.PCR4</td><td>Hash of the kernel and bootstrap configuration. Ensures the enclave environment itself wasn't tampered with.</td></tr><tr><td></td><td>timestamp</td><td>Proves when the attestation was generated</td></tr></tbody></table>

</details>

<details>

<summary>execution_completed</summary>

The `execution_completed` message is logged into the transcript once the entire execution process has been completed or a timeout has occurred (whichever happens first).

<table><thead><tr><th width="181.33203125">Property</th><th width="281">Description</th><th>Values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td>execution_completed</td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td>transcriptHash</td><td>Execution lifecycle messages hash.</td><td>Text</td></tr><tr><td>status</td><td>Final execution status</td><td>["ReadyForInvoice", "Error"]</td></tr><tr><td>errorDetails</td><td>Only present if there was an error during the execution.</td><td>The details of any error thrown by the protocol or its services</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>signerAddress</td><td>Truebit Verify Hub address</td><td>Text</td></tr><tr><td>timestamp</td><td>Message sent timestamp</td><td>unixTimestamp</td></tr></tbody></table>

**Execution Complete Statuses**

| Status          | Description                                                                           |
| --------------- | ------------------------------------------------------------------------------------- |
| ReadyForInvoice | The API was executed, so the protocol is ready to process the execution's invoices    |
| Error           | There was an error during the API execution. Please check the **errorDetails** field. |

</details>

<details>

<summary>execution_metadata</summary>

<table><thead><tr><th width="234">Property</th><th width="257.03515625">Description</th><th>Values</th></tr></thead><tbody><tr><td>type</td><td>Message type</td><td>execution_metadata</td></tr><tr><td>executionId</td><td>Current execution ID</td><td>Text</td></tr><tr><td>message</td><td>Truebit Protocol version</td><td>Array of<br>["version"]</td></tr><tr><td>msgHash</td><td>Hash that represents the message</td><td>Text</td></tr><tr><td>signature</td><td>Truebit Verify Hub signature</td><td>v: Text<br>r: Text<br>s: Text</td></tr><tr><td>timestamp</td><td>Message sent timestamp</td><td>unixTimestamp</td></tr></tbody></table>

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://devs.truebit.io/architecture/execution-transcripts/api-transcript.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
