> For the complete documentation index, see [llms.txt](https://docs.ohalee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohalee.com/products/obsidian-license.md).

# Obsidian License

A license-management and anti-piracy platform for Java software: Paper and Velocity plugins, and any plain Java application.

Obsidian License is a hosted platform at [license.ohalee.com](https://license.ohalee.com). You create a product, issue keys, and your software refuses to run without a valid one. Keys are bound to machines, revocable, expirable, and every activation is logged.

It works on **Paper** (Bukkit, Spigot), **Velocity**, and **plain Java**: a Spring Boot service, a CLI tool, a daemon, anything with a JVM. Same licenses, same dashboard, same code underneath.

The interfaces and the client you compile against are public: [github.com/ohAleee/obsidianlicense-api](https://github.com/ohAleee/obsidianlicense-api).

## Pick your mode

There are two ways to use it, and you choose per product. Both share the same licenses, seats, entitlements, revocation, marketplace automation and logs, so you can start with the first and move to the second later without reissuing keys.

<table><thead><tr><th width="180">Mode</th><th>Use it when</th><th width="150">Effort</th></tr></thead><tbody><tr><td><a href="/products/obsidian-license/license-check.md"><strong>License check</strong></a></td><td>You want licensing: seats, expiry, a refund kill switch, tiers. Your plugin ships as a normal jar and calls the server on startup.</td><td>One method call</td></tr><tr><td><a href="/products/obsidian-license/protected-plugins.md"><strong>Protected plugin</strong></a></td><td>You also need the compiled code itself kept off the customer's disk. Customers install a loader that decrypts and runs your plugin in memory.</td><td>Restructure the plugin</td></tr></tbody></table>

Not sure? Start with the license check. It solves the problem most sellers actually have (shared keys, refunded copies still running, no way to cut anyone off) and takes about five minutes.

{% content-ref url="/pages/4k8LkS4TyCBd4qYpuRwJ" %}
[Quick Start](/products/obsidian-license/quick-start.md)
{% endcontent-ref %}

## The docs

{% content-ref url="/pages/CII0mMu4NH4nGjzGeRxZ" %}
[Features](/products/obsidian-license/features.md)
{% endcontent-ref %}

{% content-ref url="/pages/qN89NWMaz5k7q0wyS35d" %}
[How It Works](/products/obsidian-license/how-it-works.md)
{% endcontent-ref %}

{% content-ref url="/pages/OZ6Q8prNK1wKWSW3mAgX" %}
[License Check](/products/obsidian-license/license-check.md)
{% endcontent-ref %}

{% content-ref url="/pages/3zLslhiHA51mmljgLzaa" %}
[Protected Plugins](/products/obsidian-license/protected-plugins.md)
{% endcontent-ref %}

{% content-ref url="/pages/1G8AxHlQCR0MjzGCflhN" %}
[Ship Your Own Loader](/products/obsidian-license/your-own-loader.md)
{% endcontent-ref %}

{% content-ref url="/pages/ISJa2GrELAQk92xygelO" %}
[Tiers & Entitlements](/products/obsidian-license/tiers-and-entitlements.md)
{% endcontent-ref %}

{% content-ref url="/pages/tSGSVN7DTpiBmRSvNeTj" %}
[Several Jars, One License](/products/obsidian-license/multiple-jars.md)
{% endcontent-ref %}

{% content-ref url="/pages/YUA6gH5ssRQZ8q9owpa3" %}
[Downloading the Jar](/products/obsidian-license/downloads.md)
{% endcontent-ref %}

{% content-ref url="/pages/4bawbw2aNPdyThzZgzPd" %}
[Configuration](/products/obsidian-license/configuration.md)
{% endcontent-ref %}

{% content-ref url="/pages/rQ9sZF3XNWvBaf3AtMuN" %}
[Marketplace Automation](/products/obsidian-license/marketplace-automation.md)
{% endcontent-ref %}

{% content-ref url="/pages/HkTNlYr1pCvnGk6lMtjm" %}
[Security Model](/products/obsidian-license/security.md)
{% endcontent-ref %}

{% content-ref url="/pages/LyFpwkBBglciptvWFTlW" %}
[For Developers](/products/obsidian-license/for-developers.md)
{% endcontent-ref %}

{% content-ref url="/pages/oFgVaEjNkGxeWSrNlwX0" %}
[AI Agent (MCP)](/products/obsidian-license/mcp-server.md)
{% endcontent-ref %}

{% hint style="info" %}
These docs describe the **hosted** service. Everything you need, the loader jar, your server URL and public key, license keys and marketplace webhooks, comes from your dashboard. Obsidian License is also self-hostable if you would rather run your own instance and own your database and signing keys: ask support if that is you.
{% endhint %}
