It is increasingly common for open source projects to accept donations via a variety of mechanisms, such as PayPal, Open Collective, Patreon, or cryptocurrencies.
However, there is currently no easy way to discover which of the projects you rely on accepts donations. And there is no way to automate distribution of donations among many projects.
.donate
is a simple file format that allows an open source project to specify how to send it money, so that the discovery and distribution can be automated.
{
"PayPal": "project@paypal.com",
"BTC": "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",
"USDC": "0x0000000000000000000000000000000000000000"
}
A .donate
file MUST be located in the root of the repository and all-lowercased.
The .donate
file MUST be formatted as JSON.
All the fields are optional. If more than one payment type is specified, it means that users may pay the project via any of the listed payment types.
Type | Description |
---|---|
PayPal | A PayPal address |
BTC | A bitcoin address |
USDC | A USDC address |
- The thanks package by Feross Aboukhadijeh is a centralized directory that first attempted to solve the discovery problem, but only for the NPM ecosystem.
- Solomon Hykes encouraged the separation of this idea from other projects, and was right.
- BackYourStack attempts to solve the discovery problem by scanning a repository for dependencies that accept donations via OpenCollective.