Petaldocs

Contracts

Every deployed address per chain, generated from the deployments record at build time.

Every table on this page is generated from the deployments record and the charity list when the site builds. A redeploy or a new charity changes the tables on the next build; nothing here is hand-typed.

Registries and implementations

The registry on Robinhood Chain deploys charity addresses, holds the approved list and the live fee cap, and names the Safe. The registry on Base deploys receivers and has no admin. Each registry's constructor deploys its implementation; charity addresses and receivers are EIP-1167 minimal proxies of those implementations, created with CREATE2 and salt equal to the config ID.

Robinhood Chainchain ID 4663

Live registry deployed at block 56124575 in 0x948d…edf5.

ContractAddressVerification
Registry0x4F2E5357aD26b250036CB31f7672C75D44709541(Blockscout)Sourcify
Charity address implementation0xB28Cb03dB32fe5046eb834baaE7a0e99c288bd4f(Blockscout)Sourcify
Safe0xe2c044D7D780eA463e3E1EfA53863D05F889B52c(Blockscout)Sourcify

previous versionRegistry 0xF6c6…f868 · Charity address implementation 0x0df8…5B34

Basechain ID 8453

Live registry deployed at block 50961562 in 0xf677…a84c.

ContractAddressVerification
Registry0x1a483B05787bCAF0E3e7a0862a2A12aF078F5a5f(Basescan)Sourcify
Receiver implementation0xDCa417419456Cb240b07DE4E822A57116dBFa3DA(Basescan)Sourcify

previous versionRegistry 0xF6c6…f868 · Receiver implementation 0x0df8…5B34

Previous versions of the registries are listed beneath the live entries for reference only. Only charity addresses deployed by the live Robinhood registry should be used as a fee recipient; the Live charities table below lists them.

Verification

All four live contracts on both chains are verified on Sourcify (chains 4663 and 8453). Blockscout on Robinhood Chain reads Sourcify matches directly, so the source is visible on the explorer. Basescan verification is separate and optional, so a Base contract may show as unverified on Basescan while Sourcify holds the full match; use the Sourcify link in each row. The registries' constructor arguments are the external contracts listed below.

Immutable constants

ConstantWhereValue
MIN_BRIDGE_AMOUNT (minimum bridge amount)Registry, Robinhood Chain0.01 ETH
MAX_BRIDGE_FEE_CEILING (hard ceiling)Registry, Robinhood Chain0.002 ETH
INITIAL_MAX_BRIDGE_FEE (live fee cap at launch)Registry, Robinhood Chain0.001 ETH
FILL_DEADLINE_BUFFERCharity address2 hours
MESSAGEReceiverpons-charity-relay/robinhood

The live fee cap is the only one of these that changes, and only by the Safe, and never above the hard ceiling.

External contracts

The addresses the registries were constructed against. The Robinhood registry also fixes the Base registry and receiver implementation at construction, which is how a charity address computes its receiver without a cross-chain read.

ContractChainAddress
Pons Fee EscrowescrowRobinhood Chain0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e
Across SpokePoolspokePoolRobinhood Chain0xD29C85F15DF544bA632C9E25829fd29d767d7978
WETH (Robinhood Chain)wethOriginRobinhood Chain0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73
donate.gg relay proxydonateGgBase0x02A0d2a39732082b824a5A3D3b026C54d581DCC8
WETH (Base)wethBase0x4200000000000000000000000000000000000006

Live charities

One row per live charity: the charity address a Pons creator sets on Robinhood Chain, the receiver for the same config ID on Base, and the config ID in both spellings. The order matches the landing page.

CharityCharity address (Robinhood Chain)Receiver (Base)Config ID
American Eagle Foundation0xF2cdFd5A83780645B83Af68057f18f86Fe139d760x4eE5BE506a60c274fAEd0D3c09Dd2d5F692d8303
0xbae87d1c5bae7d01a37fae442d300c31ee5561e19b86a9050a09d75b40f37568
DacSsHCrfJxTtmpfYAH95s4KvuU3kLoKyMMjaKuq2xJj
Black Lives Matter 52800xF95b1eFF99Ada195192b632AEEd166FbB57DA7630x01fc06fFfE10b8DeB42D10d9aF0c712D0CDACAbC
0x2dfeae7ac7e6ce6d942af022177dc2b84691493f04879d4128cd88001b828e1b
46Yb7F88MWh2DQKnTvqAtDZfjpjwShn3eZj9z6DF2wnA
Breast Cancer Research Foundation0xAeD45DdD9BDC845C00035e02Caf8dFA5661429040xAcd5a5dFA8770cb695494D8716A327E6b69020bD
0x2ec1a9b73acdde9ff55b20e234a071dc4bc9d53ac7429e79aba5386e3526d014
49X2mvBYxZ3M6ca3XPN68BXjadVLNkXjwKDCjv8wtdgw
Lung Cancer Foundation of America0xe9Be25C1E46d05033d71bBcAc649C5D53782EA500x2F7FFEEc4262da47D94f3e63c7A379260B160bB3
0x1afeffb9a6ec345f9ba7819cc9759bdf4a66fef51225cebae777c6859e04c505
2pP873Kd1MystUQJfgxV8EQSM2hNqjvGgfyV2M9c5s8Q
Make-A-Wish America0xd3c7B17522c71BcE059c84D41fD99BeF336aBdb40x091d1bb2F35b6bB6AAbC18dE921cEf5D0f2846d8
0xaf1f09792905ab4dc60547bc8a9f58d8bae289ba26d383a59ce4c393b1c37c31
CnboC4nnLsABWE2c4cUUziUGXGusyiJRZ9T2w2HRGD2p
Mars Society Inc0x2113d499cc59Dc6dE2cE68cC29C7b90D398f10d20xE43e6d805709066C84c0bB8f054532e3a7B9C4b3
0x09d951ede806f3c85ad3a797751e7f2a72b84bd217dd8b2821fe81d6ff921fd4
fSsMhUmLM9R7JTPHkVy84PSZJUj1kmAdrok7ZtGMQ8K
Prostate Cancer Foundation0x52866Cc7a4277dDf086eF1D2A5D3ba3F218349ff0x29A78c02414d163deB9eE06905577C4879f34ceD
0x5b70ddb864dc5d5f629922d4e7105f195aeb63548c4fef08ddbcd3c05914deda
79wvMMMkc2ShsPbedM9PkzCwDzzqkH1cEmNU6q4hS8K3
Seeds for Autism0xba2954534DD409dEcBa46f4A778B8709194111b40x29fC030319EAea302B6aCaC8788e443B53ac739A
0xce348622e062c99f53a55d8ff59e13f5b875df7439ba182741a5d88bbf2a153c
EswSR7qEMu3tSrtRE4PZN2miMgJY8u1rq8ksWSms3XiB
St. Jude Children's Research Hospital0xBe8DD0EA8003F1C68E523BA10d82DF762e8aDDc40x09d3e2d851d9da93d84C38835782e3fe9756D55c
0x26c2d70743c362eaf8873e7381147812051fe57db2e29a1c8d17389e34f79e6f
3cJoyhd4G3wNoiucabXJJSvbCrJ9kigLqQjVdPvLZfKt
Testicular Cancer Foundation0x6e949BB3a685B274424053dde40a87Ce42BfEA340x84243da3ea1a90562624851fE9ef22d79F159872
0x6c101c2f01a1f42acbd0ac59b5a582fa7de8d7a7abccca41411970b5936f6746
8GqHCFLgCkBubWQaREbrenJgPVYnp8yfEShZ8msp5PSu
WaterAid America Inc.0x0CB8075F2F384625548e1325bbDf0279b1b2B7340x167764e2598791eb8d3675E038A98e1a3269E180
0x6c398c55b15d7e0d25b9c33b9f8ed302b3987c407c198b29a9ff8bd79e393b90
8HTvnK4eJVnGGCzUsMLYsXZk3mGf85ziSXBt7z7bhasy

Verify an address yourself

On the Robinhood registry:

function charityAddressFor(bytes32 configId) external view returns (address);
function approved(bytes32 configId) external view returns (bool);
function isDeployed(bytes32 configId) external view returns (bool);
function baseReceiverFor(bytes32 configId) external view returns (address);

On the Base registry:

function receiverFor(bytes32 configId) external view returns (address);
function isDeployed(bytes32 configId) external view returns (bool);

charityAddressFor returns the CREATE2 address whether or not it has been deployed; approved confirms the Safe has vouched for the config ID; baseReceiverFor on Robinhood Chain must equal receiverFor on Base for the same config ID.