# 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>
