Guide 10 of 11

Your devices

Per-device keys, device certificates, the signed device list on the chain, and how linking a device works.

DChat GuidesReading time 4 minAll guides

Your account is one identity, but every phone and laptop you use holds its own keys. A certificate from your account key says each of them is yours, and the list of them is anchored on the chain.

Most people use DChat on more than one device: a phone, a laptop, maybe a tablet. DChat treats each one as its own member of every conversation, with its own keys. Nothing secret is copied from one to another.

Each device makes its own keys. When you set up a device, it generates its message keys on the spot. Those keys are never exported and never included in a backup. Your recovery phrase gives you your account key, which stands for you as a person; it does not hand out the keys of any device.

A certificate proves the device is yours. Your account key signs a small certificate for each device: your DID, the device name, the device's public keys and when it was created. The signature is a hybrid of ML-DSA-87 (the NIST post-quantum signature standard, FIPS 204) and Ed25519, and both halves must check out. Anyone who wants to send you a message can verify the certificate against your account, so a stranger cannot slip a device of their own into your list.

The device list lives on the chain. The certificates are bundled into your device list, which your account key signs. The list's fingerprint and version number are written to the chain. When a contact fetches your devices from a relay, their app compares what the relay returned with the fingerprint on the chain, and never accepts a version older than the last one it saw. A relay therefore cannot add a device to your account, and it cannot hide one either.

Linking a new device with a QR code

To add a device, open DChat on the new one and scan a QR code shown by a device you already use. The new device creates its own keys. The device that holds your recovery phrase signs a certificate for it and publishes an updated device list to the chain. That is all it takes for contacts to start including the new device.

A linked device never receives your account key, and it never receives another device's private message keys. It joins as a new member rather than inheriting anything. This is also why only a device that holds your phrase can change the list: a linked laptop that is lost or stolen cannot add devices on your behalf.

How a message reaches all of them

When someone writes to you, their app looks up your device list, checks it, and encrypts the message separately for each of your devices. Each device opens only its own copy. Up to 32 devices of one account receive a message. Your own other devices are included when you write too, so a message you send from your phone shows up on your laptop.

Groups work the same way. Each of your devices is a separate member of a group on MLS, so removing one device removes exactly that member and leaves the others alone.

Removing a device

If you lose a device or stop using it, you remove it from the list. That produces a new signed device list without it, with a higher version number on the chain. Anyone who writes to you sees the new version, stops using the old device's sessions, and leaves it out of the next message. In groups, the removed device's membership is ended with a commit, and from the next epoch it cannot read anything new.

Your safety numbers do not change when you add or remove a device, because they are computed from the two account keys rather than from device keys.

In short

  • One account key, one set of keys per device.
  • A certificate from your account key vouches for each device.
  • The signed device list is anchored on the chain, so relays cannot add or hide devices.
  • Linking is a QR scan; removing is a new list.

Related: Your identity is a key pair · Spec section 4, device certificates and the device list · Groups