Petaldocs

Overview

What Petal is, the pieces the relay is built from, its fixed constants, and the money path on one page.

Petal is the public name of the Pons Charity Relay: immutable contracts on Robinhood Chain and Base that turn a Pons token's creator fees into USDC donations through donate.gg. A Pons creator sets a charity address as the token's creatorFeeRecipient. From then on the token's creator fees follow one fixed path to donate.gg on Base, which pays the charity in USDC. The path has no owner, no admin, and no step where a private key can send the money anywhere else.

The pieces

TermWhat it is
Config IDdonate.gg's 32-byte identifier for a donation configuration. Hex on EVM, base58 on Solana; same ID, two spellings. donate.gg's contract does not validate it, so a wrong ID strands ETH.
Charity addressThe contract on Robinhood Chain a Pons creator sets as creatorFeeRecipient. One per config ID. A CREATE2 minimal proxy with salt equal to the config ID, so anyone can compute it.
ReceiverThe matching contract on Base for the same config ID. Across fills land on it as WETH; anyone calls flush(), which unwraps and hands the balance to donate.gg.
RegistryThe factory on Robinhood Chain that deploys charity addresses, holds the approved list, and holds the live fee cap. Its twin on Base deploys receivers and has no admin at all.
Approved listConfig IDs the Safe has allowed a charity address to be deployed for. The only guard against a wrong ID. Removal only blocks new deployments.
SafeThe registry's safe: the address that administers the approved list and the live fee cap. Currently a single-key wallet; intended to move to a multisig through proposeSafe and acceptSafe. It can never move or redirect funds.
KeeperAn off-chain process that calls the permissionless functions on a timer: claimAndBridge on Robinhood Chain, flush on Base. Anyone can make the same calls.
Pons Fee EscrowPons's pull-based ledger. Creator fees only land there after Pons sweeps a curve or pool; only the balance holder can claim.
IndexerA read-only service that follows Pons and the relay contracts and serves the snapshot the site's figures are rendered from. Outside the trust path: nothing on-chain reads it.

The numbers

ConstantValueMutability
Minimum bridge amount0.01 ETHImmutable. Below it nothing moves.
Live fee cap0.001 ETH at launchSafe-adjustable, never above the hard ceiling.
Hard ceiling0.002 ETHImmutable.
donate.gg split90% to the charity, 10% to donate.ggSet by donate.gg, applied on Base.

The money path

Pons curve or pool → sweep → Pons Fee Escrow (credited to the charity address) → claimAndBridge → Across → receiver on Base → flush → donate.gg donateNative → donate.gg epoch processing → charity (90%) and donate.gg (10%).

How it works walks every hop and shows an example settlement. Contracts lists every deployed address, generated from the deployments record at build time.

Chains

ChainChain IDRoleExplorer
Robinhood Chain4663Pons, the registry, every charity addressBlockscout
Base8453The Base registry, every receiver, donate.ggBasescan

Where to go next