Charging for Your Plugin
You can charge. But first, our role: we take 0% and never touch your money.
Why we do not collect payments. Holding and paying out other
people's money is a regulated activity — a payment licence in China, an MSO licence in Hong
Kong. We have neither and do not want the compliance burden.
So we stay out of the money flow and set our cut at 0%. Compare Steam 30%, App Store 30%.
So we stay out of the money flow and set our cut at 0%. Compare Steam 30%, App Store 30%.
1. What we provide
| We provide | Detail |
|---|---|
| Exposure | Listed in the plugin market index (visible in DSH Discover) |
| Price label | A "paid" label plus the price |
| Free testing | Four-stage sandbox install test, verdict shown on your entry |
| Purchase link | Points at your own payment page |
| 0% cut | You keep 100% |
2. What you do
| # | Step |
|---|---|
| 1 | Pick a payment method (comparison below) |
| 2 | State the price and purchase link in your README and homepage |
| 3 | Deliver a licence or API key to paying users |
| 4 | (Optional) verify the key inside your plugin |
3. Payment methods
| Method | Best for | Fee | Note |
|---|---|---|---|
| Afdian | Chinese developers | ~5% | Most common in China, supports subscriptions |
| Stripe | International | 2.9% + $0.30 | Minimum viable charge around $1 |
| Gumroad | Digital goods | ~10% | Zero setup, good if you cannot configure anything |
| Lemon Squeezy | International, tax handled | ~5% + $0.50 | Merchant of Record |
| Creem | International, tax handled | ~4% | Merchant of Record |
Micro-payment warning. Stripe charges a fixed $0.30 per
transaction, so a $0.10 order loses you money. Minimum viable is about $1; start at $2.
Domestic channels have no fixed fee, so ¥1 works.
4. Three models, only one really works
Model A: voluntary payment
A tip link in the plugin, all features open.
| Pro | Con |
|---|---|
| Zero engineering | Works without paying; relies on goodwill |
Model B: licence check
Paying users get a key; the plugin verifies it against your API.
| Pro | Con |
|---|---|
| Basic control | The code is on the user's machine — one edit bypasses it |
Model C: server-side authorisation (the only one that holds)
Put the core value on your server. A paid API key gates the feature.
plugin = a UI shell
↓ calls
your API (needs a paid key)
↓
not paid = no key = genuinely unusable
| Pro | Con |
|---|---|
| Cannot be bypassed | You must run a service |
Realistic advice: if your plugin is purely local logic
(formatting, shortcuts, UI tweaks), charging is very hard — the code can be copied.
If its value is calling something that costs money (models, data, compute),
Model C is the only way to actually get paid.
5. How the index labels paid plugins
The DSH market index format allows custom labels and sort keys, which we use for price:
"metadata": {
"labels": ["paid", "installs-fine"],
"sortKeys": { "price-usd": 9, "downloads": 413492 }
}
Limitation: the index format cannot carry a purchase URL.
Put it in the plugin
homepage field or the README.6. An honest warning
| Fact | Implication |
|---|---|
| Almost all DSH plugins are free and open source | Charging needs a strong reason |
| The most-downloaded plugin pulls ~500 MB of dependencies | Users resist heavy plugins |
| There is no app-store purchase flow | Paid UX will be worse than App Store |
So: build the free version well and accumulate users first. Charge once you know people will pay.
7. Related
Plugin market · Plugin development guide · Test results · Our own plugin