Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
@pps-protocol

PulseProof Sentinel Protocol

PulseProof Sentinel Protocol (PPS): asymmetric time-bound authentication for offline, OTP-style, transaction, duress, and threshold flows.

PulseProof Sentinel Protocol

Time-bound asymmetric authentication proofs for offline, OTP-style, transaction-signing, duress-aware, and multi-device flows.

IETF Internet-Draft Protocol Version 1 Status: Experimental License: Apache-2.0

PPS Website Read the PPS specification PPS documentation


What is PPS?

PulseProof Sentinel Protocol, abbreviated PPS, is an experimental open authentication protocol that replaces shared-secret TOTP-style codes with signed, time-bound, asymmetric proofs called Pulses.

Instead of storing OTP secrets on the server, PPS verifiers store only public keys.

TOTP
  code = HMAC(shared_secret, time)

PPS
  Pulse = Sign(private_key, time + rp + nonce + counter + context + policy)

A Pulse can be verified using a public key, while being bound to a relying party, time window, nonce, counter, policy, context, and optional transaction data.


Positioning

PPS is designed to complement, not replace, WebAuthn/FIDO2.

WebAuthn remains the preferred mechanism for browser-based passkey authentication.

PPS targets operational gaps where WebAuthn is unavailable or insufficient:

Area Use Case
Offline authentication Terminals, IoT devices, unstable networks
Legacy OTP flows Systems that still expect OTP-style input
QR / deep-link login Mobile-to-web and cross-device authentication
Constrained hardware POS devices, embedded modules, hardware tokens
Transaction signing Human-visible transaction confirmation
Silent duress Coercion-aware authentication with Honey-Pulse
Threshold approval Offline multi-device authorization

Core Features

Feature Description
Asymmetric time-bound proofs Authentication is based on signed Pulses, not shared OTP secrets
No shared server secret Verifiers store only public keys
Offline-capable Pulse generation can work without a live network round-trip
Forward-secure ratcheting Optional key rotation to limit key-compromise exposure
Silent duress signaling Optional Honey-Pulse mechanism for coercion scenarios
Threshold approval Optional offline n-of-m multi-device authorization
Transaction AmountMark Optional human-visible amount checksum inside the Trust Code
Dynamic policy binding Optional server-issued policy hash bound to each Pulse
Context binding Optional session, transaction, proximity, and device-context binding
Deterministic CBOR Technology-neutral wire format using deterministic CBOR encoding

High-Level Flow

Authenticator                              Verifier
     |                                        |
     |  <------- challenge / nonce ---------- |
     |                                        |
     |  sign Pulse with private key           |
     |                                        |
     |  -------- Pulse Token + Trust Code --> |
     |                                        |
     |                    verify signature    |
     |                    check nonce         |
     |                    check counter       |
     |                    check policy        |
     |                    check context       |
     |                                        |
     |  <---------------- ok ---------------- |

Ecosystem

Repository Type Description Links
pulseproof-sentinel Specification Core protocol specification, documentation, IETF materials, examples, and test vectors Website · SPEC · Docs
pps-php Core Implementation Framework-agnostic PHP implementation of PPS Website · Docs · Packagist
laravel-pps Laravel Integration Laravel bridge for PPS: routes, controller, facade, config, migrations, and storage integration Website · Packagist

Quick Start

Install the core PHP package:

composer require pps-protocol/pps-php

Install the Laravel integration:

composer require pps-protocol/laravel-pps

Then publish the Laravel configuration:

php artisan pps:install

Implementation Roadmap

Language / Framework Package Status
PHP pps-php Available
Laravel laravel-pps Available
JavaScript / TypeScript pps-js Planned
Python pps-python Planned
Go pps-go Planned
Rust pps-rust Planned

Specification

Resource Link
Main repository pps-protocol/pulseproof-sentinel
Protocol website pps-protocol.github.io/pulseproof-sentinel
Specification SPEC.html
Documentation docs/
IETF Internet-Draft draft-hezami-pulseproof-sentinel

IETF

PPS is submitted as an individual Internet-Draft:

draft-hezami-pulseproof-sentinel

Datatracker:

https://datatracker.ietf.org/doc/draft-hezami-pulseproof-sentinel/


Explore

Pinned Loading

  1. pulseproof-sentinel pulseproof-sentinel Public

    PulseProof Sentinel Protocol (PPS) — asymmetric time-bound authentication proofs for offline, OTP-style, transaction-signing, duress-aware, and multi-device flows.

    1

Repositories

Loading
Type
Select type
Language
Select language
Sort
Select order
Showing 5 of 5 repositories

Top languages

Loading…

Most used topics

Loading…

Morty Proxy This is a proxified and sanitized view of the page, visit original site.