Skip to content

Concept of NPL

Introduction

The Noumena Protocol Language (NPL) is an exciting new security-oriented language aimed at modeling business processes, business objects, contracts, and regulations.

Protocols, or the combination of multiple protocols together, can be used to implement the logic of integral applications.

NPL is designed with built-in security and persistence features, making it suitable for a wide range of applications, including but not limited to:

  • Modeling contracts and workflows
  • Implementing regulated processes
  • Web3/off-chain coordination

NPL's target audience

The audience of NPL consists of engineers, technical consultants, and domain experts. Protocols are assumed to be:

  • implemented by engineers. The engineer's role is to implement a protocol according to its business specification, and ensure it is technically sound while adhering to good engineering practices.

  • audited by domain experts. Domain experts should be able to understand a protocol to verify that it meets its business specification and to propose meaningful changes.

NPL aims to not unnecessarily deviate from commonly encountered programming constructs and paradigms. It also aims to provide the means and tools to facilitate the verification of its workings, both technically and logically.

How NPL models business logic

NPL is a security-oriented language that models interactions as protocols.

Protocols model interactions between one or multiple parties. Each party is represented by a single user or a group of users by attaching corresponding user attributes to the party. Each protocol instance receives a unique party definition.

Protocols model state machines. States and state transitions may be defined explicitly, and control which parts of a protocol are active.

Protocols contain permissions and obligations, which are user actions that can be triggered by the parties involved. Permissions and obligations are exposed to other protocols within the same runtime, and can be invoked by external systems or other NPL Runtimes.

Protocols model data objects. Each field on protocol is a typed data object persisted after every user action. Data objects are defined in a schema, which is a set of types and their relationships.

How NPL protocols are used

Protocol creation and interaction occurs in an environment called the NPL runtime. The default interface into the NPL runtime is the engine.

Refer to the Noumena platform for more information on how to use the engine and its companion applications.