{
"id": "support.supper.feed.getCreatorFeed",
"defs": {
"main": {
"type": "query",
"output": {
"schema": {
"type": "object",
"required": [
"posts"
],
"properties": {
"posts": {
"type": "array",
"items": {
"ref": "#postView",
"type": "ref"
}
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"recipient"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string",
"maxLength": 2048,
"description": "Opaque cursor from a previous response."
},
"recipient": {
"type": "string",
"format": "at-identifier",
"description": "DID or handle of the creator whose support feed to fetch."
}
}
},
"description": "Get a creator's verified cross-repo support feed: support.supper.feed.post records authored on every supporter repo whose recipient is the named creator, newest first. Every returned post carries a payment strongRef verified against an active broker-attested payment; the AppView never re-derives amount/currency/status. Public read; unverified posts are never returned and outputs carry only public record bodies, never private metadata."
},
"postView": {
"type": "object",
"required": [
"uri",
"cid",
"supporter",
"recipient",
"payment",
"brokerProof",
"paymentVerified",
"indexedAt"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the exact feed-post record generation returned in this view."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the indexed support.supper.feed.post record."
},
"kind": {
"type": "string",
"maxLength": 32,
"knownValues": [
"tip",
"subscription",
"shop-purchase",
"commission-purchase"
]
},
"text": {
"type": "string",
"maxLength": 3000,
"description": "Optional public supporter-authored message.",
"maxGraphemes": 300
},
"listing": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"payment": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Exact versioned reference to the attested payment record in its payer-of-record repository. When paymentVerified is true, ATM's exact verifier confirmed this URI and CID plus the active trusted broker proof. Resolve amount/currency against the public payment record; never infer settlement from the Supper post alone."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"indexedAt": {
"type": "string",
"format": "datetime",
"description": "When the AppView indexed this record."
},
"recipient": {
"type": "string",
"format": "did",
"description": "Creator/project DID the support is directed at."
},
"supporter": {
"type": "string",
"format": "did",
"description": "Author repo DID of the post (the supporter who paid)."
},
"viaProject": {
"type": "string",
"format": "did"
},
"brokerProof": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Exact current active trusted-broker proof generation returned by ATM's verifier. Clients may resolve payment and brokerProof to independently recompute both record CIDs and the attested payment CID."
},
"paymentVerified": {
"type": "boolean",
"description": "True only when ATM's exact verifier returns this payer-record URI+CID with a current active proof from a trusted broker, and Supper independently authenticates the payment body, attestation CID, broker-proof body, payer, recipient, and collection. A payer plus payment CID can authorize at most one verified Supper post."
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}