Built for plugin developers

Powerful License Management for Your Plugins

Diinta License Hub helps you issue, activate, verify, and monitor software licenses with trial support, domain locking, and production-ready API integration.

License Dashboard

Live Overview

Healthy

Issued

2,451

Active Installs

1,928

Latest Activations

Realtime

waafipay.com Verified
shop.example.net Activated
client-pro.io Trial

Core Features

Everything you need to run secure, scalable plugin licensing.

🔑

License Generation

Generate unique license keys instantly for each purchase or customer.

🌐

Domain Activation Control

Bind licenses to domains and installation identifiers to stop abuse.

⏱️

Trial License Support

Enable frictionless 7/14 day trial onboarding and automatic expiry.

🔌

API Integration for Plugins

Integrate activation and validation endpoints directly into your plugin.

📊

Real-Time Install Tracking

Monitor active installs, seat usage, and verification activity from admin.

🛡️

Secure License Validation

Protect against key sharing with signed requests, lock rules, and audit trails.

How It Works

Step 1

Create Product

Set product code, secret, defaults, and activation policy.

Step 2

Generate License

Issue trial or standard licenses and assign to customer/domain.

Step 3

Verify via Plugin API

Your plugin calls API endpoints to activate and validate usage.

Multi-Language Integration

Developer SDK & API Playground

Drop-in verification and activation clients ready to integrate in 60 seconds.

HMAC-SHA256 Signed
// Laravel / PHP Client Verification
use Illuminate\Support\Facades\Http;

$response = Http::timeout(10)->post('https://diinta.so/api/v1/public/licenses/verify', [
    'product_code' => 'YOUR_PRODUCT_CODE',
    'license_key'  => 'XXXX-XXXX-XXXX-XXXX',
    'domain'       => request()->getHost(),
    'instance_id'  => config('app.instance_uuid'),
]);

if ($response->successful() && $response->json('ok')) {
    $licenseData = $response->json('data');
    $signedToken = $response->json('token');
    // License is valid! Entitlements: $licenseData['entitlements']
}
// WordPress Plugin License Verification with Transient Caching
function myplugin_verify_license() {
    $cached = get_transient('myplugin_license_token');
    if ($cached) return true;

    $response = wp_remote_post('https://diinta.so/api/v1/public/licenses/verify', [
        'timeout' => 12,
        'body'    => [
            'product_code' => 'MY_WP_PLUGIN',
            'license_key'  => get_option('myplugin_license_key'),
            'domain'       => parse_url(home_url(), PHP_URL_HOST),
            'instance_id'  => get_option('myplugin_instance_id', wp_generate_uuid4()),
        ],
    ]);

    if (!is_wp_error($response) && wp_remote_retrieve_response_code($response) === 200) {
        $body = json_decode(wp_remote_retrieve_body($response), true);
        if (!empty($body['ok'])) {
            set_transient('myplugin_license_token', $body['token'], DAY_IN_SECONDS);
            return true;
        }
    }
    return false;
}
// Node.js / TypeScript Verification Client
import fetch from 'node-fetch';

async function verifyLicense(licenseKey: string, domain: string, instanceId: string) {
  const res = await fetch('https://diinta.so/api/v1/public/licenses/verify', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      product_code: 'MY_NODE_APP',
      license_key: licenseKey,
      domain: domain,
      instance_id: instanceId,
    }),
  });

  const data = await res.json();
  if (data.ok) {
    console.log('License active:', data.data.status, 'Entitlements:', data.data.entitlements);
    return data.token; // Store signed token for offline grace
  }
  throw new Error(data.message || 'License verification failed');
}
# Python Client Verification
import requests

def verify_diinta_license(product_code, license_key, domain, instance_id):
    url = "https://diinta.so/api/v1/public/licenses/verify"
    payload = {
        "product_code": product_code,
        "license_key": license_key,
        "domain": domain,
        "instance_id": instance_id,
    }
    response = requests.post(url, json=payload, timeout=10)
    data = response.json()
    if response.status_code == 200 and data.get("ok"):
        return data["token"], data["data"]
    raise PermissionError(data.get("message", "License invalid"))
curl -X POST https://diinta.so/api/v1/public/licenses/verify \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "product_code": "YOUR_PRODUCT_CODE",
    "license_key": "EQ69-X6RC-ZLHX-UYAR",
    "domain": "example.com",
    "instance_id": "539ab4a5-d3b9-4bb3-ae61-5e3c0cf2108e"
  }'

Products & Addons

📦

Main Plugin

Your core product with full license activation and update support.

Learn more

🧩

Addons

Issue addon-specific licenses for upsells and modular features.

Learn more

⚙️

Extensions

Manage extension versions, release notes, and secure download delivery.

Learn more

Security First

Diinta License Hub protects software against piracy with robust server-side controls.

  • Secure license verification workflow with strict status checks
  • Domain and installation locking to prevent key sharing
  • API authentication with signed requests and replay protection
  • Encrypted key storage and audit trail visibility

Protection Overview

Signature Window

300s

Nonce Replay

Blocked

Domain Lock

Enabled

Audit Events

Realtime

Start Managing Your Licenses Today

Launch a secure licensing system for your plugins and keep full control over activations, trials, and updates.

Create Account