The DRM requires the following configuration files:

  • The credentials file (cred.json): The end user credentials from Accelize portal. This file is managed by the application end user.

  • The DRM Configuration file conf.json: This file defines some basic parameters used to enable the application. This file is managed by the application vendor.

Credentials file

The credentials file contains the Accelize web service access keys required to authenticate the user and grant him/her access to the application through license generation based on the user entitlements.

To create Accelize account and get credentials:

Download the credential files (cred.json) which looks like this:

   "client_id": "Your client id from Accelize DRM portal",
   "client_secret": "Your client secret from Accelize DRM portal"


Even in node-locked licensing mode, assuming an internet connection is valid, the license file can be automatically requested from the License Web Service. All you need is a credentials file. Once the license file is saved locally, the credential file can be omitted.

Library Configuration file

The conf.json configuration file content depends on the licensing mode to use. It can be modified without rebuilding the entire application. Here is the basic conf.json file content:

Metering/Floating licensing case
    "licensing": {
        "url": ""
    "drm": {
        "frequency_mhz": 125
    "design": {
        "boardType": "Enter any key word related to this product (Name, Model, ...) you want to see in your portal"
  • url: URL to Accelize DRM Web Service.


    For Chinese mainland, url must be set to

  • frequency_mhz: Must be set to the effective frequency in MHz of the DRM Controller IP.

  • boardType: Any string of 30 characters maximum to store any piece of information this product the ISV (IP/App vendor) might want to save on his/her portal database.

DRM Controller IP Frequency

From the precision of the DRM Controller frequency depends the correctness of the license timer. The DRM Controller is embedding a frequency self-check that returns en error if the seld-evaluated frequency differ from the one provided in the configuraiton file through the frequency_mhz parameter.

Node-locked parameters

By default, the configuration allow metering and floating licensing. To enable node-locked licensing, the following options must be added to the conf.json configuration file:

  • nodelocked: If true enable the node-locked licensing. If false or missing, disable the node-locked licensing and use other licensing modes.

  • license_dir: Path to an existing directory where license files are stored locally. This path must have read access for users that will use the application and load an existing license, and write access if the license file is automatically generated.

Node-locked licensing case
    "licensing": {
        "url": "",
        "nodelocked": true,
        "license_dir": "~/.accelize/licenses"


Once a license has been generated and a license file is in the license_dir directory, the url field may be omitted. Note that even if url value is kept, no communication with the web service is performed if a valid license is already installed on the machine.

logging parameters

For debug purpose, one can get some trace information by adding the following section to the configuration file:

Logging parameters
    "settings": {
        "log_verbosity": 3,
        "log_format": "*** [%H:%M:%S %z] [thread %t] %v ***"
  • log_verbosity: Set the level of verbosity: 0=quiet, 1=error (default), 2=warning, 3= information, 4=debug.

  • log_format: Set the format of trace message as a string pattern: refer to the SPDLOG documentation.

Other parameters

Various parameters are accessible from software in read and/or write mode. To list these parameters use the following code:

std::string value = drm_manager_ptr->get<string>( Accelize::DRM::ParameterKey::list_all );
std::cout << value << std::endl;
char* value;
if ( DrmManager_get_string( drm_manager_ptr, Accelize::DRM::DRMParameterKey::list_all, &value ) )
    fprintf( stderr, drm_manager.error_message );
fprintf( stdout, value );
delete value;   // Make sure your application releases the resource

Some of these parameters are better explained in the DRM SW Advanced Description.


Most of these parameters are critical for a proper functioning of the system. It is highly recommended not to modify them. Contact the support team for additional information.

Configuration files storage

The configurations files needs to be stored on the file system of the machine running the DRM protected application.

  • The conf.json should be managed by the application vendor. The application user only need read access to it. On Linux, it can be stored in something like /etc/accelize_drm/conf.json or /etc/my_application/conf.json.

  • The cred.json should be managed by the application user. The application user needs to have read and write access to it. On Linux, it can be stored in something like ~/.accelize_drm/cred.json or ~/.my_application/cred.json.


The credential file contain sensible information and must be stored in a secure way. The minimum is to ensure that access to the folder containing the file cred.json is only allowed to appropriate users only.

Webserver access configuration when using firewall

If you are using a firewall to restrict the egress internet access, you must allow your FPGA host to access the following IP addresses on port 443/TCP:




The Node-locked licensing model does not require Webserver access once the license file is generated.