Blog on Software Licensing, Commercialization, and Revenue Optimization

Why Outsourced Software Licensing Systems Are Better Than Internal Solutions

When developing a software application, many ask how they should implement a software licensing system. Should you code it yourself? Should you outsource software licensing?

I would generally say that outsourced software licensing is the most scalable, reliable, and cost-effective solution in the long run. This blog will cover exactly how a third party can help software developers save both time and money!

We have made the following video covering this topic as well:

Coding it yourself

First of all, what is a software licensing system? We have a short blog post covering that topic that I recommend you to read if you are unsure. You can find that blog post here.

This post will be all about implementing such as system in practice. One way is to code it yourself, and there are some situations where you might want to do that. If your application is not supposed to be sold on a large scale, and you want to grow your coding skills, coding a software licensing system can be a fun project for hobby developers.

You might also say that coding it yourself is the economically smart solution since you pay with your own time rather than your own money. That argument falls a bit flat when considering that some software licensing providers, such as Cryptolens, are completely free during the development phase of your application.

You can then implement software licensing without any risk!

Outsource software licensing – the benefits

Coding your own system will take time. Implementing a third-party solution is a lot more effortless, allowing you to quicker bring your product to the market. This also helps you save money, since there is no internal development cost.

So outsourcing helps you save both time and money, but let’s say that you completely ignored our recommendations and coded your own system anyway. You may suddenly find yourself in a problematic situation – your company grew so much that your self-coded system is no longer able to support your needs. Constantly getting angry emails from customers saying they can’t access your product is never good. This highlights the fact that a software licensing system needs to constantly be updated and maintained to work flawlessly.

What about coding your own system at first, and then switching to a third party when the maintenance gets out of hand? Well, at that point in time, switching licensing solutions will be a big project that will have an impact on all of your customers. Let’s face it, it is probably easier for your customers to go to a competitor than it is for you to switch solutions at that point.

A final shared value perspective

To conclude this blog, I would like to step away from the perspective of time, money, us and them, and step into a world of shared value – the concept that combines business success with providing value to society as a whole.

By outsourcing software licensing to experts, your company can focus on what truly matters:

Your own product.

That way, your company does not only become more productive and cost-effective, but it also helps you provide more value to your customers, and you make the world just a little bit better.

Thank you for reading, stay kind!

Different types of software licenses - Cryptolens

Subscription VS Usage-based licensing

Do you want to license and sell a software product? Then you might be interested in understanding the differences between subscription VS usage-based licensing. The two licensing models are beneficial in different ways, and we will in this blog give you guidance on what to choose.

If you want to read more about licensing models, please read our help pages. We made the following video covering subscription VS usage-based licensing:

When to choose usage-based licensing

First of all, what is usage-based licensing, and how does it work? Usage-based licensing is when you charge a customer for a specific action. For example, you might sell software to photographers where they can edit photos. Instead of charging your customers a subscription fee once a month, you can charge a customer per photo that they edit in your software.

One benefit is that you can charge the customer more fairly. Enterprises that use your software every day pay a high price. Startups that use your software once in a while are allowed to pay a lower price.

So when should you opt to charge per usage instead of a subscription fee? The value that your customers get from your product must be highly correlated to the specific action you want to charge for. This simply means that the actions you charge for need to provide a lot of value to your customers.

Your editing software from the example provides value to your customer only when the customer edits a photo. Therefore, it is appropriate to consider usage-based licensing for such a software product.

When to choose subscriptions

Great! But when is it not a good idea to charge customers for certain actions? We covered earlier that usage-based licensing allows you to attract both small and large customers since they can have their own prices depending on their usage.

If you are selling multi-purpose software where you cannot find one specific action that gives all of your customers a lot of value, subscriptions can still allow you to charge customers different prices.

By implementing different pricing plans with different feature sets, you can motivate enterprises to pay a higher subscription fee to get full access to your product. Startups can then get a more basic version without all of the features at a smaller price.

Cryptolens makes it effortless to license and sell any type of software application, no matter if you want to implement subscriptions or usage-based licensing.


Get Started with Cryptolens Today!

Different types of software licenses - Cryptolens

Filter search results

When you have a lot of licenses in the Cryptolens platform, it can be useful to search for specific properties such as blocked/active, the created-on date, and so on. In this blog, we feature some of the queries you can run to effectively filter search results in Cryptolens.

This blog is based on the following two help pages relating to sorting and ordering. For a video guide, please watch the following YouTube video.

Searching licenses using Linq Queries

One of the most basic ways of searching for licenses is to simply paste the license key into the search field.

You can also search for all licenses with a specific property. For example, you can find every license key that has Feature 1 set as true by pasting the following text into the search field.

f1=True

You can use the same logic to search license keys based on other features. Below, you will find the query for finding blocked licenses.

Block=True

If you instead want to find all licenses with the period set to 30, you can do so by pasting the following query into the search field.

Period=30

Advanced searching

A more advanced way of searching for licenses is to find licenses that have been issued after a particular date. To do so, please see the following query example.

created > DateTime(2024,05,01)

The same logic can be applied with the parameter “expires”.

Furthermore, you can search for all license keys that have been activated on a device. For this example, let’s find all license keys that have at least 2 activated devices.

ActivatedMachines.Count() >= 2

Let us now assume that you just received an email from a customer saying that they have lost their license key, but they provided their machine code.

You can then search for licenses that have been activated by a particular machine ID using the following query:

ActivatedMachines.Count(it.Mid="machine code") > 0

You would simply replace “machine code” with the machine ID of your customer.

There is a similar way to search for license keys if you are using the API. The method is called GetKeys, and the same queries can be used if you prefer to use the API.

There are many more properties you can use to filter search results in Cryptolens, and we have them all listed here.

Customizing the order of license keys

As you can see in the Cryptolens dashboard, there are different preset ways of ordering license keys. For example, you can order by feature and creation date.

For more advanced customization of the ordering, please visit this help page.

If you have any questions, please contact [email protected]. Thank you so much for reading!


Get Started with Cryptolens Today!

Software Licensing System – Why More Developers Should Care

Are you working on a software application that you one day want to sell? Then you need to think about software licensing early on. No, I am not talking about End-User License Agreements (EULA) or legal documents, I am talking about a software licensing system – the system that ensures that only customers get access to the application.

Why is a software licensing system so important? Because without it, you simply cannot sell a software application to customers.

In this blog, I will briefly, and in a non-technical, way describe what a software licensing system really is, and how it can enable you to take your software passion and turn it into a business.

We have also made a YouTube video about this blog if you prefer to watch rather than read (like me).

What is a software licensing system?

To make this blog a bit more fun, picture the following analogy. Let’s say that your software application is like a house. The different rooms of the house are the different features in your application. One room can house the most basic features, and another room can house more advanced functionality.

Without software licensing, your application does not have any locks. Users can enter whatever room they feel like without paying at all! It becomes clear that no one would ever pay for such a product, since everyone can just use it without paying.

A software licensing system would establish a lock on the front door, making sure that only people with a key can access your application.

How does this system work in practice? That is a great question! So great that we will cover it fully in a future blog post. For now, let us just assume that the system indeed works as it should.

Software licensing performs key verification

The next step for us is then to create keys for the front door and give them to our customers when their payment has gone through. In software licensing terms, that key is a digital license key that is unique to each customer.

So what happens when a customer tries to enter our application? In the most basic setup, they will be greeted by a locked front door. After providing their license key, the software licensing system checks so that their license key is valid, and if it is, the door is unlocked and the customer can begin to use the application.

The customer can then leave the application, and the key verification process is repeated whenever they try to run the application once more.

If a non-customer tries to access the application, they will be greeted by the same locked front door. Without a key, they cannot enter!

Some software applications choose to charge a customer a subscription fee. Monthly or yearly subscription fees are the most common ones. Then it can be useful to block the license key of customers who stop paying their fee. If such a customer, or ex-customer, tries to use the application, they will not be let in. That is because their license key stopped being valid when they stopped paying.

Charge extra for more features

Now you know the basic setup, but what about the different rooms I mentioned earlier? Let’s suppose that the house has two rooms, one with basic features, and one with more advanced functionalities.

It is sometimes beneficial to charge customers extra for using the more advanced features. You can then create two different types of license keys for the different rooms. A green license could, for example, cost $100 and give customers access to the basic features of your application. A red license could instead cost $500 and give customers access to all of the features in your application.

The moral of the story

So that’s it, right? Is software licensing really that simple?

Of course, it isn’t. But we hope that the simple analogy gave you an introduction to software licensing and how it enables you to sell a software application.

But remember – although a software licensing system enables you to sell your application, it alone can never make your application good enough for customers to want to buy it.

That is something only you have the power to do.

Thank you for reading, stay curious!

Different types of software licenses - Cryptolens

How do you implement a Software Licensing System?

When you are thinking about licensing and selling your software product, you probably come across the question “How do you implement a software licensing system?” In this blog, we will cover the basics of Cryptolens so you can get an idea of how you can implement a software licensing system and start to license and sell your software product.

Please visit our help pages if you want to learn more. You can also learn about software licensing basics in the following video:

Implement a software licensing system

There are three easy steps to get started in Cryptolens.

  1. Install our SDK in your programming language
  2. Create a free Cryptolens account
  3. Insert a code snippet into your code

Let us begin with the SDK. Cryptolens offers comprehensive SDKs in your favorite programming languages to make it effortless to implement a software licensing manager within minutes. Install our SDK in your language here.

Create a free Cryptolens account to get access to our easy-to-use dashboard where you can create and manage license keys and restrictions. You can also find your access tokens and other parameters that you have to insert into your code. Cryptolens offers you a way to implement licensing for free at your own pace, and you only have to pay when you get customers of your own.

The last step is to insert a code snippet into your application’s code. We provide comprehensive help guides to make the implementation seem effortless. The following image gives a summary of how our code snippet looks. See the code snippet in your programming language here.

License key verification is effortless with Cryptolens in any coding language!

Are you new to Cryptolens? Welcome! We are dedicated to offering an easy-to-use Licensing as a Service (LaaS) platform so you can license and sell your software application within minutes.


Get Started with Cryptolens Today!

Cryptolens Pricing Plans Explained

Cryptolens pricing plans are made for software companies of all sizes and stages! From our free plan for startups and developing projects to our tailored plan for enterprises, we make sure you pay a fair price.

Licensing a software application is so crucial when trying to sell a software product that a lot of people implement software licensing early on, way before they are ready for product launch. The dream of one day working as a full-time software developer and seeing the value your customers get from using your application may seem far away.

Explore our new pricing page, or watch the following YouTube video to get an overview of this blog, or continue to read for a more detailed walk-through.

Cryptolens pricing plans

To illustrate the pricing plans in a good way, allow me to tell you a short story:

Let’s say that you are a software developer with a great software product idea. You eagerly begin to write some code and it is starting to look promising. However, you quickly run into a problem.

If you want to charge customers for your product, you need a system that can restrict access from unauthorized users. Without such a system, your code remains unprotected, and even non-customers can use it. Software licensing is the solution you are seeking, and this is where our Free pricing plan comes in.

Cryptolens is completely free during the development of your application. That way, you can implement software licensing for free while you get ready to launch your product. With our easy implementation guides in the coding languages you love, getting started with software licensing becomes effortless.

You only have to pay for Cryptolens when you get customers of your own, and when you get your own income stream to support the licensing cost. This Cryptolens pricing plan is ideal for testing and experiencing the value of Cryptolens.

A basic plan for startups

You continue to develop your application, feeling pleased that you figured out a way of selling it and controlling who has access to it. After a while, when the prototype gets more developed, you begin to think more about business models, pricing strategies, investors, and other business-related questions.

Right as you are getting ready to launch your product, we suggest upgrading to our pricing plan called “Basic”. Although the free plan allows you to experience the true value of Cryptolens for free, it does not support having multiple customers. The basic plan allows you to control the access of your first couple of customers, no matter what licensing model you want to implement.

Although you do not get unlimited access to the power of Cryptolens, you get everything you need in the beginning for a basic setup. When your licensing needs become bigger, your revenue stream is increased. Then it might be interesting to look into other Cryptolens pricing plans.

A growth plan for teams

Let’s now say that you have successfully launched your software startup, and you have reached a phase of fast growth. You have hired a team to assist you in product and business development, and you might even have an office. In order to fully capitalize on the growth stage when a large number of customers begin to knock on your door, we suggest moving to the Growth pricing plan.

Prioritized support and greater access to analytics data can be lifesavers when your team is growing fast. Without being able to optimize the usage of your product with analytics data, crucial insights get lost, and you cannot make optimal decisions. Prioritized support allows you to give customers the best possible experience when something goes wrong. Your customers might also have more advanced licensing requirements, which can be supported by this Cryptolens pricing plan.

A tailored enterprise plan for advanced needs

Exciting times, but how does this story end? You have now successfully capitalized on the growth stage, and your company has become an enterprise. The team has grown over the years, and so has your customer list. Multiple people in your team are now working with licensing, and you may even have other departments focusing on providing real value to customers.

Because each enterprise has unique needs, one size no longer fits all. At this stage of your journey, we are able to sit down with you and tailor an enterprise pricing plan for your unique licensing requirements, ensuring that you pay a reasonable price.


Although that story has come to an end, yours has only begun. Take the first step by signing up with Cryptolens today to implement software licensing within minutes.

Thank you for reading, stay creative!

Software licensing with Cryptolens

Offline license verifications

Welcome to our blog featuring offline license verifications in Cryptolens. We will cover how to set up offline verification in theory and in practice, regarding two major use cases:

  1. When a customer is allowed to temporarily be offline (for example, use the license while they are in airplane mode).
  2. When a customer is allowed to permanently be offline (for example, behind a corporate firewall).

This blog is based on the following page in our documentation.

Here is a YouTube video covering the same topic:

Background

Let us refresh our memory of the standard license key verification code. For the remainder of this blog, we will cover example codes in Python, but the process is similar in other languages.

Below you can find the basic key verification code in Python.

result = Key.activate(token=auth,\
  rsa_pub_key=RSAPubKey,\
  product_id=3349, \
  key="ICVLD-VVSZR-ZTICT-YKGXL",\
  machine_code=Helpers.GetMachineCode(v=2))

if result[0] == None or not Helpers.IsOnRightMachine(result[0], v=2):
  # an error occurred or the key is invalid or it cannot be activated
  # (eg. the limit of activated devices was achieved)
  print("The license does not work: {0}".format(result[1]))
else:
  # everything went fine if we are here!
  print("The license is valid!")

When Key.Activate is called, it calls Cryptolens API, which in turn returns a signed JSON object placed in the result variable. This allows you to proceed as normal and check features, expiry dates, and other parameters. In the code above, we are checking if the license is activated on the correct machine.

Using the following code in Python, we can save the JSON object to disk, allowing us to read it again when the customer lacks internet access.

# res is obtained from the code above
if result[0] != None:
  # saving license file to disk
  with open('licensefile.skm', 'w') as f:
    f.write(result[0].save_as_string())

Case 1 – Temporarily offline

If customers are expected to be offline once in a while, it is considered good practice to always attempt to make the key.activate call, and only load the saved license file from disk if the customer is offline and key.activate fails.

The following Python code example shows you how to load the saved license file from disk:

# read license file from file
with open('licensefile.skm', 'r') as f:
  license_key = LicenseKey.load_from_string(pubKey, f.read(), 30)

if license_key == None or not Helpers.IsOnRightMachine(license_key, v=2):
  print("NOTE: This license file does not belong to this machine.")
else:
  print("Feature 1: " + str(license_key.f1))
  print("License expires: " + str(license_key.expires))

Notice that the parameter load_from_string has “30” set as a parameter. This means that the customer is only allowed to use the software offline for 30 days. You can customize this value so it suits your use case. For example, you may want to change it to 7, if you only want to allow a customer to be offline for a week.

When the date has been reached, the customer will need a new license file (which may be obtained by successfully calling key.activate), which can be done with the LoadFromFile method.

You could also remove the “30” parameter if you do not want to set a limit at all.

If you want to see more code examples in Python, please visit our GitHub page.

Case 2 – Permanently offline

To support customers to be fully offline and still use your software for a long period of time, you would have to send the license file to your customers since they cannot call key.activate.

There are four methods you can use:

  1. Calling key.activate on your end and sending the file to your customer. You can automate this method.
  2. Using Activation forms hosted by Cryptolens for an easier solution.
  3. Obtaining the file manually in the dashboard.
  4. An On-premise License Server by Cryptolens for when you anticipate many end users or want to support floating licenses offline.

1:

The first method is where you call key.activate on your end and send the license file to your customer, for example, over an email. If you would like, you could set up an automized way where your customers can request to download their license file from your dashboard. This could, however, become somewhat complex.

2:

An easier way is to use activation forms by Cryptolens. When inside the Cryptolens dashboard, open the tab called “Forms”, and click on Activation Forms. This form performs a call to key.activate much like you would do on your own in the previous method, but we provide a simpler GUI for your and your customer’s convenience.

Using the form, customers can simply enter their license key and machine code, click on active, and they will obtain their license file that they can insert on their machines.

3:

You can also manually download the license file from the Cryptolens dashboard. Go to the desired product page, find the license key you want to download the license file of, and click on the yellow wrench icon to the right of the key. Click on “Download activation file” and send it in your desired way to your customer.

4:

All of the above-mentioned methods are useful when there are only a few employees on site who would use your software offline. But, if you anticipate that your customers will have many end users, or if you want to support floating licenses offline, you can use an on-premise license server that Cryptolens provides. Please read the documentation relating to the on-premise license server to learn more about this approach.

Thank you for reading this blog about setting up offline license verifications in Cryptolens, please feel free to ask questions to [email protected].


Get Started with Cryptolens Today!

How does software licensing work?

A common question when selling and licensing a software application is “How does software licensing work?”. Understanding the basics of software licensing allows you to make smarter decisions when it comes to monetizing your software.

It is crucial that your software is able to know who is allowed access and for how long. Depending on what licensing model you choose, the software licensing system will behave differently. We are briefly explaining how software licensing works in this blog.

You can also watch the associated YouTube video:

Explaining how software licensing works

A licensing as a service (LaaS) provider such as Cryptolens will do most of the heavy lifting. When a user of your software signs up, your software sends a request to a license server. The license server then checks if all of the requirements are met. For example, was the customer’s last payment successful?

If all of the requirements are satisfied, the license server sends a response back to your software that tells it to run as normal. If, for example, the customer did not pay their last payment, the license server will tell your software to display a message telling the customer what they need to do to gain access to the software again.

In some instances, your software may be unable to send a request to the license server. For example, your software might be running without Internet access. Your software would then use a license file on disk or call an on-premise license server. At Cryptolens, we provide methods of doing both of the options to our customers.

We have now answered the question “How does software licensing work?”. If you are new to Cryptolens, welcome to our site! We enable our customers to license and sell any type of software application. With help guides in your favorite programming language, you can implement software licensing within minutes. Hundreds of industry-leading customers worldwide are already using our software licensing manager.


Get Started with Cryptolens Today!

Different types of software licenses - Cryptolens

Start countdown upon activation

Welcome! This blog is covering our feature called “Start countdown upon activation in Cryptolens”, also referred to as “Trial Activation”. We will first go through when this feature is useful in theory, we will then cover a basic setup, followed by a more advanced use case for when you allow multiple machines to use the same license. Please read our documentation page for more information.

Please watch the video below if you would rather take in this information as a video:

In theory

Let’s suppose that we have a time-limited license issued today that should be valid for 30 days. Normally, the countdown will begin as soon as the license is created. However, this can be problematic if you want to create a list of licenses before they reach your customers, and you are unsure when your customers will activate their licenses.

Ideally, you want the license to be valid for 30 days after the customer has activated the license, and not 30 days after you created the licenses. That is where the feature we will cover today comes in handy.

Basic setup

For the basic setup, we will cover an example where you want to create a time-limited license limited to one machine only, and you want the countdown to begin upon activation.

Sign in to Cryptolens and create a license key as you normally do by pressing the blue “Create a new key” button for your desired product.

In the red bottom right card, you will see a checkbox called “Start countdown upon activation”. Please click this checkbox and click on Create.

Make sure you always click that checkbox for all of the licenses you create where you want the countdown to begin only when the customer activates their license.

Advanced use case

What if we want to start the countdown of a license upon activation for a license that is limited to more than one machine?

With the basic setup, each new activation will reset the countdown. Let’s say that you have set up a license that is limited to 30 days. If your customer activates the license on one machine and activates the license on another machine 7 days later, the license will be valid for another 30 days. This means it will be valid for 37 days in total.

If you allow for more than two machines, this phenomenon can then naturally happen more than once. The license might then be valid for even longer.

Using data objects, you can make sure that only the first machine will activate the countdown, and that the other machines will not affect or reset the countdown.

Go to the product you want to implement this feature on. Click on “Data Objects”.

Copy the following code and paste it into the “Name” field:

cryptolens_trialactivation

Copy the following code and paste it into the “StringValue” field:

first_activation

For the chosen product, the countdown will now be activated the first time a customer activates the license on a machine, but new machines will not affect the behavior of the countdown at all.

Now you know how to start the countdown upon activation in Cryptolens. We are happy to answer any questions you might have! Send them either to our chat support or email the questions to [email protected].

Thank you for reading!


Get Started with Cryptolens Today!

Choosing between floating and node-locked licenses

Companies often face a challenge when choosing between floating and node-locked licenses. The two licensing models both handle the issue of setting a maximum number of machines that can use a license key at the same time. However, there are significant differences.

The main benefits of each model will be explained in this blog. You can also watch the following video on YouTube:

Floating and Node-locked licenses

For the node-locked licensing model, let us assume that your client uses your license key on Machine A and B. If you want to activate Machine C, you first have to deactivate either A or B.

Floating licenses instead allow you to put a constraint to only allow, for example, 10 machines to use the license at the same time. The client can then install the application on, for example, 100 machines, but only be able to have 10 machines use the license key at the same time.

Floating licenses are therefore better if you know in advance that your customer will be moving machines and the most important aspect for you is that they do not use the license on more than a set number of machines.

Node-locked licenses are then best if you know that a customer will only use the license on a specific set of machines, and given that they will not switch machines often.

We hope we have now answered the question “Choosing between floating and node-locked licenses”. For a more in-depth description of the two licensing models and a guide on how to implement them in practice, please read our documentation.

Are you new to Cryptolens? Welcome! We make it effortless for software creators to license and sell any type of application, in any programming language. Our software licensing system integrates with leading providers such as PayPal and Stripe to make payments secure.

Join hundreds of innovative and world-leading software companies – get started with Cryptolens today!


Get Started with Cryptolens Today!

Different types of software licenses - Cryptolens