Skip to content
Charity Markets

How it works

A market is an ordinary token on Robinhood Chain. What makes it a charity market is where its creator fees are paid, and the fact that nobody, including us, can change that afterwards.

Fees

Every trade on a launch's bonding curve pays two fees. The protocol takes its own base fee, which is not ours and does not reach the charity. On top of that sits a creator tax, which the launcher sets at launch and which this site always sets to 1%. That creator tax is the charity's money.

It is charged on buys and on sells, taken off the input before the trade is priced. The protocol's ceiling for a creator tax is 10%, so 1% is a policy choice rather than a limit. If the ceiling ever drops below our policy, launches stop; the rate is not quietly lowered to fit.

Buying the token is a trade, not a donation. What funds the charity is the fee on it, not the amount you spend. A market with no trading funds nothing.

The vault

A launch writes its creator-fee recipient into the curve at construction, and there is no setter for it afterwards. So the recipient has to be known before the launch is signed, and it has to be an address that can only ever serve one charity.

That address is computed, not chosen. It is CREATE2 from the launchpad with a salt that is the hash of the charity's provider id, its payout config, the delivery destination and the policy version. Change any of those and the address changes. So an address holding this vault's code at that salt can only have been built for that one organisation, and anyone can recompute it from public inputs to check.

The vault has no owner, no execute, no arbitrary call, no upgrade path and no way for the platform to reach the money. Three things can happen to what it holds, and any address may trigger all three:

  1. Sweep, which asks the curve to book its pending fees into the protocol's fee escrow. The protocol's own sweep is not owner-gated, so this never waits on anybody.
  2. Claim, which pulls the vault's escrow balance in. Only the amount the escrow reports paying enters the accounting.
  3. Deliver, which sends it to one fixed address on Ethereum. The caller supplies a minimum, so whoever pays the gas decides when a balance is worth moving, but they cannot choose where it goes.

Money sent directly to a vault by hand is tracked separately and never counted as trading revenue, so the figure that says what trading has funded keeps meaning only that.

The route

Donate.gg's donation relay is deployed on Ethereum and Base. It is not deployed on Robinhood Chain. We checked, and the address has no code there, so there is no direct donation from this chain, and anything claiming otherwise would be sending money to an address with nothing at it.

Robinhood Chain settles to Ethereum, and the relay is live on Ethereum. So the route needs no third-party bridge at all: the vault withdraws through the chain's own canonical bridge, which has a seven-day challenge period by design, and the destination contract on Ethereum donates to the charity's config.

That destination is derived the same way the vault is, through the deterministic deployment proxy at 0x4e59b44847b379578588920cA78FbF26c0B4956C, which already exists on Ethereum. So its address is known before the launch and it can be deployed later by anyone, at that same address, with code that can only donate to one config.

The honest cost of this: delivery takes at least a week, and the Ethereum leg costs gas twice. That sets a real minimum on how small a batch is worth sending. A batch below it waits in the same vault, assigned to the same organisation. Faster bridges to Base exist and would each add a validator set we would have to ask you to trust, so they are not the default and are not implemented.

Reading the numbers

Money in this system is in one of several places, and this site never adds them together into a single total. They are positions of the same sum as it moves:

Accrued
Charged on trades, still sitting in the curve.
Collected
Swept and claimed into the vault.
Sent to Ethereum
Left this chain. At least seven days from settling.
Submitted to the provider
The relay's own event. The money has left our custody.
Distributed by the provider
Shown only with the provider's own evidence.
Bank payout confirmed
Shown only with evidence of one. It is not implied by any of the above.

The provider keeps 3% of what arrives, read back from the payout config itself. It is shown as its own line and never netted out silently.

Registration

A market appears on this site only after a contract has verified it. Registration is permissionless and it proves rather than trusts: it reads the curve, checks that the curve's live creator-fee recipient is the vault, checks the curve's own token matches, and checks the protocol's factory recognises that token as one of its launches.

There is no endpoint in this product that can make a market official by being sent an address, and no admin action that can remove one. The list on /markets is a contract's own array.

What still needs trusting

Four things, none of which we can remove, all of which we watch and publish.

  • The protocol can redirect a fee recipient. Its factory retains that authority, one layer below our vault. We read every registered market's live recipient and say so on its page when it stops matching. We cannot prevent it, and we do not claim fees are unredirectable.
  • The relay is upgradeable. It is a proxy with an owner we do not control, and an operator address closes and distributes each donation epoch. A donation reaching the relay proves the money left our custody. It does not prove what happened next.
  • The provider converts and distributes off-chain. Donated ETH is swapped to USDC by the provider and paid out on its own schedule. Most organisations in the catalog are listed but not onboarded with it, which changes how a payout is completed.
  • A listing is not a partnership. Organisations in the catalog have not agreed to any market launched for them, and nothing on this site should be read as their endorsement.

What we will not say: that donations are instant, that 100% reaches the charity, that fees cannot be redirected by anyone, that buying a token is a donation, or that a token confers a tax deduction, a share of an organisation, or any expectation of profit.