dev.cocore.account.tokenPatronage

Records a patronage rebate: a periodic distribution of treasury balance back to an active member in proportion to their patronage (consumer spending + provider earnings) during the rebate period. Written by the exchange to its own PDS when the distribution fires. One record per (recipient, period) pair — the exchange MUST NOT distribute twice for the same (recipient, period). Direct analog of REI's annual member dividend or a credit union's quarterly capital credit: every term is visible, the math is the same for every member, and the distribution is rule-based rather than discretionary. Receipts of work + this record together let a member reconstruct every CC their balance has touched.

Repository @cocore.dev did:plc:5quuhkmwe2q4k3azfsgg7kdz namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authorityaccount.cocore.dev
Indexed

Record

record · key tid

Properties

createdAt

requiredstring · datetime

exchange

requiredstring · did

Exchange DID. MUST equal the repo this record is published in.

patronageScore

requiredinteger

This recipient's patronage during the period — tokens spent as requester PLUS tokens earned as provider. Self-loop receipts count once (the doc's `selfLoop.feeWaived` already handles the fee carve-out).

  • minimum: 0

period

requiredref

Rebate period [start, end). Receipts whose `completedAt` falls in this window contributed to the patronage tally.

Reference

policy

requiredref

Strong-ref to the exchangePolicy in effect at distribution time. Pins `patronageDistribution.fractionBps` + `treasuryDid` so the rebate math is reproducible offline.

recipient

requiredstring · did

DID receiving the patronage rebate.

tokensCredited

requiredinteger

Tokens debited from the treasury and credited to the recipient.

  • minimum: 1

totalPatronage

requiredinteger

Sum of all participating DIDs' patronage scores during the period. Lets a verifier reproduce the rebate share: `tokensCredited = floor(treasuryBefore * fractionBps / 10000 * patronageScore / totalPatronage)`.

  • minimum: 0

treasuryBefore

requiredinteger

Treasury balance immediately before this distribution period fired. Pinned for audit so verifiers can sum the per-recipient `tokensCredited` and confirm it equals `floor(treasuryBefore * fractionBps / 10000)` modulo rounding.

  • minimum: 0

#period

object

Half-open interval [start, end). Closed-loop cocore.dev uses calendar months in UTC by default.

Properties

end

requiredstring · datetime

start

requiredstring · datetime

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • An exchange's published terms of service. Records every parameter that affects how this exchange computes settlements and maintains per-DID token balances: fee schedule, supported currencies, self-loop rules, processor identifiers, and the token-accounting parameters (onboarding grant, balance floor, weekly refresh, monthly patronage distribution, treasury identity). A settlement record strong-refs the active policy so verifiers can re-derive the payout numbers offline. Policies are immutable pe

  • Records that an exchange has issued its one-time signup token grant to a recipient DID. Written by the exchange to its own PDS on the first balance event for a given DID — receipt as either side, top-up, or admission check. Issued exactly once per (exchange, recipient) pair. A consumer reconstructing balances offline starts each DID at this grant amount; absence of a tokenGrant record means the DID has never interacted with the exchange.