hu-net logo
hu-net · beta

A trust layer for the open social web, rooted in physical co-presence.

Two people meet, tap phones, and walk away with a self-contained, cryptographically signed record that they were in the same place at the same time. Trust is built one handshake at a time, owned by the people doing the handshaking, and portable across AT Protocol and Nostr.

TestFlight beta opening soon · iOS first · Android to follow

hu-net dashboard

The concept

Co-presence is the atom.

When two phones tap, both devices exchange GPS, timestamps, and signatures, then sign the combined hash. The bundle that walks away requires both private keys and the physical channel — no single party can forge it.

Identity lives in the device.

Keys are generated and held in the iOS Secure Enclave / Android StrongBox. Public keys are registered against your AT Protocol DID or Nostr pubkey. We never see them.

Encrypted to identities, not keys.

Messages use NIP-17 gift-wrap. Relays see only opaque kind-1059 wrappers — no metadata about who’s talking to whom. Even hu-net’s developers, with full relay logs, could not read them.

Social recovery, not seed phrases.

Lose your phone? Meet three of your trust contacts. Each one signs an attestation that the new DID is the same person. After a contestation window, your trust history carries over.

The server is optional.

Every attestation verifies standalone from public keys. The backend is an index for fast graph queries — the mobile app runs in a serverless mode where the identity is just a Nostr pubkey.

A quick tour

The journey from a brand-new install through your first handshake, your first encrypted message, and a feed that re-ranks Bluesky through your real-world trust graph.

Dashboard

Dashboard

Your trust network at a glance — direct (verified in person), 2nd-degree (vouched), 3rd-degree (extended).

Verify · find

Verify · find

Frame their hu-code to start a handshake. The camera looks for a nearby device.

Verify · identify

Verify · identify

Identity surfaces. Vouching adds them to your trust circle.

Verify · welcomed

Verify · welcomed

Mutual. The attestation bundle is signed by both devices and verifies offline forever after.

Connection

Connection

"Human verified · In person · You shook hands." Every connection links to messages and graph position.

Messages

Messages

End-to-end encrypted with NIP-17 gift-wrap. Relays see only opaque wrappers.

Feed · direct

Feed · direct

Bluesky posts from people you’ve verified in person, tagged DIRECT.

Feed · public

Feed · public

Same Bluesky firehose, the outermost ring. Same ranker, different trust filter.

Profile

Profile

Your Nostr pubkey, Bluesky handle, and linked accounts — all in one place.

What the app actually does

Trust-weighted Bluesky feed

The Feed tab pulls posts from your Bluesky follows and tags every post with the author's trust tier — direct, friend-of-a-friend, extended, or public. A close friend's three-hour-old post beats a stranger's three-minute-old one, without you having to mute the world.

E2E encrypted messages

Direct messages and group chats use NIP-17 gift-wrap. The relay sees only kind-1059 wrappers; no metadata about who's talking to whom. Groups today are fan-out behind a swap-friendly transport seam — MLS / Marmot is the planned upgrade.

Connections, not contacts

Every NFC handshake becomes a Connection you can name, vouch for, or use as a recovery contact. The trust graph that powers the feed and messages is the same graph you build by meeting people.

Want to try it?

A close-friends TestFlight beta opens soon. The source is on GitHub — star or watch the repo to follow progress.