Gas Killer Docs
API ReferenceTasks

Submit a compute task

POST
/tasks

Queues a task for the operator network and returns a task_id to poll. The request is authenticated, load-shed against the queue capacity, then validated (field-level, then on-chain) before it is accepted. A 202 means the task was queued: poll GET /tasks/{task_id} until it is ready, then sign and submit the returned payload yourself.

A repeat of a submission that is still in flight collapses onto the original rather than creating a second task, and answers 200 with deduplicated: true. Deduplication is keyed on the calling key, the target, and the transition index, so it only applies to a submission that named an explicit transition_index.

Submission is rate limited per API key (60 requests per minute by default). Over the limit returns 429 with a Retry-After header.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

An API key for task submission and polling, sent as Authorization: Bearer gk_....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/tasks" \  -H "Content-Type: application/json" \  -d '{    "body": {      "target_address": "0x0000000000000000000000000000000000000001",      "call_data": [        171,        205,        239,        1      ],      "from_address": "0x0000000000000000000000000000000000000001",      "value": "0x0",      "block_height": 1    }  }'
{  "task_id": "3f8c1e02-9a4b-4c7d-8e1f-2b6a5c9d0e11",  "status": "queued",  "deduplicated": true}
{  "task_id": "3f8c1e02-9a4b-4c7d-8e1f-2b6a5c9d0e11",  "status": "queued",  "deduplicated": false}
{  "error": {    "code": "INVALID_ADDRESS",    "message": "target_address is zero"  }}
{  "error": {    "code": "UNAUTHORIZED",    "message": "Unauthorized"  }}
{  "error": {    "code": "INVALID_REQUEST",    "message": "Failed to deserialize the JSON body into the target type"  }}
{  "error": {    "code": "RATE_LIMITED",    "message": "Rate limit exceeded; retry after the indicated delay"  }}
{  "error": {    "code": "INTERNAL",    "message": "Internal error: task queue unavailable"  }}
{  "error": {    "code": "QUEUE_FULL",    "message": "Service at capacity, please try again in a few minutes"  }}