INX · File Identity System

Every file deserves its own identity.

INX gives files a persistent identity beyond filenames and extensions. Register, identify, verify and track files through a unified system built for developers and applications.

INX Registry · Illustrative record
📄
File
→
🆔
INX Identity
→
🗂️
Metadata registry
→
🔗
Connected applications
PDF
project-document.pdf
Registered file · Active
INX-01-AMSYGXCA
INX ID
INX-01-AMSYGXCA
SHA-256 checksum
Verified
File type
Document
Version
v1
Created
2026-10-31
Registered application
File Management
Illustrative example — not a live record. Run it for real at /app.
How INX works

Simple to integrate. Built to last.

INX is a registry and identity layer that works alongside your existing storage — it doesn't replace it.

01

Register

An application registers a file and receives a unique INX identity, independent of its filename.

02

Identify

Applications retrieve a file's metadata, version history and storage location using its INX ID — not its path.

03

Verify

Applications confirm file integrity at any time by comparing content against the SHA-256 checksum recorded for that INX ID.

Features

What's actually running today.

No fabricated roadmap items — this is the local engine you can test right now at /app.

◎

Persistent file IDs

Every registered file gets a INX-01-XXXXXXXX identity that survives renames and content changes.

⧉

Version history

Every new upload under the same INX ID becomes a tracked version, each with its own checksum and size.

✓

SHA-256 verification

Content integrity is computed on every upload and stored per version — not bolted on after the fact.

⌘

REST API

Upload, look up, search, version and delete files through a plain HTTP API — see the Documentation section below.

↺

Soft delete & recovery

Deleted files move to a recoverable trash with restore and permanent-delete actions, not silent data loss.

⬡

Duplicate detection

Files sharing a checksum are flagged as duplicates and can be cleaned up automatically, keeping the original.

Documentation

Running locally — no hosted API yet.

These examples hit your own machine. Start the server with go run ./cmd/inx-server, then run them from a terminal.

Register & sign incurl
curl -c cookies.txt -X POST http://localhost:8080/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"at-least-8-chars"}'

# cookies.txt now holds your session
Register a filecurl
curl -b cookies.txt \
  -F "file=@project-document.pdf" \
  http://localhost:8080/api/v1/files

# → {"inx_id":"INX-01-AMSYGXCA","version":1,...}
API Reference

Every endpoint, running on your machine.

Base URL: http://localhost:8080/api/v1auth = session cookie
POST   /auth/register          Create an account (also signs in)
POST   /auth/login             Sign in
POST   /auth/logout            Sign out
GET    /auth/me                Current user
GET    /overview               Dashboard summary (activity, storage, recent, trash)
POST   /files                  Register a file, get back an INX ID
GET    /files/{id}             Fetch file metadata
GET    /files/{id}/download    Download the latest version
GET    /files/{id}/versions    List all versions
POST   /files/{id}/versions    Register a new version
DELETE /files/{id}             Soft-delete (recoverable)
POST   /files/{id}/restore     Restore a soft-deleted file
DELETE /files/{id}/purge       Permanently delete
GET    /files/deleted          List soft-deleted files
GET    /search?q=              Search your files by name
POST   /duplicates/clean       Remove duplicate files by checksum

This is the live schema of the server running at /app — not a separate, aspirational spec.

Get started

Give your files an identity that outlives their names.

No account on a hosted service required yet — run the engine locally and register your first file in under a minute.

Open the local app →