Docs
How CO-FEE works.
Somebody writes the library. Somebody else launches a token. CO-FEE wires the second one's trading fees to the first one's repository, no email, no signup, no meeting. The money starts collecting whether or not anyone has noticed.
01 · The whole thing
From a token to a repository.
That is the point. Paying open source normally needs the maintainer to show up, sign something and claim. Here the money is already waiting when they arrive.
- Someone launches a tokenIn the same transaction, its trading fees are pointed at one GitHub or Hugging Face repository. Not afterwards, inside the launch itself.
- The repository gets a vault, or a keyOn Robinhood Chain, a vault address derived from the repository's id. On Solana, a CO-FEE creator key derived the same way. Both exist before anyone launches, so a launch can aim at them straight away. no signup
- Fees pile up on their ownEvery trade adds to them. A pass runs every five minutes, collects what the launchpad owes, and books the bigger share to the repository.
- The repository is paidAn address in FUNDING.json is paid by the keeper, in ETH or in SOL. SOL earned for a repository that only publishes an Ethereum address is bridged to ETH, from $100 owed. A sponsor page in FUNDING.yml is paid by the team. With neither, the balance waits 14 days, then returns to the CO-FEE treasury. FUNDING.json · FUNDING.yml
02 · If you want to launch
Launching a token.
You need a Solana wallet with a little SOL for pump.fun, or a wallet on Robinhood Chain with a little ETH for pons. Everything else is just the form.
Pick the repository
Type a name, an owner, a link, anything: the search finds it, on GitHub or on Hugging Face, the way X finds people. A library you use, a model you run, a tool that saved you a week, your own project.
Name your token
A name, a ticker, a picture. The usual. Nothing here is special.
Sign
On pump.fun, one signature in your Solana wallet: the coin is created with the repository's CO-FEE key as its creator, and the site attaches it to the repository on its own. On pons, the launch itself, then a second, much cheaper signature that attaches the token to its repository; budget 0.0005 ETH plus gas for the first and gas only for the second. Either way you never hold the fee rights, so there is nothing for you to undo later.
Get a fee address
While you fill the form we quietly look for an address ending in fee, the coin's mint on pump.fun or the token's contract on pons. It takes a few seconds and costs nothing, a small mark that the token was launched here.
03 · If you maintain a repository
Receiving repository fees.
You do not need a wallet to be owed money, nor even to be paid. To be paid, add this to your default branch, with your own address, an Ethereum one, a Solana one, or both:
{ "cofee": { "robinhood": { "ownedBy": "0xYourAddress" },
"solana": { "ownedBy": "YourSolanaAddress" } } }
That file is the proof. Only someone who can write to the
default branch can put it there, and anybody can check it without
trusting us. We also read the drips key, so if you are
already set up with Drips you are already payable here. The same file
works on Hugging Face, for a model, a dataset or a space. If your repo
already has a FUNDING.yml with GitHub Sponsors, Open Collective, Patreon
or the like, there is nothing to add: it is paid there.
Want the fees themselves, not just the balance? Once you have proved control, the vault can hand the token's fee stream directly to your address, for good. After that the money never passes through us again, and we could not take it back if we wanted to.
04 · Straight answers
Frequently asked questions.
Do I need the maintainer's permission?
No, and they are not notified. Anyone can point a token at any repository. Nothing is claimed on their behalf and nothing is signed in their name. The balance is held and paid at the step to whatever the repository already publishes, a crypto address in FUNDING.json or a sponsor page in FUNDING.yml. With neither, it waits 14 days, then returns to the CO-FEE treasury.
What if the repo gets renamed?
Nothing breaks. The money is booked against the repository's id, its numeric id on GitHub or its internal id on Hugging Face, not owner/name. Renames and transfers do not touch it. The name on this site is only a label for the number underneath.
Can a balance expire?
Only when the repository has neither a crypto address nor a sponsor page. Then there is nowhere to send the money, so after 14 days the balance returns to the CO-FEE treasury. Publish either before that and the balance is kept and paid at the step instead. Fourteen days is the same window Paid uses, though theirs is set by X Money and ours is our own.
The repo only has GitHub Sponsors.
Then it is paid there. When the balance crosses a step, the CO-FEE team pays the sponsor page in FUNDING.yml by hand, in that page's own currency, from what the vault released. The transfer is recorded on chain, with the page and the receipt as the proof. Open Collective, Patreon, Ko-fi, Liberapay, Tidelift, Buy Me a Coffee, Polar, thanks.dev and IssueHunt work the same way.
Does it work with Hugging Face?
Yes. A model, a dataset or a space on huggingface.co gets a vault of its own, booked to its internal id, and is treated exactly like a GitHub repository: same share, same steps, same 14 days. It is paid to the crypto address in its FUNDING.json, read from its main branch at huggingface.co/owner/name/raw/main/FUNDING.json for a model, with datasets/ or spaces/ in front of owner/name for a dataset or a space. Hugging Face has no sponsor pages, so there is no FUNDING.yml route there: an address is the only way to be paid.
And pump.fun?
Yes. A coin launched on pump.fun names a CO-FEE key as its creator, so its creator fees land with us in SOL. Most repositories publish an Ethereum address, not a Solana one: FUNDING.json comes from Drips, which only knows Ethereum chains. So the SOL is bridged to ETH and sent to that address, once the balance reaches $100, because the bridge has a fixed cost that would eat a smaller payout. A repository that publishes a Solana address is paid in SOL directly, at the usual steps. Same split, same rules on GitHub and Hugging Face.
And BNB Chain?
Yes, through flap or four.meme. There is no creator fee on BNB Chain launchpads: the 1% trading fee goes to the launchpad. So a token launched there through CO-FEE carries a tax on each buy and sell, 2% on flap and 3% on four.meme (the only rates four.meme allows are 1, 3, 5 and 10), and the launchpad pushes that tax to a CO-FEE key held for the repository. From there it is paid like everything else: to the Ethereum address in the repository's FUNDING.json, in BNB (same address on every EVM chain, nothing to bridge), or through its sponsor page. Token addresses end in 7777 on flap and ffff on four.meme, their own marks.
My token is not listed.
It has to be declared against its repository, anyone can do it. It cannot be faked either: on pons, the factory asks who receives that token's fees and refuses unless it is that repository's vault; on pump.fun, the site checks on Solana that the coin's creator is that repository's CO-FEE key.
A project wants out.
It comes off the site and we stop collecting fees from the tokens pointing at it. Anything already owed is still paid at the step to the address or sponsor page the repository publishes; with neither, it returns to the CO-FEE treasury after 14 days like any other balance.
Where do the tokens trade?
On pump.fun, on Solana; on pons, on Robinhood Chain; or on flap and four.meme, on BNB Chain. On pump.fun, the usual bonding curve, until the coin graduates to PumpSwap. On pons, a fixed supply of one billion, paired against ETH, sold from a bonding curve until it graduates into a Uniswap v4 pool with permanently locked liquidity. On flap and four.meme, a bonding curve until 800 million of the billion tokens are sold, then PancakeSwap.
05 · The uncomfortable part
Two things we would rather you knew now.
Published on purpose
The payout key could misbehave. No contract can read a file
on GitHub or Hugging Face, so the file is read off chain and an operator key sends the
money. verser takes the destination as an argument:
that key could send a held balance anywhere, including to itself.
Both halves are readable in CoffreDepots.sol. What
makes it contestable is that every payout is published together with
the proof it relied on.
Few crypto addresses are published yet. Of sixty well-known GitHub repositories measured on 18 September 2026, nine published a usable Ethereum address in FUNDING.json, all under the drips key, twenty-three had only a sponsor page, and twenty-eight had neither. FUNDING.json is something a maintainer adds after they hear money is waiting. Repositories with a sponsor page in FUNDING.yml are paid there by the team, by hand, so most of what is reachable today is reached that way. The contracts are also unaudited, and pons says the same of its own.
06 · Words
Four terms, in plain language.
Creator fee
The cut of every trade that a launchpad pays to whoever is registered as the token's fee recipient. On pons that recipient is a field of the launch; on pump.fun it is the coin's creator, set when the coin is created.
The vault
A small contract on Robinhood Chain, one per repository, that receives those fees and holds the repository's share. Its address comes from the repo id, so it can be computed before it exists. On Solana there is no contract: a CO-FEE creator key, one per repository and derived the same way, plays that role.
A step
Balances are not dripped out. They are paid when they cross $5, then $10, $20, $50, $100, $250, $500, $1,000, and every $1,000 after. The whole balance goes, not just the step. A crypto address is paid by the keeper on its own; a sponsor page is paid by the CO-FEE team by hand.
ETH and SOL
The currencies the two chains run on: ETH on Robinhood Chain, where pons tokens trade against ETH, and SOL on Solana, where pump.fun coins trade against SOL. Fees are collected and paid in the currency they were earned in, so nothing is converted on chain. Two exceptions: a fee earned in SOL for a repository that only publishes an Ethereum address is bridged to ETH and sent there, from $100 owed, so that the bridge's fixed cost stays a small share of the payout; and a sponsor page is paid by the team in the page's own currency. Payout steps are still counted in dollars, so a balance can cross a step and drop back under it as the price moves.
Check it yourself
Verify it on chain.
The factory, every vault and every ETH payout are on Robinhood Chain, every SOL payout is on Solana, and each payout carries the proof it relied on.