HumAIn API · proposed architecture

The URL is a coordinate, not the whole world.

The HumAIn API is a proposed trust-aware resolution layer for humans, agents, sites, and applications sharing context attached to public pointers. The browser extension is only one client.

The inversion

The ordinary web mostly asks: What document does this URL return? HumAIn asks: What information can this node resolve at this pointer, given its identity, capabilities, relationships, and time?

HumAIn API: (pointer, identity, context) → trusted information

The same public URL can remain durable and legible while different trusted nodes receive different projections. The URL is not private. The interpretation can be relational.

Three planes

Pointer plane

URLs and object identifiers. Public, durable coordinates that can be passed around without carrying the hidden layer inside them.

Trust plane

Identities, signatures, capabilities, relationships, consent, provenance, and revocation. This determines what a node may resolve.

Information plane

Messages, observations, annotations, predictions, experimental results, context, and interfaces delivered after resolution.

The client symmetry

A human and an agent do not need the same interface to inhabit the same information world. They need compatible resolution semantics.

PUBLIC WEB URL / pointer │ ▼ public page ───────────────┐ │ │ HUMAN NODE AGENT NODE browser extension resolver / sidecar └──────────┬──────────┘ ▼ HumAIn API signed context + graph │ ▼ hidden layer

Extension : human browser :: resolver/sidecar : agent. The extension adapts the public web for a person. An agent can speak the protocol directly instead of imitating a browser.

Mutual capability authentication

A site can prove that its origin is controlled by an expected publisher key. A resolver can prove that a request comes from a trusted installation, identity, or capability. A successful handshake can unlock a different representation at the same coordinate.

RESOLVE(pointer, requester, capabilities, context, nonce, signature)

The response should carry its own evidence: publisher, representation, provenance, permissions, timestamp, signature, and a link to the prior message or hash when the graph is chained.

Do not call this automatically “2FA.” It may feel like two-sided authentication, but two proofs on one device are not necessarily two independent factors. “Mutual capability authentication” is the more accurate starting description.

The message is the trust boundary

The transport can be boring infrastructure: HTTP, WebSockets, a relay, libp2p, local IPC, or a centralized message bus. The bus should not be the thing that makes a claim true. Messages should carry enough information to be checked away from the transport.

Publisher

Public key or node identifier. Who made this message?

Audience

Capabilities, nodes, or groups. Who is allowed to resolve it?

History

Timestamp, signature, parent, and provenance. What can be checked later?

What the hidden layer can attach to

A trusted network could annotate arbitrary public pointers without pretending to own the underlying site:

nytimes.com/article/123 ├── public internet representation ├── Alice's observation ├── Bob's counterargument ├── agent-generated analysis ├── prediction made three months ago └── outcome recorded later

This turns a URL into a foreign key into a network graph. It also preserves an important boundary: an annotation is not the source page, a prediction is not an outcome, and a work receipt is not proof of success.

Voice is another client

A voice agent can later resolve the same graph as the extension, but present it conversationally. The voice layer should not become a second source of truth. It should request structured context, cite the pointer and provenance it used, and record actions as signed messages only when the user explicitly authorizes them.

The path is therefore not “put a voice assistant in a browser popup.” It is: shared protocol → human client, agent client, voice client. Different surfaces. One signed context graph.

The smallest useful prototype

The first BIPU extension slice uses this idea without pretending the protocol is finished. On story.markets, it preserves the served site, hides it client-side, and resolves an extension-owned Beginner view. The original page can be restored. The view exposes a machine-readable project shape to agents. No wallet, signing key, payment transfer, or private content is involved.

That prototype tests the presentation boundary. It does not yet prove mutual authentication, capability revocation, message integrity, agent interoperability, or a private channel.

What would falsify the idea?

Trust is decorative

If the same hidden content is served to every node regardless of identity or capability, the resolver is only a themed CDN.

Provenance collapses

If a client cannot distinguish publisher claims, observations, hypotheses, and outcomes, the graph creates context debt rather than context.

Agents cannot use it

If agents need to render pages, click controls, or imitate a human session to resolve structured context, the protocol has not escaped the browser.

A proposed starting point

Define the smallest signed message envelope, one resolver request, one origin-verification method, and one revocable capability. Test it first against a local fixture and a public pointer. Publish the miss when the handshake fails.

Return to BIPU · Explore more topics