# Network task contract

Availability: **Proposed specification**  
Documentation: **1.1** | Updated: **19 September 2026**

[Documentation home](../README.md)

The proposed network contract is distinct from the five-field local task. Declarative workload definitions allow validation before resources are reserved; Nosana's task definition and validation guides provide a useful documentation pattern. [R3](https://learn.nosana.com/deployments/jobs/job-definition/intro.html)[R5](https://learn.nosana.com/deployments/jobs/job-definition/validation.html)

| Field | Owner | Contract |
| --- | --- | --- |
| protocol_version | Client; validated by server | An explicitly supported version |
| workload_profile | Client | Immutable name and version |
| input_ref and input_digest | Client; authorized by server | Controlled object reference and digest of original bytes |
| runtime_digest | Policy or client profile | Pinned executable artifact |
| constraints | Client; bounded by policy | Resource, region, egress and deadline requirements |
| acceptance_profile | Client or product profile | Frozen evaluation rules and version |
| quote_ref | Accounting service | Valid quote with budget and failure-charge policy |
| max_attempts | Client; bounded by policy | Positive, capped attempt count |
| idempotency_key | Client | Unique within tenant and operation scope |
| task_id and tenant_id | Server | Opaque identity and authenticated ownership |
| active_attempt_id | Server | Current execution selection, or null |
| resolution | Server | open, completed, failed, cancelled or disputed |

## Validation and immutability

TASK-01 Reject unknown protocol versions, unsupported workload profiles and unrecognized fields. Resolve ownership and object access before acceptance. TASK-02 Freeze the workload, inputs, runtime, acceptance profile and quote before the first executor acceptance.

A request fingerprint covers every client-controlled field that affects execution, access, acceptance or cost. Its canonicalization profile must be versioned. Raw input digests continue to bind the original object bytes, independently of the task-object encoding.

Network field types, maximum sizes, profile registries and canonical encodings must be frozen in a reviewed schema before integration. The proposed semantics require engineering approval before a stable API contract is published.

[Previous](./scheduling.md) | [Next](./execution-lifecycle.md)
