app.gainforest.organization.donation
A record of a donation or financial transaction for financial transparency
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | organization.gainforest.app |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A record of a donation or financial transaction for financial transparency",
"key": "tid",
"record": {
"properties": {
"amount": {
"description": "Donation amount in the smallest unit of the currency (e.g., cents for USD)",
"minimum": 0,
"type": "integer"
},
"amountUsd": {
"description": "Equivalent amount in USD at time of donation",
"maxGraphemes": 32,
"type": "string"
},
"blockchainNetwork": {
"description": "Blockchain network the transaction was made on",
"knownValues": [
"celo",
"solana",
"ethereum",
"polygon",
"other"
],
"maxGraphemes": 32,
"type": "string"
},
"createdAt": {
"description": "Record creation timestamp",
"format": "datetime",
"type": "string"
},
"currency": {
"description": "Currency code (e.g., 'USD', 'EUR', 'CELO', 'SOL')",
"maxGraphemes": 16,
"type": "string"
},
"donatedAt": {
"description": "When the donation was made",
"format": "datetime",
"type": "string"
},
"donorDid": {
"description": "Donor's ATProto DID if they have an account",
"format": "did",
"type": "string"
},
"donorIdentifier": {
"description": "Unique identifier for the donor (DID, email hash, or anonymous token)",
"maxGraphemes": 256,
"type": "string"
},
"donorName": {
"description": "Donor name (may be anonymous)",
"maxGraphemes": 256,
"type": "string"
},
"isAnonymous": {
"description": "Whether the donor wishes to remain anonymous",
"type": "boolean"
},
"notes": {
"description": "Additional notes",
"maxGraphemes": 2048,
"type": "string"
},
"paymentMethod": {
"description": "Payment method used for the donation",
"knownValues": [
"stripe",
"bank-transfer",
"celo",
"solana",
"ethereum",
"polygon",
"paypal",
"other"
],
"maxGraphemes": 64,
"type": "string"
},
"purpose": {
"description": "What the donation is for (e.g., 'tree planting', 'equipment', 'salaries')",
"maxGraphemes": 512,
"type": "string"
},
"receiptUrl": {
"description": "URL to donation receipt",
"format": "uri",
"maxGraphemes": 512,
"type": "string"
},
"recipientMemberRef": {
"description": "AT-URI to the member record who received funds",
"format": "at-uri",
"type": "string"
},
"transactionHash": {
"description": "Blockchain transaction hash if crypto",
"maxGraphemes": 256,
"type": "string"
},
"transactionType": {
"description": "Type of transaction",
"knownValues": [
"fiat",
"crypto",
"grant",
"in-kind",
"other"
],
"maxGraphemes": 32,
"type": "string"
}
},
"required": [
"donorIdentifier",
"amount",
"currency",
"donatedAt",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "app.gainforest.organization.donation",
"lexicon": 1
}