What is NPL
NPL, the NOUMENA Protocol Language, is a programming language where authorization is a first-class primitive. Unlike traditional languages where access control is an afterthought or handled externally, NPL bakes it directly into the language and compiler.
At its core, NPL introduces parties — an abstract notion representing users, groups of users, and systems. During development, you only worry about parties; you bind them to actual identities at runtime. This allows for fine-grained, programmable access control. The compiler enforces the explicit presence of these parties, so developers can’t accidentally skip or ignore them. If your code compiles, it complies.
The NPL Runtime
The NPL Runtime is the engine that runs NPL programs. It’s responsible for executing your code securely, with strict guarantees around authorization and data integrity.
Here’s what it offers:
- Enforced Authorization
Every interaction is checked against declared access rules at runtime. - Transactional Execution
All operations are fully transactional—either everything succeeds, or nothing does. - Auto-Generated REST APIs
NPL automatically exposes deployed code via REST, so you can integrate without writing boilerplate glue code. - Full Audit Logging
Every state change is logged. You get a complete audit trail by default. - Built-in Observability
Exposes metrics so you can monitor behavior and performance without extra instrumentation.
Why Use NPL
NPL is designed for systems where authorization, auditability, and reliability are not optional.
Key Benefits
- Security by Design
Authorization isn’t bolted on — it’s enforced by the type system, compiler, and runtime. - Simplicity
You write less code. The runtime handles APIs, authorization checks, transactions, and observability, so you can focus on the domain and skip the boilerplate. - Clarity Domain-oriented code is much easier to understand. NPL’s focus on explicit authorization ensures that security constraints become an integral part of the review process.
- Safety
NPL ensures that all interactions are atomic and consistent. If a call fails, no partial changes are made—giving you strong guarantees about application state, even in complex multi-party workflows. - Transparency
Every change is logged automatically. Useful for compliance, debugging, or just knowing who did what, when. - AI-Assisted Development
Because NPL code is domain-focused and free from boilerplate, AI coding tools can generate more accurate and relevant suggestions. And since the compiler requires that authorization is explicit, even AI-generated code must comply with security constraints – ensuring safe, valid output that is easy to review.
When to Consider NPL
NPL shines when you need strong guarantees around identity, authorization, and transactional behavior. A few good fits:
-
Modeling contracts and workflows
Model and enforce multi-party agreements with strict access rules and full traceability. -
Implementing regulated processes
In heavily regulated industries, NPL makes it easy to model and enforce compliance workflows. With explicit authorization, full audit trails, and a clear, domain-focused codebase, the resulting programs are straightforward to review and verify—by developers and auditors alike. -
Web3/off-chain coordination
Implement Digital Assets off-chain, so that only the right actors can create, read, modify or transfer sensitive assets. Use NPL to mediate between blockchains and traditional systems – safely and consistently.
Getting Started
Follow the Getting Started Guide for tutorials and setup instructions.