Skip to content

Submit a task to a project's committee; `wait` blocks until final

POST
/v1/projects/{project_id}/tasks
curl --request POST \
--url 'https://testnet-rpc.necter.network/v1/projects/example/tasks?wait=0&accept=final' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "function": "example", "input": "example", "input_b64": "example", "gas_limit": 1, "idempotency_key": "example" }'

Allowed with an API key of the project’s developer (tasks:submit), or anonymously when the project has scheduling.public_tasks = true (rate-limited per IP).

project_id
required
string
/^0x[0-9a-f]{64}$/
wait
integer
0 <= 120

Seconds to wait for final (or committee_agreed with accept=agreed)

accept
string
default: final
Allowed values: final agreed
Media typeapplication/json
object
function
required

One of consensus.work.functions

string
input
required

String (byte-for-byte) or JSON value (canonical JSON, no floats); ≤ 1 MiB

input_b64

Alternative to input for binary input

string
gas_limit

Default and max: consensus.work.max_gas_limit

integer
>= 1
idempotency_key

Same key within 24 h returns the same task

string
<= 64 characters

Example generated

{
"function": "example",
"input": "example",
"input_b64": "example",
"gas_limit": 1,
"idempotency_key": "example"
}

Final (or agreed) within wait

Media typeapplication/json
object
task_id
required

Hub id; equals round_id once scheduled

string
project_id
required
string
/^0x[0-9a-f]{64}$/
round_id
string | null
epoch
integer | null
seq
integer | null
function
string
input_hash
string
/^0x[0-9a-f]{64}$/
status
required
string
Allowed values: queued running committee_agreed finalized escalated fallback failed
success
boolean | null
output

UTF-8 output (HBC outputs are UTF-8)

string | null
receipt_hash
One of:
string
/^0x[0-9a-f]{64}$/
gas_used
integer | null
events
Array<object>
object
name
string
data
error
string | null
created_at
required
integer
finalized_at
One of:
integer

Example

{
"status": "queued"
}

Accepted, not final yet

Media typeapplication/json
object
task_id
required

Hub id; equals round_id once scheduled

string
project_id
required
string
/^0x[0-9a-f]{64}$/
round_id
string | null
epoch
integer | null
seq
integer | null
function
string
input_hash
string
/^0x[0-9a-f]{64}$/
status
required
string
Allowed values: queued running committee_agreed finalized escalated fallback failed
success
boolean | null
output

UTF-8 output (HBC outputs are UTF-8)

string | null
receipt_hash
One of:
string
/^0x[0-9a-f]{64}$/
gas_used
integer | null
events
Array<object>
object
name
string
data
error
string | null
created_at
required
integer
finalized_at
One of:
integer

Example

{
"status": "queued"
}

Malformed request (bad_request, invalid_field)

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

Missing/invalid credentials (unauthorized, session_expired, bad_signature)

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

Authenticated but not allowed (forbidden, not_owner, not_enrolled, not_verified, scope_missing)

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

not_found

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

conflict, duplicate, already_exists, invalid_state

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

too_large

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}

rate_limited

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}
Retry-After
integer

unavailable, no_validators, faucet_empty

Media typeapplication/json
object
error
required

Stable machine code

string
message
required
string
details
object
key
additional properties
any
request_id
required
string

Example generated

{
"error": "example",
"message": "example",
"details": {},
"request_id": "example"
}