Donations

Donations allow supporters to send one-time USDC payments to creators as a way to show appreciation. Unlike memberships, donations are not recurring and can include a personal message.

The Donation Model

Properties

  • Name
    id
    Type
    string
    Description

    Unique identifier for the donation transaction.

  • Name
    donor
    Type
    string
    Description

    Sui address of the donor.

  • Name
    creator
    Type
    string
    Description

    Sui address of the receiving creator.

  • Name
    amount
    Type
    string
    Description

    Donation amount in USDC (max 6 decimal places).

  • Name
    message
    Type
    string
    Description

    Optional message from the donor (max 30 words).

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp of the donation.

  • Name
    tx_hash
    Type
    string
    Description

    Sui blockchain transaction hash.


POST/v1/donate

Send Donation

Send a one-time donation to a creator.

Required attributes

  • Name
    creator
    Type
    string
    Description

    The Sui address of the creator to donate to.

  • Name
    amount
    Type
    string
    Description

    Donation amount in USDC (e.g., "5.00").

Optional attributes

  • Name
    message
    Type
    string
    Description

    A message to the creator (max 30 words).

Limits

  • Minimum donation: 0.01 USDC
  • Maximum donation: 10,000 USDC
  • Transaction fee: ~0.001 USDC

Request

POST
/v1/donate
curl https://api.zing.protocol/v1/donate \
  -H "Authorization: Bearer {jwt_token}" \
  -d creator="0x123...creator" \
  -d amount="5.00" \
  -d message="Love your work!"

GET/v1/creators/:address/donations

List Donations Received

Get all donations received by a creator.

Path parameters

  • Name
    address
    Type
    string
    Description

    The creator's Sui address.

Query parameters

  • Name
    limit
    Type
    integer
    Description

    Number of results to return (default: 10).

  • Name
    cursor
    Type
    string
    Description

    Pagination cursor for next page.

Request

GET
/v1/creators/0x123.../donations
curl https://api.zing.protocol/v1/creators/0x123.../donations \
  -H "Authorization: Bearer {jwt_token}"

GET/v1/donations

List My Donations Made

Get all donations made by the authenticated user.

Query parameters

  • Name
    limit
    Type
    integer
    Description

    Number of results to return (default: 10).

  • Name
    cursor
    Type
    string
    Description

    Pagination cursor for next page.

Request

GET
/v1/donations
curl https://api.zing.protocol/v1/donations \
  -H "Authorization: Bearer {jwt_token}"

Donation Dialog Flow

User clicks "Donate" button on creator profile

Donation dialog opens showing:
  - Creator name and avatar
  - User's USDC balance
  - Amount input field
  - Optional message textarea

User enters amount and optional message

Real-time validation:
  - Amount must be > 0.01 USDC
  - Amount must be <= balance
  - Message max 30 words

User clicks "Donate" button

Transaction submitted to Sui blockchain

Loading spinner during confirmation

Success toast notification

Balance updated, dialog closes

Donation Best Practices

Use Cases

ScenarioSuggested Amount
Quick appreciation0.5 - 1 USDC
Monthly support1 - 5 USDC
Special content support5 - 25 USDC
Major milestone celebration25 - 100+ USDC

Revenue Tracking

Creators can view all donations in their earnings dashboard:

// Donation analytics
const totalDonations = donations.reduce((sum, d) => sum + d.amount, 0)
const averageDonation = totalDonations / donations.length
const donationCount = donations.length

Next Steps

Was this page helpful?