Truebit Verify
  • Getting Started
    • 馃搫What is Truebit Verify?
      • How does Truebit work?
      • System Actors
    • 鈴憋笍Get Started
    • 鈿欙笍Architecture
      • Truebit Verify Hub
      • Truebit Verify Nodes
      • What is a transcript?
        • Transcript example
        • API Transcript example
    • Key Concepts
      • What is verification?
      • Determinism
      • WebAssembly
      • Task instrumentation
  • Developing Truebit Tasks
    • Introduction
    • Writing Function Tasks
      • Supported languages
        • Javascript
        • Python
        • Rust
    • Writing API Tasks
    • Task examples
      • Function Task examples
        • Fibonacci
        • Reverse Alphabet
        • Encrypt sha256 using bun.js
        • Encrypt sha256 using Deno
        • ECDSA signature verification
        • NumPy example
      • API Task examples
        • Pet Store CRUD
        • API-Auth examples
    • Namespace management
    • Task Authorization
    • Truebit CLI
      • secret.json
  • Executing Truebit tasks
    • Introduction
    • Task Execution API
      • Execute Function Tasks
      • Execute API Tasks
      • Get Task Status
    • Transcript API
      • Get Transcript
      • Get Invoice
  • Community
    • Truebit Unchained Protocol
    • Support
Powered by GitBook
On this page

Was this helpful?

  1. Executing Truebit tasks
  2. Task Execution API

Execute Function Tasks

PreviousTask Execution APINextExecute API Tasks

Last updated 6 days ago

Was this helpful?

Overview

Execute a Function Task and retrieve the result.

You can configure the endpoint for either a synchronous or asynchronous response. In sync mode, if the result is ready within 60 seconds, it will be returned immediately. If not, you'll receive an executionId, which you can use to check the result later by calling the status endpoint.

During the public beta, Truebit will provide 3 hosted nodes for public use.

Please configure totalSolutions and requiredSolutions to a maximum of 3 nodes.

Authorization

API KEY

To get authorized using an API Key, include the registered API Key in the call's header. This allows the dispatcher service to validate access and identify who will cover the cost of the task execution (the address associated with the API Key).

Example

X-API-KEY: be0dc6ba-9a60-4777-b5b7-60ed2397e3ed
  • Overview
  • POSTExecute a task by name
  • Authorization
  • API KEY

Execute a task by name

post

Execute a task using the provided task name. Supports both synchronous and asynchronous execution.

Header parameters
x-api-keystringRequired

API key for authentication.

Body
namespacestringRequired

The namespace of the task.

taskNamestringRequired

The name of the task to be executed.

labelstringOptional

Label of the task.

versioninteger 路 uint32Optional

Version number of the task.

asyncbooleanRequired

If true, the endpoint will retrieve the executionId; otherwise, it will try to return the execution result only if it completes within 60 seconds.

inputstringRequired

Input data required for task execution.

totalSolutionsinteger 路 uint32Required

Total number of solutions required for the task.

requiredSolutionsinteger 路 uint32Required

Number of solutions required to complete the task.

executionTimeoutinteger 路 uint32Required

Timeout for task execution in milliseconds.

taskRequesterTimestampinteger 路 uint32Required

Task Requester Timestamp. This value is used to calculate the random bits in the node selection Phase.

Responses
200
Successful operation
application/json
Responseone of
or
400
Bad request, invalid input.
application/json
500
Internal server error.
application/json
post
POST /task/function/execute-by-name HTTP/1.1
Host: run.truebit.network
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 172

{
  "namespace": "namespace1",
  "taskName": "task1",
  "input": "20",
  "executionTimeout": 6000,
  "totalSolutions": 1,
  "requiredSolutions": 1,
  "taskRequesterTimestamp": 1710262226,
  "async": true
}
{
  "executionId": "c49568e2-1a04-4d60-bab6-c56f92115540",
  "clearTextSolution": {
    "output": "function task output",
    "executionStatus": "succeed",
    "senderAddress": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
    "signature": {
      "v": 28,
      "r": "20476805d11bd09ecad1b67102a0be84810749430bf8deca83f93de9b185d486",
      "s": "07f38e3b363300f4997460ddef83c0769dedfd7ba8a61a21236081b5b8f74e66"
    }
  },
  "verificationStatus": "Success"
}