The Data group panel available with Babel Licensing, provides a centralized repository for Babel Licensing Services.

The Data section refers to the access point to the centralized Babel Licensing Database, which allows the management of licenses in one place. This database acts as a repository for all the license-related information, such as product details, customer information, license keys, and software license activation. With this set of features, you can easily organize and keep track of all your licenses.

The Babel Licensing Database forms the foundation for the Babel Licensing Services, which offer a set of application services for managing floating licenses and software license activations. These services allow developers to activate, deactivate, and manage licenses across multiple machines, enforcing licensing restrictions easier and preventing software piracy. The Babel Licensing Services provide a comprehensive solution for managing software licenses, ensuring that developers can protect their intellectual property while also providing a seamless user experience for their customers.

The Babel Licensing Database is a versatile tool that can be used on a variety of database platforms, including

  • Microsoft SQL Server

  • MySQL

  • MariaDB

  • SQLite

This allows for flexibility in choosing the right database platform for your specific needs, whether you require a more powerful database like Microsoft SQL Server or a simpler one like SQLite.

If you have not yet configured the Babel Licensing Database, you can do so by either clicking on the "Configure Database" link or by opening the Options panel and navigating to the Database node under the Environment group. The database configuration process involves specifying the database type (SQL Server, MySQL, SQLite), server name, database name, authentication credentials and other relevant information necessary to connect to the database. Once the database is configured, you can begin recording your products and assigning licenses to your customers.

Configuring Database

Babel Licensing supports the following database providers:

  • SQL Server

  • MySQL (includes MariaDB)

  • SQLite

The database provider can be selected from the "Database" options panel under the "Licensing" group.

Microsoft SQL Server

n order to configure a Microsoft SQL Server database for Babel Licensing, select SQL Server from the Database Kind combo box. Enter the necessary information, such as the server address, the name of the database, and your credentials for accessing the database resource. If you wish to create a new database, press the Create Database button.

If a database with the specified name already exists on the server, you will be prompted to delete the existing database. The connection to the created database can be tested by pressing the Test Connection button. To delete an existing database, press the Drop Database button.


o configure Babel Licensing Database for the MySQL or MariaDB data provider, you will need to select MySQL from the Database Kind combo box.

Note that Babel Licensing Database for the MySQL and SQL Server data providers are only available when running the Babel UI application on .NET 7 or later. Earlier versions of .NET Framework do not support the aforementioned data providers.

Enter the database server address, user credential and database name. If you need to connect the database through SSH, check the Connect Over SSH check box and fill in all the SSH connection parameters. You can then create the Babel Licensing Database or test the connection for any existing database.


he SQLite database provider offers a practical solution for those who desire to store their data locally. To create a new SQLite database for Babel Licensing, it is necessary to first select the SQLite option from the Database Kind combo box. Once selected, you must enter the desired path of the database file in the designated field (Database File). After entering the information, press the "Create Database" button to complete the process. If a database file already exists at the specified path, you will receive a prompt asking if you would like to delete the existing file. To ensure that the connection to the newly created database is functional, you can test the connection by pressing the "Test Connection" button.

It is important to note that the Create Database action will permanently delete any existing Babel Licensing Database and all of its associated data. The operation cannot be undone, and the data will be lost irrevocably. As such, it is recommended to exercise caution when utilising the Drop Database function.

Registering a Product

After successfully configuring your database, you will need to create your first product. A product is essentially an item that you can associate a license with. If you are selling software applications, this will represent the application in question. To define your first product, navigate to the "add a new product" link. Complete all the relevant information about your product, including an optional image that can be chosen by right-clicking on the image box. A signature key file can also be assigned to the product, which will be used to sign all licenses created for that product. To assign a signature key, simply press the "New" button within the Signature group and create a new key pair or open an existing key pair file. Finally, press the "Save" button to create the product in the database.

Product Releases

The "Product Releases" feature in Babel Licensing provides a powerful way to manage and organize different versions of your software products. With this feature, you can create and track releases, each containing important information such as the release name, version, date, and description.

One of the key advantages of using product releases is the ability to associate assemblies with each release. These assemblies typically include the obfuscated or licensed components of your software. By tracking these assemblies, you can enjoy several benefits. Firstly, you can associate XML map files with the tracked obfuscated assemblies. This enables you to retrieve deobfuscated stack traces directly from the application exception reports in the reporting section, simplifying the troubleshooting process and enhancing your debugging capabilities.

Additionally, the assemblies registered for a specific release are automatically added to each license template defined for that release. This streamlines the process of creating license templates, as the relevant assemblies are readily available for selection. This feature ensures that the correct and up-to-date set of assemblies is included in each license template, eliminating the need for manual management and reducing the risk of errors.

With the "Product Releases" feature, you can effectively organize and manage different versions of your software products, associate assemblies with releases, and leverage the benefits of XML map files and automated assembly inclusion in license templates. This enhances the overall efficiency and ease of use of Babel Licensing, empowering you to maintain better control over your licensing and release management processes.

License Templates

After you have established your product, you can proceed to create a license template for the same. A license template serves as a blueprint for the licenses you generate for a particular product. To create a new license template, select the Templates option under the Data navigation group and press the New button in the License Templates header. A form will be displayed allowing you to associate the license template to a specific product, enter the template information, and select a license format for the generated licenses. The license format options include XML, XML (dsig), ASCII, and BASE32.

It's important to note that the licensee information is omitted in this form as it is relevant only to the license and not to the template. Additionally, if a signature key pair has been specified for the product, the license template will be signed using the product's signature.

Creating a License

Creating a license from a license template is a simple process within the Babel Licensing system. To initiate this process, navigate to the Licenses item link within the Data navigation group, then press the New button in the License header. The New License form will be displayed, providing the option to select a license template from the License Template combo box.

Once the desired template has been selected, the license fields will automatically be filled with the information extracted from the template. The Licensee tab can be selected to enter the information of the license recipient. The license can be generated by pressing the Generate button, with no need to select the signature key as this information has already been specified in the product assigned to the chosen license template.

Once the license has been generated, it can be saved into the database by pressing the Save button. The license will then be displayed in the Licenses grid, allowing for later editing, saving, or deletion. To save the license to a file, press the Save button. Additionally, the selected license can be copied to the clipboard by selecting the corresponding grid cell for the License Key and pressing the Copy button.

Floating And Activation Licenses

Licenses can be deployed by simply sending the license file or key to the end customer, or through Babel Licensing Services, which allows remote application license management based on two different licensing models:

  • Floating Licenses

  • License Activation

Floating licenses allow multiple instances of an application to be run simultaneously with a limited number of licenses. These licenses can be "checked out" and "checked in" by the application, and the Babel Licensing Service will ensure that the number of concurrent users does not exceed the number of available licenses. This licensing model is particularly useful for enterprise-level applications where many users may need to access the software simultaneously, from different machines distributed over a network that are not necessarily the same.

On the other hand, license activation is a more traditional licensing model where each license is tied to a specific machine. This model is often used for consumer-level applications where users are expected to install the software on their personal computers or devices.

To select the deployment mode for a given license, follow these steps:

  1. Navigate to the "Licenses" grid.

  2. Choose the license you want to deploy.

  3. In the "Mode" column, choose one of the available licensing models: File, Floating or Activation.

For Floating or Activation licenses, you can assign the number of floating sites or activations by entering the desired number of licenses in the Sites column.

License Tokens

License tokens are unique identifiers generated by the Babel Licensing Service to represent a license that is issued to a particular customer. These tokens are used to implement both floating and activation licenses.

For floating licenses, license tokens are generated and issued to a customer for a certain number of seats, or the number of allowed installations of the software. The customer can then use any of these seats if the total number of installations does not exceed the number of seats allowed. When the software is launched, it contacts the Babel Licensing Service to request a license token, and the license server checks for unused seats. If there are, the server issues a token to the software, which then allows it to run. Once the software is closed, the token is released and can be used by another installation.

For activation licenses, license tokens are issued to a customer for a specific machine, which is identified by a unique machine ID. The customer activates the license by providing the machine ID to the Babel Licensing Service, which generates a token that is tied to that specific machine. The software can then only be run on that machine, and cannot be transferred to another machine without deactivating the license and generating a new token.

In both cases, license tokens provide a secure way to manage and enforce licensing restrictions, ensuring that customers are only able to use the software as allowed by their license agreement.

Revoking Assigned License

Any floating or activated license can be revoked directly from the licenses grid. To do this, you need to enable the "revoked" flag by clicking inside the "Revoked" column for the relevant license.

Once you've revoked a license, any existing license tokens associated with that license will be invalidated, and clients cannot request new floating licenses or activate new ones. Essentially, the "revoked" flag tells the licensing server that the license is no longer valid, and any clients attempting to use it will be denied.

To help you keep track of revoked licenses, the "Licenses" grid will display a lock icon in the "Revoked" cell column for any license that has been revoked. This makes it easy to quickly identify no longer valid licenses and take appropriate action if necessary.

Customers and Orders

The Babel Licensing database allows monitoring and keeping records of your customers and product orders, although it is not essential for managing licenses. If you do not require the ability to track customer and order information, you may choose to disregard this section of the licensing database. However, if you wish to keep track of these details, Babel Licensing Database offers an efficient way to do so. This feature lets you keep an organized record of your customer information and product orders, allowing you to manage your licensing operations better.


In the Babel Licensing database, it is possible to manage and define two types of customers: standard Customers and Resellers. Customers are the product's end users and are typically the recipients of the license. On the other hand, Resellers act as intermediaries, often companies, that sell products to the end customers. Resellers generally have discounted, or reserved prices for each product purchased when they can guarantee a certain volume of purchases. In the Edit Product form, it is possible to specify the price reserved for software resellers, which will be accounted for when a Reseller places a new order.

Select the Customers item link from the Data navigation group to create a new customer, then press the New button in the Customers header. Once you have clicked the New button, you will be presented with the New Customer form, which will allow you to input all relevant information about the customer.

If you intend to create a reseller, make sure to check the "Is Reseller" box. Additionally, you can choose an image for the customer by right-clicking on the image box. If you have configured a map provider, you can also display the customer's address on the map.

To configure a map provider, open the Options panel and select your preferred map provider under Environment Maps. Once you have inputted all the necessary information, click the Save button to save the customer data to the database.


To create a new order in the Babel Licensing database, start by selecting the Orders item link from the Data navigation group. This will take you to the Orders page. From here, press the New button in the Orders header to create a new order. The New Order form will be displayed, which allows you to enter all the relevant information for the order.

Press the plus icon in the Products navigation bar to add products to the order. This will allow you to select the product you wish to add. You can update the order total by pressing the left icon inside the Total field, which will automatically calculate the order total based on the selected products. Alternatively, you can manually set the order total if needed.

Once you have filled out all the relevant information for the order, press the Save button to save the order data to the database. This will allow you to easily track and manage your orders within the Babel Licensing system.

Adding Licenses to an Order

The Babel Licensing database allows you to associate licenses with orders and customers. To assign a license to an order, select the relevant order in the Orders grid and click the Order Licenses button. If no licenses are currently associated with the order, the Licenses grid will be empty. To add a new license to the order, click the New license button.

To create a license for a customer, select the relevant customer in the Customers grid and follow the same steps as for the order. The licensee information will be automatically filled with the data from the selected customer or order. To complete the license, select the license template and click the Generate button. To save the license to the database, click the Save button.


The Babel user interface provides the ability to query and modify data using C# scripting. To access the scripting interface, navigate to the Data group and select Scripts.

Using scripts, data can be queried and presented in various formats, such as grids, pivot grids, property grids, or charts. Additionally, users can customize charts using scripting and choose from different chart types such as bar, pie, doughnut, trend lines, and trend area. Data can also be exported to Excel or saved in Word or PDF documents. For more information, users can refer to the example scripts available in the SQLite demo.db database file, which is accessible under the Babel installation directory.

Babel Data Component

The Babel.Data.dll component is a database component included in the Babel Obfuscator software installation. With this component, you can directly query your database. This can be useful if you need to access the database programmatically without using the Babel user interface. The Babel.Data.dll component is installed under the Babel installation folder, which is typically located at C:\Program Files\Babel. To use the Babel.Data.dll component, you need to reference it in your application code and use the appropriate classes and methods to interact with your database. Using this component can save you time and effort in accessing your database, and it can also provide a more flexible and customizable way to query and modify your data.

The following code snippet shows how to use Babel.Data library to interact with a SQL Server database.

using Babel.Data;

UnitOfWork.Configure(config => {
    config.UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial
Catalog=babel;Integrated Security=True;Connect         Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiS ubnetFailover=False");

var uw = new UnitOfWork();
var dbLic = await uw.LicenseRepository.GetByIdAsync(1);
var builder = new XmlLicenseBuilder();
var license = builder.ToLicenses().First();

Last updated