# app.gainforest.organization.donation

> Published by [gainforest.earth](https://lexicon.garden/identity/did:plc:qoti4acfmc5wg6zzmtix6hse)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.organization.donation)
- [Documentation](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.organization.donation/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/app.gainforest.organization.donation/examples)

## Definitions

### `app.gainforest.organization.donation`

**Type**: `record`

A record of a donation or financial transaction for financial transparency

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `notes` | `string` | No | Additional notes |
| `amount` | `integer` | Yes | Donation amount in the smallest unit of the currency (e.g., cents for USD) |
| `purpose` | `string` | No | What the donation is for (e.g., 'tree planting', 'equipment', 'salaries') |
| `currency` | `string` | Yes | Currency code (e.g., 'USD', 'EUR', 'CELO', 'SOL') |
| `donorDid` | `string` (did) | No | Donor's ATProto DID if they have an account |
| `amountUsd` | `string` | No | Equivalent amount in USD at time of donation |
| `createdAt` | `string` (datetime) | Yes | Record creation timestamp |
| `donatedAt` | `string` (datetime) | Yes | When the donation was made |
| `donorName` | `string` | No | Donor name (may be anonymous) |
| `receiptUrl` | `string` (uri) | No | URL to donation receipt |
| `isAnonymous` | `boolean` | No | Whether the donor wishes to remain anonymous |
| `paymentMethod` | `string` | No | Payment method used for the donation |
| `donorIdentifier` | `string` | Yes | Unique identifier for the donor (DID, email hash, or anonymous token) |
| `transactionHash` | `string` | No | Blockchain transaction hash if crypto |
| `transactionType` | `string` | No | Type of transaction |
| `blockchainNetwork` | `string` | No | Blockchain network the transaction was made on |
| `recipientMemberRef` | `string` (at-uri) | No | AT-URI to the member record who received funds |

## Raw Schema

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