SIGNING IN
The same login as
a non-custodial wallet
Twenty-four words, made on your device and sent nowhere. No phone number, no e-mail address, no code to wait for, no password anybody can reset. If you have ever restored a wallet from a phrase, you have already used this screen.
The screens below are the application's own, playing the four steps of a first run — onboarding_page.dart, in the order you meet them.
THE FIRST RUN
Four screens, and not one of them
asks who you are
Point at one and it plays again from the beginning.
Open it, and pick a side
Two buttons and no fields: make an identity, or restore one you already have. Nothing on this screen is looked up, so there is nothing to type into it.
Making one needs no network at all. The twenty-four words come out of the device's own randomness, and the delivery service is not told — it has no idea an account was created, because it holds none.
No sign-up, so no confirmation. Nothing arrives by SMS because nothing here has your number.
Messages, groups and calls that the server carries but cannot read. Your identity is a key pair, not an account — there is nobody to ask for it back.
Create a new identityI already have a recovery phrase
Twenty-four words are the account
BIP-39, the standard a hardware wallet prints. They are shown once, on the device, and they are the only copy: the server holds ciphertext it cannot read and knows nothing about who anyone is.
Write them on paper. Anything that syncs is somewhere else as well, and the somewhere else is the part that gets taken.
Lose them and the account is gone. That is the same sentence as: nobody can take it from you, and nobody can be talked into handing it over.
On paper, not in a photograph. Anything that syncs is somewhere else as well.
Written down?
You will be asked for three of them, to check.
I've written it downA name you pick, and you are in
One name, which is what you publish to the people you talk to — the key is what they verify. A device label, so that revoking a device a year from now is reading a name rather than guessing. And the delivery service, which carries ciphertext and orders it.
No verification code arrives, because nothing was handed over to verify. The button says start, and it starts.
The name identifies nobody: two people may pick the same one, and neither can be mistaken for the other. The key is what tells them apart.
Your name
Device name
Delivery service
Carries ciphertext and orders it. It holds no keys.
Start messagingA second device pastes the words
Restoring does not move the identity, it adds to it: the new device makes a key of its own, and the identity attests it. The devices you already have stay signed in and untouched.
Which is also how one is taken away again — revoke the device you lost, and the phrase still opens every device you kept.
The same twenty-four words on as many devices as you like, each with its own key, each revocable on its own.
Enter the 24 words. This device gets its own key and is attested by the identity — your other devices are untouched.
This device now has a key of its own. Your other devices were not touched.
ContinueWHAT IS NEVER ASKED FOR
The fields that are not
on the screen
- A phone number, and a SIM with a name attached to it
- An e-mail address, and a code that arrives in it
- A password kept on a server, resettable by whoever holds the server
- Your contact list, uploaded so it can find your friends
- An account that can be suspended, and a form to appeal it with
- Twenty-four words, made on the device and shown once
- A key pair — the public half is what people verify you by
- An optional password that never leaves the device
- Nobody's address book: there is nothing to look anyone up in
- Nothing to suspend, because the server has no account for you
None of that is austerity. Every field on the left exists so that somebody can find you by it, bill you through it, or take it away — and a field that is not on the screen cannot be handed to whoever asks for it.
SIDE BY SIDE
Compared with the wallet
already on your phone
Non-custodial wallets settled the question of signing in a decade ago, and the answer was to stop having accounts. This is that answer applied to a messenger — and Compax carries a wallet too, on the same twenty-four words.
A non-custodial wallet
Compax
Where the key is made
On the device, from local randomness
On the device, from local randomness
What restores it
A 12- or 24-word BIP-39 phrase
A 24-word BIP-39 phrase
Who can reset it
Nobody
Nobody
What identifies you
An address derived from the key
A public key, and a name you typed beside it
What a second device does
Types the phrase in again
Types the phrase in, then gets a key of its own
What the service stores about you
Nothing — there is no service
Ciphertext, and the order it arrived in
What logging in costs you
Nothing to type
Nothing to type
ON THE DEVICE
Simple to get into,
hard to break into
No login screen does not mean no lock. The phrase sits in this device's keystore, and three things can be put in front of it — each one optional, each one local.
- 1
A password
Asked for once, in the moment after the phrase is written down and while it is still in your head. PBKDF2 with 210,000 iterations turns it into the key the phrase is kept under.
It is never sent anywhere, so it can never be reset. The dialog says exactly that before you set one, and lets you skip it.
- 2
Biometrics
A face or a fingerprint, gating the keystore this device already has. It is a way not to type the password — not a replacement for it.
Offered on the same screen as the password, and declining is one press.
- 3
A security key
A FIDO2 key holds thirty-two bytes that exist nowhere else. The phrase is encrypted with those and the password at once:
hmac-secreton a touch, and SHA-256 over both halves.Built on macOS and Linux today; the screen that offers one is drawn from what the machine answers at run time rather than from a guess. Bind two — one on the keyring, one in a drawer.
THE PRICE OF IT
What a login this simple costs you
One thing, and it is not a small one: lose every copy of the phrase and every key bound to it, and the account is gone. No support queue can help, because there is nothing on our side to help with — the server holds ciphertext it cannot read and never held anything that would open it. That is the same property as nobody being able to take the account away from you, read from the other side.
NEXT
Try the four screens
It takes about a minute, and the first one is a button. The wallet on the same phrase is next door, and what happens if the words are lost is in the answers.