{
"id": "com.publicdomainrelay.temp.market.receipt",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"rfp",
"bid",
"accept",
"cid",
"signatures"
],
"properties": {
"bid": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the bid record (for example a com.publicdomainrelay.temp.market.bid.x402)."
},
"cid": {
"type": "string",
"format": "cid",
"description": "badge.blue attestation CID over the referenced accept record, making this receipt a remote attestation proof: computed from the accept record (signatures stripped), this receipt's metadata (cid/signatures stripped, repository = accept's repo DID added) as $sig, via DAG-CBOR + SHA-256 + CIDv1. Binds the receipt to the accept's exact content in the requester's repository."
},
"rfp": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the rfp record (for example a com.publicdomainrelay.temp.market.rfp)."
},
"accept": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the accept record (for example a com.publicdomainrelay.temp.market.accept.x402)."
},
"payload": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the receipt record if there is anything to note about the receipt (for example a com.publicdomainrelay.temp.market.receipt.x402)."
},
"signatures": {
"ref": "network.attested.signature#signatures",
"type": "ref",
"description": "badge.blue attestations over this receipt. Must include the provider's inline signature, attached at creation."
},
"submitEvent": {
"type": "string",
"description": "Service DID reference (did:web:HOST#compute_event) of the provider's compute-event service, scoped to this receipt's strongRef. The requester calls com.publicdomainrelay.temp.market.submitEvent via PDS service-proxying using this value as the atproto-proxy target, to report lifecycle events the provider cannot observe itself (e.g. compute.events.vm.delete when a workflow finishes or its policy engine never comes up), since the provider treats provisioned resources as a black box."
}
}
},
"description": "Receipt for acceptance of a bid on an RFP"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}