From
bafyreifqir6jv6ukuhes5tqev7xotz3irdsovaascnk7dym3tdq3hx3kqa
indexed 2026-06-09 09:00 UTC
View this version
To
bafyreiggs3afnqhdzcxuc5dqjr5cfwlo2q3k7q4a43l57mywtlyloxx2ta
indexed 2026-06-11 14:13 UTC
View this version
Compatibility
breaking 2 breaking changes, 4 non-breaking changes.
Breaking changes (2)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body", src: "com.publicdomainrelay.temp.market.receipts.free:body", tgt: "com.publicdomainrelay.temp.market.receipts.free:body.signatures", kind: "prop", name: Some("signatures") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body", src: "com.publicdomainrelay.temp.market.receipts.free:body", tgt: "com.publicdomainrelay.temp.market.receipts.free:body.cid", kind: "prop", name: Some("cid") }
Non-breaking changes (4)
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body.cid" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body.signatures" }
- AddedVertex AddedVertex { vertex_id: "network.attested.signature#signatures" }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.market.receipts.free:body.signatures", tgt: "network.attested.signature#signatures", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body.cid" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body.signatures" }AddedVertex { vertex_id: "network.attested.signature#signatures" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body", src: "com.publicdomainrelay.temp.market.receipts.free:body", tgt: "com.publicdomainrelay.temp.market.receipts.free:body.signatures", kind: "prop", name: Some("signatures") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipts.free:body", src: "com.publicdomainrelay.temp.market.receipts.free:body", tgt: "com.publicdomainrelay.temp.market.receipts.free:body.cid", kind: "prop", name: Some("cid") }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.market.receipts.free:body.signatures", tgt: "network.attested.signature#signatures", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Proof-of-grant receipt minted by the bidder in response to a GET against the bids.free url. No payment is involved; the receipt is the bidder's verifiable record that it agreed to provide the resource for free. Returned (by AT-URI + CID) to the requester, which uses it as the payload of the higher-level com.publicdomainrelay.temp.market.accept so the bidder can verify the grant before provisioning. The free counterpart of com.publicdomainrelay.temp.market.receipts.x402.",66
"key": "tid",77
"record": {88
"properties": {99
"accept": {1010
"description": "Strong reference to the com.publicdomainrelay.temp.market.accepts.free record that this grant settles.",1111
"ref": "com.atproto.repo.strongRef",1212
"type": "ref"13
},14
"cid": {15
"description": "badge.blue attestation CID over the referenced accepts.free record, making this receipt a remote attestation proof: computed from the accepts.free record (signatures stripped), this receipt's metadata (cid/signatures stripped, repository = requester's repo DID added) as $sig, via DAG-CBOR + SHA-256 + CIDv1. Re-binding the grant to a copy of the accepts.free in another repository fails verification.",16
"format": "cid",17
"type": "string"18
},19
"signatures": {20
"description": "badge.blue attestations over this receipt. Must include the bidder's inline signature, attached at creation, so the grant is non-repudiable.",21
"ref": "network.attested.signature#signatures",22
"type": "ref"1323
}1424
},1525
"required": [16
"accept"26
"accept",27
"cid",28
"signatures"1729
],1830
"type": "object"1931
},2032
"type": "record"2133
}2234
},2335
"id": "com.publicdomainrelay.temp.market.receipts.free",2436
"lexicon": 12537
}