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.

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

curl -X POST "https://example.com/tasks" \  -H "Content-Type: application/json" \  -d '{    "body": {      "target_address": "0x0000000000000000000000000000000000000001",      "from_address": "0x0000000000000000000000000000000000000001",      "call_data": [        171,        205,        239,        1      ],      "value": "0x0",      "block_height": 1    }  }'
{  "task_id": "3f8c1e02-9a4b-4c7d-8e1f-2b6a5c9d0e11",  "status": "queued"}
{  "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"  }}