Early access. gotin opens in January 2027. Uploads are paused until then, and these pages describe how it will work. About gotin
Book a demo
Specification

How a file
is sealed.

The summary of suite 0x01: what encrypts a file, who holds each key, and the rules the code has to follow. Written so that someone else can check it.

0x01The suite this page describes
3Published algorithms. None of them is ours
0Keys that open your files, held by our servers
Suite 0x01

Three algorithms, each with one job.

A suite is a fixed set of algorithms. If one of them ever has to change, the new set gets a new number.

Sealing the file key

X-Wing

ML-KEM-768 + X25519

Seals each file key so that only your team's key can unseal it. It combines a newer method with an established one, so an attacker would have to break both.

Encrypting the file

XChaCha20-Poly1305

Authenticated encryption

Encrypts what is inside a file, along with its name and type, and detects any change made to the sealed copy.

Your passphrase

Argon2id

Password hashing

Turns your passphrase into the key that locks your team's key on your device. It is slow on purpose, to make guessing expensive.

The two paths

Sealing a file, and opening it.

See the picture on the security page
On your client's device

Sealing

  1. 01A new random key is made for the upload.
  2. 02The files are encrypted with it, names and types included.
  3. 03That key is sealed for your team's key.
  4. 04The sealed copy is padded, so its exact size does not show.
  5. 05It goes straight to storage. The device then discards the key.
On your device

Opening

  1. 01Your passphrase unlocks your team's key, in memory only.
  2. 02The sealed copy is downloaded.
  3. 03Your team's key unseals the file key.
  4. 04The files are decrypted and checked for changes.
  5. 05A copy that fails any check is refused. Nothing partial is shown.
Rules

What the code is not allowed to do.

These are written into the project's own rules, and changes are reviewed against them.

Rule 1

No home-made cryptography

Only published, reviewed implementations of the three algorithms above.

Rule 2

Nothing sensitive in logs

Keys, passphrases, file contents, names, types and exact sizes are never logged and never sent to our servers.

Rule 3

Keys stay in memory

An unlocked key lives only in memory, in an isolated worker, and is cleared when you lock or sign out.

Rule 4

Fail closed

If a sealed copy fails any check, it is refused. There is no partial or best-effort result.

Rule 5

Files skip our application servers

Sealed copies go straight between the browser and storage.

Rule 6

No third-party scripts

Pages that handle files or keys load no scripts from other companies.

Status

Where this stands today.

Version

Suite 0x01.

Status

Being built and tested. Uploads on gotin.dev are paused until it is live.

Audit

No independent audit yet. The report will be linked from the security page when there is one.

Full document

Kept in the repository, next to the code it describes.

Code

The source

The code that follows this specification, and the list of claims we make about it.

Browse the source
Server

What our server stores

The full list of what we can and cannot see.

Read the security page
Report

Found a problem?

Tell us and we will respond.

Report a vulnerability
Planned additions

Not in suite 0x01 yet.

Passkey secret

Used when a recipient outside gotin opens a link. The first open binds the link to their passkey.

Reveal layer

The original of a redacted package, under a key that needs both the passkey secret and a reveal password.

Unlock counting

Every passkey package is counted the same way by our servers, so they cannot tell which ones hold an original.

Connector key

A team key held on a machine the customer runs.

Receipt fingerprints

The hash used for the received log and its daily anchor.

Want to walk through it with us?

Fifteen minutes on a call, with the people who wrote it.