configId returned by the API is the on-chain routing key.
For Solana, see Solana (SVM).
How it works
1
Create a config via the API
Use the Configs endpoint to create a config that defines your
charity beneficiaries and weights. You receive an
id object with hex and base58 fields.
Use id.hex as the on-chain configId (32-byte identifier) that routes donations to the
correct destinations.2
Submit the EVM transaction
Call
donateNative, donateToken, or donateTokenWithPermit on the relay contract for your
chain, using the summaries below.Overview
Developers interact with the relay contract to donate using either the native gas token or an ERC-20. Theid.hex from the API response is the on-chain configId that routes the donation.
Choosing a donation method
- Use
donateNativewhen donating the chain’s native token (for example ETH). - Use
donateTokenwhen donating an ERC-20. - Use
donateTokenWithPermitwhen the token supports permit, so approval and donation can happen in one transaction.
Arguments (summary)
All donation methods require:configId:id.hexfrom the API (bytes32).tipBps: tip in basis points (0–10000; 10000 = 100%).creditedTo: address credited for the donation (usuallymsg.sender).message: optional; respect the contract’s maximum message length.
token and amountIn. For native donations, send value as msg.value.
Contract deployments
Additional EVM chain support coming soon.
ABI, bytecode, and advanced EVM topics
This subsection is reserved for verified ABI links, client snippets (for example viem or ethers), andDonationMade log indexing examples as those assets are published.
What happens on-chain
When a donation is made, the contract records it against the current epoch for thatconfigId and token, and emits a DonationMade event so indexers can track donations for native and ERC-20 flows consistently.
For settlement and off-chain processing, see Donation Journey.