valis

a sovereign computing substrate for network protocols

You are reading this page on a valis node: the same piece of software the page describes, answering on its own address, serving its own story.

valis is a small, sovereign computer for the network. It gives one person a place on the internet that is wholly theirs: their data, their identity, and the protocols that speak for them, all running on a substrate they own and can reshape. Not an account on someone else's machine. A machine.

Reshaping it is the point, and the protocol is where you reach in. A new wire format is a small adapter over storage and identity machinery that already exists, so anything you teach a valis to speak inherits the whole authority model for free and invents no new plumbing.

One address, every protocol

Most servers do one thing on one port. valis does the opposite. A single IP address answers on every designated port, and behind that address sits one userland process that sorts each arriving connection by the port it was dialed on and hands it to the protocol that claimed it.

Every port a protocol, every protocol a plugin. Web on :80 and :443. A name server on :53. Mail. Gopher. Whatever comes next. Each is a self-contained adapter that plugs into the same substrate. Adding a new way to be reached on the network is adding a plugin, not standing up another server.

Authority is a namespace, not a login

Underneath every protocol is the thing that actually matters: the person's namespace, a private view of their data, identity, names, and the mailboxes of their running programs, assembled as a mount table the way a Plan 9 system assembles a world per process.

A protocol module is only ever an ephemeral viewer onto that namespace. It never owns the irreplaceable state; it is handed a view and nothing more. And authority is enforced not by asking permission at every step, but by what is mounted into a given connection's view. A caller can name only what it has been granted. Everything else is simply absent: not forbidden, not refused, just not there.

That is the whole security model in one line: sovereignty is the absence of a name. An anonymous visitor to this node sees a small published floor and can name nothing of the owner's world. The owner, proving a key they alone hold, sees everything. Same address, same URLs. The identity decides the world.

What it does today

valis is not a sketch. The stack is assembled and proven end to end:

  • an event-loop listener that recovers the port each connection was dialed on and routes it to the protocol that claimed it;
  • a 9P namespace fabric that the host kernel itself can mount, so ordinary tools can walk it;
  • a keyed transport that binds a peer to a public-key identity with no login, and a factotum that is the sole holder of the owner's keys, with every session sealed end to end;
  • capability tokens for delegated, offline-verifiable authority, and content-addressed names for published data;
  • a sovereign mail spine where writing a message into the namespace is the authenticated act of sending it;
  • authoritative DNS answering on a real :53, for zones the owner authors through the namespace itself;
  • a public HTTPS edge on :443, under a certificate the node ordered for itself through its own name service;
  • a content-addressed store the whole namespace condenses out of, so a valis moves between machines by being reassembled rather than copied.

It runs today as a supervised internet host on a plain Linux box, unprivileged, steering its own traffic in from the kernel.

Where it is going

A valis obtains its own certificate from inside the running node. It publishes the proof of control through the same name service it is already answering with, and withdraws it again once the authority has looked, so no outside agent ever holds the node's keys or speaks for it. Renewal takes the same path, and the new credential replaces the old one on a live connection path without the node restarting.

What comes next is breadth rather than depth. Mail already moves end to end through the substrate, and the wire engines that carry it to other people's servers are the next protocols to arrive. After them, news. Each one is an adapter over storage, identity and authority that are already built and already enforced, which is the entire reason for building the substrate before the protocols.

Build on it

valis is meant to be a building material for people to use to compute about their personal information, exposing the information and its transformations as they see fit. This naturally maps onto things we have seen on the internet since years: Blogs, Walls, Photo Albums, Calendars, Messages, Task Lists, and Custom personal websites … but not only. It is our intention that this conflation of strong personal stewardship of the information a person holds, with the computational flexibility of a computer across that data, in conjunction with established, and future network protocols will result in emergent phenomena. The dispositions of these phenomena are by definition not known, but all of it is in support of our overall goal of taking back the internet, and making the future what it used to be: more evenly distributed.

If you are holding the keys to this node, the manual below is your map.

The manual

The manual index is the table of contents for the full set, and every document below links onward into it.

  • Building on valis - the two extension surfaces and the authority model you inherit when you write your own protocol or keyed service.
  • Architecture - how the substrate is shaped, layer by layer: the listener, the 9P fabric, transport identity, capabilities, and enforcement by mounting.
  • The constellation - which repository owns what, and the boundary rules that keep protocol logic, sockets, and data in their proper homes.
  • Deploying a node - bringing a valis up on a real host, framed as condense-from-genesis, alongside the first moves an operator makes on a new node.
  • Operations - installing the service, authoring its config, obtaining and renewing the TLS certificate, backing up the one irreplaceable secret, and restarting cleanly.
  • Seam contracts and the API reference - the versioned interfaces between components, and the generated programmer's reference for every exported symbol.

About

valis is the software half of DeepSky v2, a Lisp Machine for network protocols. It is free software under the AGPL-3.0-or-later. Copyright © 2026 Brian O'Reilly.