SunLicenseSign in
For Minecraft plugin developers

Your Minecraft plugin, on paying servers only.

A key in every jar, a server limit on every license.

Create free account

Free plan · No credit card · Set up in minutes

Coding with an AI agent? Paste one prompt
  • JavaJava
  • Paper
  • Velocity
  • BuiltByBit
  • SpigotMC
  • Voxel Shop
  • Tebex
  • Discord
What you get

Built for how you sell.

Key inside the jar

BuiltByBit and Voxel Shop placeholders write it in.

%%__SUNLICENSE__%%

Servers per license

1, 2 or 10 servers per key.

TOO_MANY_MACHINES

Refunds switch it off

Voxel Shop and Tebex refunds revoke the key.

Never takes servers down

Templates keep running if SunLicense is unreachable.

Buyer roles in Discord

Claiming gives the role; revoking takes it.

/claim

Sentinel finds the leak

Flags keys on too many servers.

Lite & Standard
How it works

Live before your next release.

  1. 1Create a free account
  2. 2Add the store placeholder
  3. 3One check in onEnable
MyPlugin.java
// BuiltByBit or Voxel Shop writes the buyer's key here
private static final String LICENSE_KEY = "%%__SUNLICENSE__%%";

@Override
public void onEnable() {
    SunLicense client = new SunLicense.Builder()
            .baseUrl("https://api.sunlicense.com")
            .token(API_KEY)          // slk_..., can only validate
            .build();
    getServer().getScheduler().runTaskAsynchronously(this, () -> {
        if (!client.validate(LICENSE_KEY, Map.of("host", serverId())).isValid()) {
            getLogger().severe("License denied, disabling.");
            getServer().getScheduler().runTask(this,
                    () -> getServer().getPluginManager().disablePlugin(this));
        }
    });
}
FAQ

Questions, answered.

How do I stop my Minecraft plugin from being leaked?

No check stops someone determined to edit a jar. What works is a key per buyer: BuiltByBit and Voxel Shop write it into the jar on download, so a leaked jar carries the leaker's key. Revoke that one license and every copy of the jar stops at its next check, while every other buyer's server keeps running.

Does it work with BuiltByBit, SpigotMC premium and Tebex?

Yes. BuiltByBit's External license key placeholder and Voxel Shop's External API placeholder put each buyer's key into the download. On SpigotMC your plugin trades the buyer ID SpigotMC injects for that buyer's key. Tebex issues a key on every payment. BuiltByBit and SpigotMC send no refund signal, so you revoke refunded buyers yourself.

How do I limit my plugin to one server per purchase?

Give the policy 1 machine and send a stable server id, as the Paper template does, or give it an IP limit: each new address takes a slot and an address unused for 30 days frees itself. When a buyer moves host they can free the old slot in the customer portal (Lite and Standard), or you free it on the license page.

Will my plugin break servers if SunLicense is down?

Not with the templates. They treat no answer as not a no: they use a signed offline license file if the buyer has one, otherwise keep running and retry every 10 minutes. Only a real rejection, such as a revoked or unknown key, disables the plugin.

Protect your next release.

  • Free plan
  • No credit card
  • Cancel any time