Angaza Nexus


Premium open-source technology for the PAYG industry.

Nexus Keycode

Source Code


Nexus Keycode is the de facto industry standard keycode system for PAYG devices. Manufacturers can integrate this open-source technology into their firmware to easily create Nexus-compatible products. PAYG platforms can integrate this open-source technology to generate keycodes for devices they manage, or use the Nexus API full-service solution to gain access to the entire catalog of Nexus-compatible devices.

Building a PAYG Product

Nexus Keycode provides a complete, mature, and well-tested solution to securely communicate with PAYG devices. It has been successfully used in over 3 million devices around the world. Using Nexus Keycode allows a single version of your product to operate on every PAYG platform (see Device Management Overview for more details about how this works).

The Nexus Keycode embedded decoder is portable to nearly any embedded platform.

The keycode protocol is just one component of PAYG firmware. Aside from any product-specific functionality, the following capabilities need to be implemented in firmware for a device to operate as a secure and robust PAYG device:

We provide naive implementations of some of these capabilities in the included sample programs as examples, but for production devices we recommend more robust solutions.

Nexus Keycode Protocol Overview

General Overview

The Nexus Keycode protocol is designed to communicate PAYG state to constrained devices. The protocol only communicates PAYG credit in terms of a relative hours; it is up to the manufacturer’s PAYG firmware to determine how to consume that credit (e.g., time-based constant consumption or usage-based consumption).

There are two varieties of the protocol:

Both protocols feature these types of keycodes:

Note that “add credit” keycodes can be applied in virtually any order. However, the entry of a “set credit” or “unlock” keycode will invalidate any unentered “add credit” keycodes.

Frequently Asked Questions

My keycode product already uses the Angaza Coprocessor or Angaza PAYG Library. Should I switch to Nexus Keycode?

Your product already uses Nexus Keycode and is fully compatible with any platform or service that is compatible with Nexus Keycode, including Nexus API. However, you may want to move to Nexus Keycode for new products in order to remain up-to-date with the latest protocol features; Angaza Coprocessor and PAYG Library are not recommended for new designs.

I’m developing a new product and I want it to be PAYG via keycodes. Should I use this library?

Using Nexus Keycode is the easiest way to make your product compatible with every PAYG platform, and it’s a secure and well-tested keycode solution.

I already have a PAYG product that uses another keycode protocol, but I want to make the product compatible with platforms that use Nexus Keycode. Should I use this library?

That is an ideal use case for the Nexus Keycode library. You can keep your existing firmware and simply integrate the Nexus Keycode library (to replace the other keycode protocol). This will allow your product to work on every platform that’s compatible with Nexus Keycode.