registrar.earth is a federated system for minting, resolving, and managing SF128 cryptographic identifiers. Four domains serve four distinct roles. This page shows what the components are and how they work together.
Four domains serve distinct audiences with distinct purposes. They share the SF128 identifier layer and cross-domain SSO but are otherwise independent.
The identifier system itself. Mint, resolve, verify, and derive SF128 identifiers. Technical documentation, interactive demos, placement specifications.
Consumer-facing lost-and-found service. Owner accounts, physical labels, finder flow, encrypted messaging, token resolution.
Physical notebooks with SF128-derived page identifiers. Print-ready PDF generation with Data Matrix barcodes, seals, and checkpoint verification.
A living asset inventory. Register everything you own, track item health with breathing pulse animations, and generate SF128 recovery labels.
Every identity in the system is a 128-bit value in the fd53::/16 IPv6 prefix. It encodes provenance, time, and origin into a single globally-routable address.
Root identifiers are minted by the resolver. Child identifiers are deterministically derived using CRC32 (lineage), FNV-1a 64-bit (proof), and CRC16-CCITT (checksum) — enabling verifiable hierarchies like notebook pages, label batches, and delegation chains without contacting the server.
Each tool on registrar.earth performs a specific operation on SF128 identifiers. All work client-side with server API fallback.
Create new SF128 root identifiers and resolve existing ones. Step-by-step walkthrough of the full lifecycle.
Parse any SF128 value — hex, IPv6, token, or short code — and inspect its internal structure, validity, and resolution status.
Generate deterministic child identifiers from any root. Verify the derivation chain: lineage, proof, and checksum.
Configure identifier placement for physical objects. Generates printable marking specifications based on placement guidelines.
Reference document synthesising ISO/IEC 15459, GS1, CE marking, and VIN regulations into category-specific guidance.
Direct resolution interface. Enter any SF128 token or short code and retrieve its metadata, route targets, and lifecycle events.
The system is layered: identifiers at the bottom, services in the middle, products on top.
:8080:3000:9400Iroh QUICFour backend services run on each node. All are Rust/Axum binaries communicating over the WireGuard mesh.
POST /mint), resolution (GET /resolve/{id}), metadata events, and host registration. Single-writer primary with read replicas on every node.
/api/* on fms.sh. Geo-routed: US traffic to US backend, EU traffic to EU backend.
Seven nodes across two regions, connected by WireGuard tunnels carrying three overlay planes.
Each WireGuard tunnel carries three /48 IPv6 prefixes. Traffic is separated by function so that resolver queries, database replication, and blob storage never contend on the same path.
| Plane | Prefix | Purpose | Services |
|---|---|---|---|
| Application | fd53:RRSS:1000::/48 |
Service-to-service API calls | Resolver, Backend, Caddy, HAProxy |
| Database | fd53:RRSS:1100::/48 |
PostgreSQL replication and queries | pg_auto_failover, streaming replication |
| Storage | fd53:RRSS:1200::/48 |
Object/blob storage traffic | SeaweedFS master + volumes, Consort |
RRSS = region + site hex codes. Each node has a unique ASN for BIRD BGP route advertisement. Routes are installed via WireGuard PostUp and advertised as static /48s.
When someone scans a label, enters a token, or queries the API, this is the path their request takes.
Reads are served by the local node's resolver — every node has a read replica. No cross-region hop needed.
Writes (minting, events) are forwarded to the single-writer primary on us-02 via the application plane.
Token patterns (e.g. XXXXX-XXXXX, XXXX-XXXX-XXXX-XXXX) are matched at the Caddy layer and rewritten to the resolve UI with the token as a query parameter.
The resolver uses append-only event sourcing. Identifiers are immutable once minted; all changes are recorded as lifecycle events.
Two fully independent PostgreSQL clusters: US (3 nodes, pg_auto_failover) and EU (3 nodes). No cross-region data sharing at the database level — Iroh handles replication for objects that need it.
The resolver exposes a simple HTTP API. All endpoints are available on every node.
{"rr","ss","pp","hh"}. Returns the minted identifier in hex, IPv6, and display token formats. Write — forwarded to primary.