Skip to main content

Making Donations

Send USDC or other tokens to entities onchain.

Overview

  • Direct USDC: Approve and donate
  • Token Swap: Any ERC20 → USDC via swap wrapper
  • Native ETH: Wrapped to WETH → USDC
  • Donation fees apply, EntityDonationReceived event emitted
  • Permissionless - anyone can donate

Direct USDC Donations

Single call: invoke donate(amount) on the entity contract.

TypeScript

Python

Token Swap + Donation

Swap any ERC20 to USDC and donate:

ETH Donation

Reconcile Balance

Process USDC sent directly to entity:

Donation Fees

Funds also have 1.0% outbound fee on grants. Check exact fee: registry.getDonationFee(entityAddress)
Fee timing and compounding: inbound donation fees apply when the donation is processed (e.g., donate() or swapAndDonate()), reducing the entity’s USDC balance by the fee immediately. Outbound fees apply when funds are transferred via grants. If you donate and then later transfer, each step applies its respective fee (they do not “compound” at one step, but both fees apply across the two actions). Always verify exact fees via the Registry before large transactions.

Common Errors

Advanced Patterns

Calculate Fees

Batch Donations

Contract Integration

Next Steps

Entity State

Query entity balances and info

Entity Deployment

Deploy Orgs and Funds

Entity Best Practices

Implement production safeguards

Entity Events

Monitor donation activity