org.hypercerts.funding.receipt
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.funding.receipt:body.signatures" }
- AddedEdge AddedEdge { src: "org.hypercerts.funding.receipt:body", tgt: "org.hypercerts.funding.receipt:body.signatures", kind: "prop", name: Some("signatures") }
- AddedEdge AddedEdge { src: "org.hypercerts.funding.receipt:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.certified.signature.defs#list" }AddedVertex { vertex_id: "org.hypercerts.funding.receipt:body.signatures" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.hypercerts.funding.receipt:body", tgt: "org.hypercerts.funding.receipt:body.signatures", kind: "prop", name: Some("signatures") }
- Non-breaking: AddedEdge { src: "org.hypercerts.funding.receipt:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1
1
{
2
2
"id": "org.hypercerts.funding.receipt",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"to",
11
11
"amount",
12
12
"currency",
13
13
"createdAt"
14
14
],
15
15
"properties": {
16
16
"to": {
17
17
"refs": [
18
18
"#text",
19
19
"app.certified.defs#did",
20
20
"com.atproto.repo.strongRef"
21
21
],
22
22
"type": "union",
23
23
"description": "The recipient of the funds (a free-text string, an account DID, or a strong reference to a record)."
24
24
},
25
25
"for": {
26
26
"ref": "com.atproto.repo.strongRef",
27
27
"type": "ref",
28
28
"description": "Optional strong reference to the activity, project, or organization this funding relates to."
29
29
},
30
30
"from": {
31
31
"refs": [
32
32
"#text",
33
33
"app.certified.defs#did",
34
34
"com.atproto.repo.strongRef"
35
35
],
36
36
"type": "union",
37
37
"description": "The sender of the funds (a free-text string, an account DID, or a strong reference to a record). Optional — omit to represent anonymity."
38
38
},
39
39
"notes": {
40
40
"type": "string",
41
41
"maxLength": 500,
42
42
"description": "Optional notes or additional context for this funding receipt."
43
43
},
44
44
"amount": {
45
45
"type": "string",
46
46
"maxLength": 50,
47
47
"description": "Amount of funding received as a numeric string (e.g. '1000.50')."
48
48
},
49
49
"currency": {
50
50
"type": "string",
51
51
"maxLength": 10,
52
52
"description": "Currency of the payment (e.g. EUR, USD, ETH)."
53
53
},
54
54
"createdAt": {
55
55
"type": "string",
56
56
"format": "datetime",
57
57
"description": "Client-declared timestamp when this receipt record was created."
58
58
},
59
59
"occurredAt": {
60
60
"type": "string",
61
61
"format": "datetime",
62
62
"description": "Timestamp when the payment occurred."
63
63
},
64
+
"signatures": {
65
+
"ref": "app.certified.signature.defs#list",
66
+
"type": "ref",
67
+
"description": "Optional cryptographic signatures attesting to this record's content."
68
+
},
64
69
"paymentRail": {
65
70
"type": "string",
66
71
"maxLength": 50,
67
72
"description": "How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor)."
68
73
},
69
74
"transactionId": {
70
75
"type": "string",
71
76
"maxLength": 256,
72
77
"description": "Identifier of the underlying payment transaction (e.g. bank reference, onchain transaction hash, or processor-specific ID). Use paymentNetwork to specify the network where applicable."
73
78
},
74
79
"paymentNetwork": {
75
80
"type": "string",
76
81
"maxLength": 50,
77
82
"description": "Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal)."
78
83
}
79
84
}
80
85
},
81
86
"description": "Records a funding receipt for a payment from one user to another user. It may be recorded by the recipient, by the sender, or by a third party. The sender may remain anonymous."
82
87
},
83
88
"text": {
84
89
"type": "object",
85
90
"required": [
86
91
"value"
87
92
],
88
93
"properties": {
89
94
"value": {
90
95
"type": "string",
91
96
"maxLength": 2048,
92
97
"description": "The string value."
93
98
}
94
99
},
95
100
"description": "A free-text string value (e.g. a display name, wallet address, or other identifier)."
96
101
}
97
102
},
98
103
"$type": "com.atproto.lexicon.schema",
99
104
"lexicon": 1
100
105
}