IDonationRelay calls on their source chain
and bridge funds through Relay into a Solana USDC vault. Distribution to beneficiaries then
runs on Solana. Your integration does not request Relay quotes or submit a second bridge
transaction. Donations made directly on Solana enter the Solana program without an EVM bridge.
Discover donation contracts with GET /api/v1/chains; an API key is optional.
The donationRelay field supplies the contract address, settlementChainId: 101,
and bridge policy for current EVM entries. A chain may be listed without a configured
donation relay; only offer donation entry when donationRelay is present.
Submit a deposit
Create your usual donation config, with beneficiaries that resolve on Solana. Call the discovered sender using exactly these signatures:donateNative. For a standard ERC20, approve the sender for the amount and call
donateToken. For an EIP-2612 token, sign a permit with the funding caller as owner, the sender
contract as spender and the exact donation amount as value, then call donateTokenWithPermit.
It approves and deposits in the same transaction. The token must support EIP-2612; ordinary
approval remains available. Preserve your usual config ID, credit address and message encoding;
messages are limited to 256 bytes.
msg.sender is the funding caller and refund destination. It can differ from creditedTo.
If your integration calls through a contract, that contract must be able to receive returned
native tokens/ERC20s and return them to its users. Crediting an end user does not make that user the payer.
Amounts, fees and completion
There is no 1 USDC minimum for an individual bridge delivery. The quote must expect positive USDC output and the delivered amount must satisfy its accepted minimum. New Relay quotes request 3% swap tolerance. Fixed gas and Relay fees are separate from that tolerance; there is no percentage cap on total costs. Fees and tip use the USDC actually received. Native tokens, direct standard ERC20 routes, WETH unwrap and standard token source swaps through Relay’s 0x/Kyber routes are supported. Routing depends on available liquidity; nonstandard tokens and unrecognized swap programs are not automatically executed. Use the current fee endpoint with the original EVM source chain andcreditedTo address for a fee estimate.
The production payout batch still has a 1 USDC minimum before Donate fees and tip. Donations
pool by config and input mint on Solana; bridged donations enter the USDC pool. A smaller delivery
can therefore arrive successfully and wait for more donations to the same pool before distribution.
Successful source deposits appear as pending transfer activity. Funding can begin after verified
successful inclusion and an escrow check; it does not wait for source finality. Relay delivers
native USDC to a source-specific receiver on Solana. After verifying that payment at Solana
finality, Donate admits the actual amount into the config’s USDC vault. Admission does not wait
for EVM source finality once finalized Solana payment evidence is saved. Source reorg and replay
checks continue independently. The full verified payment amount becomes part of the donation.
The Solana admission creates the donation receipt. Epoch distribution requires finalized,
reconciled membership, and final accounting waits for the Solana distribution transaction to
finalize. Provider outages, batching or recovery can extend completion.
The ordinary donation receipt identifies your original source token, amount, transaction and time.
Its settled fields describe the actual settlement proceeds. Internal Solana epoch accounting does not
replace the original donation input.
Track a transfer
?sourceId=....
An empty array means the transaction has not been indexed; do not interpret it as permission
to send again. Keep the source transaction link. A reverted source transaction created no deposit.
Progress includes the source identity, funding caller, source token and atomic amount, reclaim
deadline and resulting destination transaction/receipt when available. Read
destinationChainId
to interpret the destination transaction: new donations use Solana (101), while historical
transfers can still reference Base. These are separate from the
existing donation settlement statuses. The transfer page
also accepts a source transaction hash and shows progress and reclaim controls.
Reclaim unbridged funds
An unspent deposit is initially reclaimable after 24 hours. Use the currentreclaimAt and the
source contract’s eligibility check; combining deposits can renew the funding group’s deadline.
Once eligible, anyone can call the source sender:
recipient to the recorded funding caller.
Only that caller can redirect its own claim. A reverted claim remains retryable. Deposits without
an executable route stay in the sender until funded or claimed; Donate does not need to authorize
an eligible claim. An absorbed original deposit has no separate claim.
Once funds have been deposited with Relay, the 24-hour sender claim no longer applies. Ordinary
source refunds go directly from Relay to the funding caller, in the currency and amount actually
returned, which can differ from the input (for example ETH after WETH unwrap, or USDG after a token swap).
A Solana USDC delivery marked as a refund by Relay can still be admitted when its finalized transfer
matches the source receiver and accepted quote. Ambiguous or insufficient payments, unexpected assets
and rejecting caller contracts need manual recovery. Relay support may be necessary if automatic
recovery fails. Contact Donate support with your source transaction and transfer identity.