Domain-Locked Licensing
Domain locking is the core mechanism that ties a license to specific deployment domains. When a buyer activates their license, they register the domain where their dApp will run. The License API then only returns a valid response when the verification request comes from an authorized domain.
How Domain Locking Works
Every license key has a list of authorized domains. When a dApp calls the verification endpoint, it passes both the license key and the current domain. The API checks whether that domain appears in the license’s authorized list. If it does, verification succeeds. If it does not, verification fails.
This approach means a product purchased once can only operate on the domains the buyer has explicitly activated. Deploying the same product to an unauthorized domain will trigger a failed verification, and the dApp can respond accordingly (show a warning, disable features, or refuse to load).
Domain Normalization
When you activate or verify a domain, the system normalizes the input to ensure consistent matching. The following transformations are applied automatically:
- Converted to lowercase —
MyDapp.COMbecomesmydapp.com - Protocol stripped —
https://mydapp.combecomesmydapp.com - Path stripped —
mydapp.com/app/dashboardbecomesmydapp.com - Port stripped —
mydapp.com:3000becomesmydapp.com - Trailing slash removed —
mydapp.com/becomesmydapp.com - www prefix preserved —
www.mydapp.comandmydapp.comare treated as different domains
www.mydapp.com and mydapp.com are considered separate domains. If your dApp is accessible on both, set up a redirect so only one is used, since each license can only have one active domain at a time.
Valid Domain Formats
The following are all valid domain inputs for activation. The system normalizes them to the result shown:
| Input | Normalized To |
|---|---|
mydapp.com | mydapp.com |
https://mydapp.com | mydapp.com |
http://mydapp.com/ | mydapp.com |
mydapp.com:8080 | mydapp.com |
MYDAPP.COM | mydapp.com |
app.mydapp.com | app.mydapp.com |
www.mydapp.com | www.mydapp.com |
staging.mydapp.com | staging.mydapp.com |
Subdomains are treated as distinct domains. app.mydapp.com, staging.mydapp.com, and mydapp.com are three separate entries.
One License, One Domain
Each license allows activation on one domain at a time. This keeps the model simple: one purchase, one deployment. If you need to move your dApp to a different domain, deactivate the current one and activate the new one — no support ticket required.
Activating Domains
After purchasing a licensed product, you need to activate your deployment domain before the dApp will pass verification.
Find your license key
Go to your Web3.Market dashboard and navigate to My Licenses. Locate the license for the product you purchased. Your license key will be displayed in the format LIC-XXXX-XXXX-XXXX-XXXX.
Activate your domain
Click Activate Domain next to your license. Enter the domain where you will deploy the dApp (e.g., mydapp.com). The system will normalize your input automatically.
You can also activate via the API directly:
curl -X POST https://verify.web3.market/activate \
-H "Content-Type: application/json" \
-d '{
"license_key": "LIC-A3F9-K2M7-P8X1-Q4R6",
"domain": "mydapp.com"
}'Confirm activation
The system will confirm the domain has been added to your license. You can now deploy your dApp to that domain and verification calls will succeed.
Switching Domains
Since each license supports one active domain, attempting to activate a second domain while one is already active will be rejected. You must deactivate the current domain first.
For example, if mydapp.com is active and you want to switch to newdapp.com:
- Deactivate
mydapp.comfrom your dashboard or via the API - Activate
newdapp.com
If you need to run the same product on multiple domains simultaneously, purchase additional licenses for the product.
Deactivating and Reactivating Domains
You can deactivate a domain at any time from your dashboard or via the API. Deactivating a domain frees up a slot, allowing you to activate a different domain in its place.
Common scenarios for domain changes:
- Migrating to a new domain — Deactivate
olddomain.com, then activatenewdomain.com - Removing a staging environment — Deactivate
staging.mydapp.comto free up a slot - Rotating deployment domains — Swap domains as your infrastructure changes
Deactivating a domain takes effect immediately. Any dApp running on that domain will fail verification on its next check. Make sure you have already migrated before deactivating.
There is no limit on how many times you can switch domains. Deactivate and reactivate as often as you need.