A site license is a way to license your application that does not involve tracking individual devices that are using a license key. Instead, it limits usage to a physical location or a domain, allowing any number of users to use the license within that location or domain.This can be an appealing option for customers that do not want to manage individual devices and is particularly suited for larger companies.A site license reduces the administrative overhead of managing employees who should have access and deactivation of old devices when employees leave.
If you have already implemented node-locking or floating licenses using our defaults, the license will be limited to a specific number of machines. You can verify this by looking at the value of MachineCode. If it’s set to Helpers.GetMachineCode() or similar, it means that the license will track machines, allowing you to enforce a limit on concurrent use.To change to a site license, we need to change the value of MachineCode so that it identifies the entire location or domain where the customer will use your application.If we can assume that all users are domain authenticated, the domain name could be passed on as the MachineCode during activation, as an example.
With site licenses, a limit on individual machines/devices is no longer enforced and instead any number of machines within a network/site can use a license key. If you would still like to keep track of the machines that use the license, you could use the the FriendlyName field, which is a part of the Key.Activate call. This will allow you to monitor usage on a machine level from the API Logs.
If you would still like to enforce a limit on the maximum number of concurrent machines (either using node-locking or floating licensing) as well as limit usage to a specific location/site, we can store the domain (e.g. Active directory or a similar way of identifying a site) in a data object associated with the license key. This way, only machines that run in a domain that was added to a license may proceed with activation.License key verification can proceed as follows:
Call Key.GetKey to obtain the license key object.
Look up the data object that you have defined that contains the approved domain/site identifier. Compare it to the one that is computed on the client machine.
If the client machine uses an approved domain, proceed with activation by calling Key.Activate.
Tip To add or edit a data object associated with a license key, click on the license key on the product page and scroll down to data objects section. You will then see a link to add/edit data objects.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Devolens (formerly Cryptolens) Documentation","colors":{"primary":"#220999","light":"#4A5AFF","dark":"#4A5AFF"},"logo":{"light":"https://mintcdn.com/cryptolensab/nFzAQWAQ7VFiqFf7/images/DEVOLENS-formerly-cryptolens-tight.svg?fit=max\u0026auto=format\u0026n=nFzAQWAQ7VFiqFf7\u0026q=85\u0026s=15bb4ad2214d0c8201f59582439e5a8f","dark":"https://mintcdn.com/cryptolensab/nFzAQWAQ7VFiqFf7/images/DEVOLENS-formerly-cryptolens-tight.svg?fit=max\u0026auto=format\u0026n=nFzAQWAQ7VFiqFf7\u0026q=85\u0026s=15bb4ad2214d0c8201f59582439e5a8f","href":"https://devolens.com/"},"favicon":{"light":"https://mintcdn.com/cryptolensab/W09lpa-yg5vOj8Uc/images/DevolensCircle.png?fit=max\u0026auto=format\u0026n=W09lpa-yg5vOj8Uc\u0026q=85\u0026s=f57eaf1cb9a5136f9b2e8d1b42cf5e36","dark":"https://mintcdn.com/cryptolensab/UggnyNDOQ_2RBPGh/logo512.svg?fit=max\u0026auto=format\u0026n=UggnyNDOQ_2RBPGh\u0026q=85\u0026s=0bfcdff9cc17f4eff6ffc7f27a39f7f8"},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.cryptolens.io"}},"footer":{"socials":{"x":"https://x.com/cryptolens","github":"https://github.com/cryptolens","linkedin":"https://linkedin.com/company/cryptolens"}},"integrations":{"gtm":{"tagId":"GTM-N67G87DK"},"intercom":{"appId":"uyf5hx0o"}},"contextual":{"options":["copy","assistant",{"title":"Request feature","description":"Email us to suggest a new feature","icon":"envelope","href":"mailto:[email protected]"}],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://devolens.com/blog"},{"anchor":"Status page","icon":"signal","href":"https://status.cryptolens.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cryptolensab","hasAudioNarration":false,"actualSubdomain":"cryptolensab","customDomains":["help.cryptolens.io"],"gitSource":{"type":"github","owner":"cryptolens","repo":"support","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adccb7550fd02f25b797fc6","collectionId":"30d1d026-d427-4094-8dd4-fa9c9524b79a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adccb7550fd02f25b797fc6"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adccb7550fd02f25b797fc6","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Libraries","count":167},{"language":"default","tag":".NET SDK Reference","count":132},{"language":"default","tag":"Guides","count":104},{"language":"default","tag":"API Reference","count":102},{"language":"default","tag":"Generated Web API reference","count":101},{"language":"default","tag":"Features","count":29},{"language":"default","tag":"Python SDK Reference","count":24},{"language":"default","tag":"Get Started","count":22},{"language":"default","tag":"Web UI","count":20},{"language":"default","tag":"Payments","count":17}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"[email protected]"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6984e43b76d1c03101c334bf","deploymentId":"68515385c30e2a6392095912","questionText":"How to verify a license","status":"active","generatedBy":"manual","createdAt":"2026-02-05T18:40:59.618Z","updatedAt":"2026-02-05T18:40:59.618Z","__v":0}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"licensing-models/site-license","slug":"/licensing-models/site-license","pageMetadata":{"title":"Site license","description":"Explains how to allow your clients to use a license on any number of machines within a physical location","href":"/licensing-models/site-license"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Explains how to allow your clients to use a license on any number of machines within a physical location\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`idea`,children:`Idea`}),`\n`,_jsx(_components.p,{children:`A site license is a way to license your application that does not involve tracking individual devices that are using a license key. Instead, it limits usage to a physical location or a domain, allowing any number of users to use the license within that location or domain.`}),`\n`,_jsx(_components.p,{children:`This can be an appealing option for customers that do not want to manage individual devices and is particularly suited for larger companies.`}),`\n`,_jsx(_components.p,{children:`A site license reduces the administrative overhead of managing employees who should have access and deactivation of old devices when employees leave.`}),`\n`,_jsx(Heading,{level:`2`,id:`implementation`,children:`Implementation`}),`\n`,_jsxs(_components.p,{children:[`If you have already implemented `,_jsx(_components.a,{href:`/licensing-models/node-locked`,children:`node-locking`}),` or `,_jsx(_components.a,{href:`/licensing-models/floating`,children:`floating licenses`}),` using our defaults, the license will be limited to a specific number of machines. You can verify this by looking at the value of `,_jsx(_components.code,{children:`MachineCode`}),`. If it’s set to Helpers.GetMachineCode() or similar, it means that the license will track machines, allowing you to enforce a limit on concurrent use.`]}),`\n`,_jsxs(_components.p,{children:[`To change to a site license, we need to change the value of `,_jsx(_components.code,{children:`MachineCode`}),` so that it identifies the entire location or domain where the customer will use your application.`]}),`\n`,_jsxs(_components.p,{children:[`If we can assume that all users are domain authenticated, the domain name could be passed on as the `,_jsx(_components.code,{children:`MachineCode`}),` during activation, as an example.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`csharp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` upn`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` System`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Security`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Principal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WindowsIdentity`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`GetCurrent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` upn`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Split`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'@'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`];`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`tracking-machines-for-analytics-purposes`,children:`Tracking machines for analytics purposes`}),`\n`,_jsxs(_components.p,{children:[`With site licenses, a limit on individual machines/devices is no longer enforced and instead any number of machines within a network/site can use a license key. If you would still like to keep track of the machines that use the license, you could use the the `,_jsx(_components.code,{children:`FriendlyName`}),` field, which is a part of the `,_jsx(_components.code,{children:`Key.Activate`}),` call. This will allow you to monitor usage on a machine level from the API Logs.`]}),`\n`,_jsx(Heading,{level:`3`,id:`limiting-maximum-number-of-machines`,children:`Limiting maximum number of machines`}),`\n`,_jsxs(_components.p,{children:[`If you would still like to enforce a limit on the maximum number of concurrent machines (either using `,_jsx(_components.a,{href:`/licensing-models/node-locked`,children:`node-locking`}),` or `,_jsx(_components.a,{href:`/licensing-models/floating`,children:`floating licensing`}),`) as well as limit usage to a specific location/site, we can store the domain (e.g. Active directory or a similar way of identifying a site) in a data object associated with the license key. This way, only machines that run in a domain that was added to a license may proceed with activation.`]}),`\n`,_jsx(_components.p,{children:`License key verification can proceed as follows:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.code,{children:`Key.GetKey`}),` to obtain the license key object.`]}),`\n`,_jsx(_components.li,{children:`Look up the data object that you have defined that contains the approved domain/site identifier. Compare it to the one that is computed on the client machine.`}),`\n`,_jsx(_components.li,{children:`If the client machine uses an approved domain, proceed with activation by calling Key.Activate.`}),`\n`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),` To add or edit a data object associated with a license key, click on the license key on the product page and scroll down to `,_jsx(_components.em,{children:`data objects`}),` section. You will then see a link to `,_jsx(_components.em,{children:`add/edit data objects`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Site license","description":"Explains how to allow your clients to use a license on any number of machines within a physical location","href":"/licensing-models/site-license"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Idea","slug":"idea","depth":2,"children":[]},{"title":"Implementation","slug":"implementation","depth":2,"children":[{"title":"Tracking machines for analytics purposes","slug":"tracking-machines-for-analytics-purposes","depth":3,"children":[]},{"title":"Limiting maximum number of machines","slug":"limiting-maximum-number-of-machines","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cryptolensab/af38b9cc1445fe94/jscode.js"],"subdomain":"cryptolensab","siteName":"Devolens (formerly Cryptolens) Documentation","title":"Site license - Devolens (formerly Cryptolens) Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-28T13:11:27.173Z","originalFileLocation":"licensing-models/site-license.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Explains how to allow your clients to use a license on any number of machines within a physical location\">\u003cmeta data-mint-head name=\"application-name\" content=\"Devolens (formerly Cryptolens) Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Site license - Devolens (formerly Cryptolens) Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Explains how to allow your clients to use a license on any number of machines within a physical location\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Devolens (formerly Cryptolens) Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.cryptolens.io/licensing-models/site-license\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cryptolensab.mintlify.app/_mintlify/api/og/v2?division=Models\u0026amp;title=Site+license\u0026amp;description=Explains+how+to+allow+your+clients+to+use+a+license+on+any+number+of+machines+within+a+physical+location\u0026amp;theme=088834e8469a191ad44e73eb\u0026amp;signature=e32d2215193cc1bb5c901878b407870ead87763f4d6800d884d46363743194e0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Site license - Devolens (formerly Cryptolens) Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Explains how to allow your clients to use a license on any number of machines within a physical location\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cryptolensab.mintlify.app/_mintlify/api/og/v2?division=Models\u0026amp;title=Site+license\u0026amp;description=Explains+how+to+allow+your+clients+to+use+a+license+on+any+number+of+machines+within+a+physical+location\u0026amp;theme=088834e8469a191ad44e73eb\u0026amp;signature=e32d2215193cc1bb5c901878b407870ead87763f4d6800d884d46363743194e0\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cryptolensab/k3TwgdDK5B2nhhRD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Devolens (formerly Cryptolens) Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#220999\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.cryptolens.io/licensing-models/site-license\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/licensing-models/site-license.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.cryptolens.io/#organization\",\"name\":\"Devolens (formerly Cryptolens) Documentation\",\"url\":\"https://help.cryptolens.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cryptolensab/nFzAQWAQ7VFiqFf7/images/DEVOLENS-formerly-cryptolens-tight.svg?fit=max\u0026auto=format\u0026n=nFzAQWAQ7VFiqFf7\u0026q=85\u0026s=15bb4ad2214d0c8201f59582439e5a8f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.cryptolens.io#website\",\"name\":\"Devolens (formerly Cryptolens) Documentation\",\"url\":\"https://help.cryptolens.io\",\"publisher\":{\"@id\":\"https://help.cryptolens.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.cryptolens.io/licensing-models/site-license#webpage\",\"url\":\"https://help.cryptolens.io/licensing-models/site-license\",\"name\":\"Site license\",\"description\":\"Explains how to allow your clients to use a license on any number of machines within a physical location\",\"dateModified\":\"2026-01-28T13:11:27.173Z\",\"isPartOf\":{\"@id\":\"https://help.cryptolens.io#website\"},\"breadcrumb\":{\"@id\":\"https://help.cryptolens.io/licensing-models/site-license#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.cryptolens.io/licensing-models/site-license#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Licensing models\",\"item\":\"https://help.cryptolens.io/licensing-models/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Models\",\"item\":\"https://help.cryptolens.io/licensing-models/perpetual\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Site license\",\"item\":\"https://help.cryptolens.io/licensing-models/site-license\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://help.cryptolens.io/licensing-models/site-license#article\",\"headline\":\"Site license\",\"name\":\"Site license\",\"description\":\"Explains how to allow your clients to use a license on any number of machines within a physical location\",\"url\":\"https://help.cryptolens.io/licensing-models/site-license\",\"mainEntityOfPage\":{\"@id\":\"https://help.cryptolens.io/licensing-models/site-license#webpage\"},\"dateModified\":\"2026-01-28T13:11:27.173Z\",\"publisher\":{\"@id\":\"https://help.cryptolens.io/#organization\"},\"isPartOf\":{\"@id\":\"https://help.cryptolens.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Devolens (formerly Cryptolens) Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Devolens (formerly Cryptolens) Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://devolens.com/blog"},{"anchor":"Status page","icon":"signal","href":"https://status.cryptolens.io"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Get Started","icon":"flag-checkered","pages":[{"title":"Introduction","href":""},{"group":"Basics","icon":"graduation-cap","pages":[{"title":"Basics of Devolens","href":"/basics/index"},{"title":"Products, keys, customers, and activations","href":"/basics/product-and-keys"},{"title":"Web API","href":"/basics/webapi"}]},{"title":"Getting started guide","icon":"flag-checkered","href":"/getting-started/getting-started-guide"},{"title":"AI-assisted integration","icon":"microchip-ai","href":"/getting-started/build-with-ai"},{"title":"MCP server","icon":"plug","href":"/getting-started/mcp"},{"title":"Troubleshooting guide for licensing","icon":"stethoscope","href":"/getting-started/troubleshooting-guide"},{"group":"Platform specifics","icon":"laptop-mobile","pages":[{"title":"Platforms","href":"/getting-started/platform-overview"},{"title":".NET desktop application","href":"/getting-started/net-intro"},{"title":"Unity 3D / Mono","href":"/getting-started/unity"},{"title":"Android and iOS","href":"/getting-started/ios-android"},{"title":"Rhino 3D / Grashopper","href":"/getting-started/rhino-ceros-3d-grashopper"},{"title":"Python/Autodesk Maya","href":"/getting-started/python-autodesk-maya"},{"title":"Go","href":"/getting-started/go"},{"title":"Node Js","href":"/getting-started/node"},{"title":"Java","href":"/getting-started/java"},{"title":"C/C++","href":"/getting-started/cpp"},{"title":"AutoCAD","href":"/getting-started/autocad"},{"title":"Excel Addins","href":"/getting-started/excel"}]},{"title":"Checklist before publishing","icon":"ballot-check","href":"/getting-started/checklist-before-publishing"},{"title":"FAQ","icon":"messages-question","href":"/faq"}]},{"group":"Reference details","hidden":true,"searchable":true,"pages":[{"title":"Your Devolens account and billing","href":"/account/billing"},{"title":"Access tokens and RSA public key","icon":"key","href":"/getting-started/access-token"}]},{"group":"Licensing models","icon":"file-certificate","pages":[{"title":"Introduction","href":"/licensing-models/index"},{"group":"Models","pages":[{"title":"Perpetual licensing (try/buy)","href":"/licensing-models/perpetual"},{"title":"Subscription licensing (SaaS)","href":"/licensing-models/subscription"},{"title":"Usage-based licensing (pay per use)","href":"/licensing-models/usage-based"},{"title":"Node locked licenses","href":"/licensing-models/node-locked"},{"title":"Floating licenses","href":"/licensing-models/floating"},{"title":"SDK licensing","href":"/licensing-models/sdk-licensing"},{"title":"User authentication","href":"/licensing-models/user-credentials"},{"title":"Per-user seats using activations","href":"/licensing-models/user-based-activations"},{"title":"Containerized Environments","description":"Explains how to license applications running in containerized environments, with examples for Docker and Kubernetes.","href":"/licensing-models/containers"},{"title":"Site license","href":"/licensing-models/site-license"},{"title":"Pre-determined activations","description":"Explains how to allow a pre-determined list of machines to use a license key.","href":"/licensing-models/pre-determined-activations"},{"title":"Subscription vs usage-based pricing","href":"/licensing-models/subscription-vs-usage-based"}]}]},{"group":"Examples","icon":"code","pages":[{"title":"Introduction","href":"/examples/index"},{"group":"Inside the app","pages":[{"title":"Key verification","href":"/examples/key-verification"},{"title":"Offline verification","href":"/examples/offline-verification"},{"title":"Trial keys","href":"/examples/verified-trials"},{"title":"User verifications","href":"/examples/user-verification"},{"title":"Data collection","href":"/examples/data-collection"}]},{"group":"Integration with external services","pages":[{"title":"Integrate with Zapier","href":"/examples/zapier"},{"title":"Integration with n8n","href":"/examples/integration-with-n8n"},{"title":"Key Generation","href":"/examples/key-generation"}]},{"group":"Enterprise tools","pages":[{"title":"License server","href":"/feature/license-server/index"},{"title":"Data analysis and reports","href":"/examples/data-analysis"},{"title":"Manual activation of a large number of machines","href":"/examples/manual-activation"},{"title":"Migrate to Cryptolens from a third party licensing system","href":"/examples/migrate"},{"title":"Reverse proxy","href":"/examples/reverse-proxy"}]}]},{"group":"Payments","icon":"credit-card","pages":[{"title":"Overview","href":"/payments/index"},{"group":"Payment Forms","pages":[{"title":"Introduction","href":"/payments/forms/intro"},{"title":"Example","href":"/payments/forms/example"},{"title":"Request Items","href":"/payments/forms/request-items"},{"title":"Custom field","href":"/payments/forms/custom-field"},{"title":"Sessions","href":"/payments/forms/sessions"},{"title":"(Example) Automating customer and license creation","href":"/payments/forms/automating-customer-and-license-creation"}]},{"group":"Recurring Payments","pages":[{"title":"Recurring payments","href":"/payments/recurring/index"},{"title":"Setting things up","href":"/payments/recurring/setup"},{"title":"Managing customers","href":"/payments/recurring/managing-customers"},{"title":"Metered usage","href":"/payments/recurring/metered-usage"},{"title":"(Example) Stripe products and plans","href":"/payments/recurring/stripe-product-example"},{"title":"Troubleshooting guide","href":"/payments/recurring/troubleshooting"}]},{"group":"Third party","pages":[{"title":"Recurring payments with Stripe without Cryptolens GUI","href":"/payments/thirdparty/custom-interface"},{"title":"Integrating with external payment providers","href":"/payments/thirdparty/external-providers"},{"title":"Integration with FastSpring","href":"/payments/thirdparty/fastspring"},{"title":"Zapier and n8n","href":"/payments/thirdparty/zapier-and-n8n"}]}]},{"group":"Features","pages":[{"group":"Web UI","pages":[{"title":"Control Panel and Web UI","href":"/feature/web-ui/index"},{"group":"Product","pages":[{"title":"SKGL vs. SKM15","href":"/feature/web-ui/skgl-vs-skm15"},{"title":"Searching for Licenses using Linq Queries","href":"/feature/web-ui/linq-search-product"},{"title":"Customize which licenses are shown first","href":"/feature/web-ui/order-by-product"},{"title":"Delete keys","href":"/feature/web-ui/delete-keys"},{"title":"Feature Definitions","href":"/feature/web-ui/feature-definitions"},{"title":"Feature Templates","href":"/feature/web-ui/feature-templates"},{"title":"License Templates","href":"/feature/web-ui/license-templates"},{"title":"Maximum number of machines","href":"/feature/web-ui/maximum-number-of-machines"},{"title":"Start countdown upon activation (aka trial activation)","href":"/feature/web-ui/trial-activation"},{"title":"Keys that don’t expire","href":"/feature/web-ui/keys-that-dont-expire"},{"title":"Export Keys To Spreadsheet","href":"/feature/web-ui/export-keys-to-spreadsheet"},{"title":"Automatic expiration notice","href":"/feature/web-ui/automatic-expiration-notice"},{"title":"Product configuration","href":"/feature/web-ui/product-configuration"}]},{"group":"Customer","pages":[{"title":"Customer secret","href":"/feature/web-ui/customer-secret"}]},{"group":"Account","pages":[{"title":"Add additional admins","href":"/feature/web-ui/multiple-admins"},{"title":"Restricted accounts","href":"/feature/web-ui/restricted-accounts"},{"title":"Company SSO and SCIM","href":"/feature/web-ui/sso-and-scim"}]},{"group":"Analytics","pages":[{"title":"Anomaly detection","href":"/feature/web-ui/anomaly-detection"},{"title":"KPI Dashboards (beta)","href":"/feature/web-ui/kpi-dashboards"}]}]},{"group":"Reseller portal","pages":[{"title":"Introduction","href":"/feature/reseller-portal/index"},{"title":"Reseller portal for resellers","href":"/feature/reseller-portal/reseller"},{"title":"Reseller portal for vendors","href":"/feature/reseller-portal/vendor"}]},{"group":"License server","pages":[{"title":"License server","href":"/feature/license-server/index"}]},{"group":"Messaging API","pages":[{"title":"Messaging API","href":"/feature/messaging/index"},{"title":"Updates tracking","href":"/feature/messaging/updates-tracking"},{"title":"Notifications","href":"/feature/messaging/notifications"}]},{"group":"Customer portal","pages":[{"title":"Customer portal","href":"/feature/customer-portal/index"}]},{"group":"Activation forms","pages":[{"title":"Activation Forms","href":"/feature/activation-form/index"}]}]},{"group":"Security","icon":"lock","pages":[{"title":"Introduction","href":"/security/index"},{"group":"Privacy and GDPR","pages":[{"title":"GDPR","href":"/security/gdpr"},{"title":"Data processor agreement","href":"/security/dpa"},{"title":"Data protection policy","href":"/security/data-policy"}]},{"group":"Security","pages":[{"title":"Safeguarding measures","href":"/security/safeguarding-measures"},{"title":"Technical and Organizational Measures implemented by Cryptolens","href":"/security/tech-and-org-measures"}]},{"group":"Other","pages":[{"title":"IPs used by the API","href":"/security/api-ips"},{"title":"Devolens Standard Service Level Agreement","href":"/security/sla"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Libraries","pages":[{"title":"Libraries","href":"/libraries"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Site license - Devolens (formerly Cryptolens) Documentation","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}