HPPR ยท HAVI

Beyond HTTP

A browser over marked packets.
A larger design space for internet systems.

Overview

This talk

  • why packet-authenticated objects matter
  • the minimal HPPR model: blob, plex, seal
  • www.dse.nl as a proof of concept
  • touch on what this unlocks
Thesis
We made the connection authentic and left the application object ambient.
Inversion
pipe colors the message
sender colors the message
Authenticate our packets,
not our pipes.
Thesis

What the web host still does today

Bundled into one place

  • bytes
  • identity
  • version history
  • moderation state
  • addressing and discovery

Makes it harder to:

  • preserve integrity when copied
  • preserve authorship when moved
  • keep moderation inspectable
  • move apps without changing identity
  • keep records meaningful offline
Competition

Marked packets unbundle the platform

  • identity, storage, and administration become separate replaceable layers
  • marked objects keep their meaning when they move
  • competition appears at every layer, not only between full-stack silos
HPPR core

Build one object step by step

๐Ÿ–ง: S.540ML7eSE7mm0O5W4GlmHzYcNWLM05ibq7J4XR4J1wW.H3
Verifier: V.FwbYhLeVAx1sBclG18B0GKJ0bsNWwP9EcHeRpv2FlaC.H3
Mark: SwDd2O6Jqy9Ws~LYW1kuFpxLrapl39zOHKla99fbkX6zHjTz6GrkaHfSWVqRS00B14TND6o9AXmk1xFKAw0t4G
๐Ÿ–ง: P.wHB9qmhX4nVXX5KF551SzEL~hGsQ68~XrO1g6xfpi8O.H3
Group: dse.nl
App: forum
Location: post/p-2026-03-20-voorbeeld/index.html
TAI: 1774335345:497895144
๐Ÿ–ง: B.GTBJcocP3fboFbyPSZAONvq668Phrqy3nnULAJFh4iG.H3
Data-Length: 11
Hello World

Blob: what bytes?

Plex for whom, about what, when?

Seal by who?

Approach

Addressing set of packets

NeedFormExample
Exacthash address////S.<hash>.H3
Latestcoordinate//grp/app/loc
Versionversion selector//grp/app/loc/|/seal/<vkey>
HPPR core

What that buys you immediately

  • copied packets keep their integrity proof
  • marked packets carry their verifier claim
  • history is addressable, not just remembered by a host
  • caches and mirrors require no new trust
  • storage and routing become infrastructure, not app identity
Browser

HAVI is an HPPR-native browser

  • you still build with HTML, CSS, and JavaScript
  • the browser speaks HPPR coordinates and marked packets natively
  • the API changes are small: window.source, explicit named clients, <x>
  • it feels like the web, but over HPPR objects
Prelude

Quick setup for the DSE example

  • DSE lives in one reachable repository
  • that repository could run on a Raspberry Pi, a VPS, or AWS
  • we will focus only on posts and comments
Prelude

Two ways to open //dse.nl/home/index.html

Indexed first contact:
//dse.nl/home/index.html

Manual first contact:
//dse.nl/home/index.html/{via:203.0.113.10:4777}
  • manual: you choose a repo endpoint and trust that Content-Authority directly
  • indexed: a marked route index chooses the first endpoint for you

The repo could be a Raspberry Pi at home, a VPS, AWS, or any other reachable machine.

DSE on HPPR

A post is written first

Group: dse.nl App: forum Location: post/p-2026-03-20-voorbeeld/index.html Title: Testpost voor publicatie Username: Tester-Man-1 Published-At: 2026-03-20T12:00:00Z Data-Length: 34 <article>...raw post html...</article>
  • the author publishes one raw post packet
  • it is marked and addressable immediately
  • it is not public yet
DSE on HPPR

Content-Authority publication is visible page composition

  • <x> is an HTML element, like <iframe>, for HPPR-native subviews
  • Content-Authority publishes a post by including it in a wrapper page
  • adding or removing that include changes publication state
<x src="////V.EXAMPLE~HASH.H3"></x>
<x src="/post/p-2026-03-20-voorbeeld/index.html/|/seal/V.example-userkey.H3"></x>
DSE on HPPR

Comments follow the same rule

//dse.nl/forum/comment/p-2026-03-20-voorbeeld/c-0001/index.html
<x src="/comment/p-2026-03-20-voorbeeld/c-0001/index.html"></x>
  • a comment is written as a raw packet first
  • it becomes public only when the post page includes it, in Content-Authority-chosen order
DSE on HPPR

DSE could be a repo server + Content-Authority

//dse.nl/home/index.html //dse.nl/forum/index.html //dse.nl/forum/write.html //dse.nl/forum/post/<post-id>/index.html //dse.nl/forum/page/post/<post-id>.html //dse.nl/forum/comment/<post-id>/<comment-id>/index.html

Raw packets plus wrapper pages.

DSE on HPPR

Edit = publish a new version at the same coordinate

//dse.nl/forum/post/p-2026-03-20-voorbeeld/index.html T1 -> P.old... / S.old... T2 -> P.new... / S.new... page/post/p-2026-03-20-voorbeeld.html <x src="/post/p-2026-03-20-voorbeeld/index.html/|/seal/V.example-userkey.H3"></x>
  • same public coordinate
  • new packet version
  • wrappers follow the latest tip
Demo flow

Demo in four moves

  1. write raw post
  2. Content-Authority publishes the post
  3. write raw comment
  4. Content-Authority publishes the comment
Browser

HAVI makes this usable as a browser, not just a protocol

hppr://dse.nl/home/index.html
hppr://dse.nl/forum/index.html
  • open pages by coordinate
  • resolve exact packets and histories when needed
  • treat local and remote repos as ordinary browser surfaces
Browser

The programming model stays small

const post = await window.source.client.get("//dse.nl/forum/post/p-2026-03-20-voorbeeld/index.html");
const page = await window.source.client.get("//dse.nl/forum/index.html");

await window.source.client.add({
  headers: [
    "Location: comment/p-2026-03-20-voorbeeld/c-0002/index.html",
    "Author: alice",
    "Published-At: " + new Date().toISOString(),
    "Content-Type: text/html; charset=utf-8"
  ],
  data: html
});

Read, list, add, watch. Small surface area. The substrate does the heavy lifting.

Browser

Committed source keeps the mental model sane

window.source

  • the repo capability the current page actually came from
  • client, authority, kind
  • frozen for the lifetime of the document

named clients

  • explicit extra repo power
  • browser-managed grants and revocations
  • separate from the ambient page model
Below the waterline

The other 50%

  • repo access control lists, per key or per group of keys
  • mounting an hpprd server as FUSE or NFS
  • HTTP proxy in and out

That exists too. I am leaving it out today because the publishing model is the more important shape to show first.

Possibilities

Verifiable mirrors

Third parties can serve the same content without becoming the authority for it.

Inspectable governance

Policy and moderation can be visible packet data instead of hidden application state.

Fork a platform without losing continuity

You can fork a platform without losing history, references, or community.

Offline continuity

Local repos, cached packets, and delayed sync still let the system keep working when the network disappears.

Possibilities

Why this is buildable

  • small, inspectable core
  • ordinary client/server starting point
  • distributed later without changing object identity
  • no chain, no global consensus, no opaque platform backend
  • HTML, CSS, and JavaScript on top of marked, addressable objects
Adoption

Will this work?

  • a new technology usually needs to be 10x better to win adoption
Adoption

I think it's 10x better

  • real communities can carry identity and history across hosts
  • platform rent-seeking loses leverage
  • the same substrate supports both public squares and private groups
Adoption

What if the internet becomes 10x worse?

  • AI floods the network with cheap content
  • spam detection and source credibility degrade
  • host reputation stops being enough
  • trusted community becomes the only way
Discussion
Questions?