{
"id": "dev.cocore.compute.job",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"model",
"inputCommitment",
"maxTokensOut",
"priceCeiling",
"acceptedTrustLevel",
"paymentAuthorization",
"nonce",
"expiresAt",
"createdAt"
],
"properties": {
"model": {
"type": "string",
"maxLength": 256,
"description": "Opaque model identifier the requester wants the provider to honor."
},
"nonce": {
"type": "string",
"maxLength": 32,
"minLength": 32,
"description": "16 random bytes, hex-encoded. Replay protection."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"expiresAt": {
"type": "string",
"format": "datetime",
"description": "Provider must complete by this time. Receipts whose completedAt > expiresAt are invalid."
},
"maxTokensOut": {
"type": "integer",
"maximum": 2000000,
"minimum": 1
},
"priceCeiling": {
"ref": "dev.cocore.compute.defs#money",
"type": "ref",
"description": "Maximum price the requester will accept for this job. The provider's receipt MUST list a price <= this ceiling, else the receipt is invalid."
},
"inputCipherURL": {
"type": "string",
"format": "uri",
"description": "Optional URL where the encrypted prompt blob can be fetched. May be a PDS blob (at://...) or any other content-addressed URL. The commitment is what matters; this is a convenience pointer."
},
"inputCommitment": {
"type": "string",
"maxLength": 64,
"minLength": 64,
"description": "SHA-256 hex of the encrypted prompt bytes the provider will decrypt. The plaintext prompt is never on-chain."
},
"acceptedExchanges": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 16,
"description": "Exchange DIDs allowed to settle this job. MUST be non-empty in practice; the named paymentAuthorization MUST cover one of these."
},
"acceptedProviders": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 64,
"description": "Specific provider DIDs allowed to serve this job. Empty/absent means any provider that meets acceptedTrustLevel."
},
"acceptedTrustLevel": {
"ref": "dev.cocore.compute.defs#trustLevel",
"type": "ref",
"description": "Minimum trust level the requester will accept from a provider serving this job."
},
"paymentAuthorization": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong-ref to a dev.cocore.compute.paymentAuthorization record in the same repo, naming an exchange and a ceiling >= this job's priceCeiling."
}
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A request for computational work. Published by the requester in their own repo before the work runs, so the provider has something to commit a receipt against."
}