License SystemSetting Up Verification

Setting Up License Verification

This guide covers the setup process for both sides of the license system: sellers enabling licensing on their products, and buyers activating their licenses after purchase.

For Sellers

Enabling licensing on your product adds domain-locked protection that ensures only authorized deployments can run your dApp. You enable licensing during product creation or by editing an existing listing.

Enabling Licensing on a Product

Go to your Seller Dashboard and select the product you want to protect. Click Edit Product to open the product settings.

Enable the license flag

In the product settings, find the License Protection section. Toggle Enable Licensing to on. This sets the license_enabled flag on your product.

When licensing is enabled, every future purchase of this product will automatically generate a unique license key for the buyer.

Save your product

Click Save to apply the changes. All new purchases from this point forward will include a license key. Existing purchases made before licensing was enabled are not affected.

⚠️

Enabling licensing on a product means you need to integrate the verification API call into your dApp’s code before distributing it. Without the verification check in your code, the license key is generated but not enforced. See the Integration Guide for implementation details.

Setting Up License Expiration

By default, all licenses are perpetual and never expire. If you want to offer time-limited licenses (for subscription-style products or trial periods), you can configure an expiration period in the License Protection section of your product settings.

Expiration options include:

  • 30 days — Suitable for trial or monthly subscription products
  • 90 days — Quarterly access
  • 1 year — Annual license
  • Custom — Set any duration in days
  • Perpetual (default) — No expiration

When a license expires, it will fail verification until the buyer renews.

For Buyers

After purchasing a product with licensing enabled, you will need to locate your license key and activate it on your deployment domain before the dApp will pass verification checks.

Finding Your License Key

Go to your dashboard

Log in to Web3.Market and navigate to your Dashboard.

Open My Licenses

In the dashboard sidebar, click My Licenses. This section lists all license keys associated with your purchases. Each entry shows:

  • Product name — The product the license belongs to
  • License key — Your unique key in the format LIC-XXXX-XXXX-XXXX-XXXX
  • Status — Active, suspended, revoked, or expired
  • Domain — The currently activated domain (if any)
  • Expiration — The expiration date, or “Perpetual” if the license does not expire

Copy your license key

Click the copy icon next to your license key to copy it to your clipboard. You will need this key for domain activation and for configuring your dApp.

Your license key is also included in the order confirmation email sent after purchase. Check your inbox if you need to reference it before logging into the dashboard.

Activating Your First Domain

Once you have your license key, activate the domain where you plan to deploy the dApp.

Click Activate Domain

In the My Licenses section, find the license you want to activate and click the Activate Domain button.

Enter your domain

Type the domain where you will deploy the dApp. For example: mydapp.com. The system normalizes your input automatically (strips protocol, path, port, and converts to lowercase).

Confirm activation

Click Activate to confirm. The domain will appear in your list of authorized domains for that license. Your dApp deployed to this domain will now pass verification.

Verifying Your Setup

After activating your domain and deploying the dApp, you can manually verify that your license is working by calling the verification endpoint:

curl "https://verify.web3.market/verify?license_key=LIC-A3F9-K2M7-P8X1-Q4R6&domain=mydapp.com"

A successful response:

{
  "valid": true,
  "license": {
    "expires_at": null
  }
}

If verification fails, the response will include a reason:

{
  "valid": false,
  "error": "invalid_domain"
}

Common failure reasons:

ReasonDescriptionSolution
invalid_keyLicense key does not existDouble-check the key for typos
suspendedLicense has been suspendedContact the seller or support
revokedLicense has been permanently revokedContact support
expiredLicense has passed its expiration dateRenew the license
invalid_domainDomain is not activated for this licenseActivate the domain in your dashboard

Once verification succeeds, your setup is complete. The dApp will perform this same check automatically at runtime. See the Integration Guide for details on how to implement the verification call in your dApp code.