Every Matrix identity is a Matrix User ID (MXID) of the form:
@localpart:server-name
For example:
@alice:your-name.meldry.com
@ is the sigil that marks this as a user. Other sigils are ! for rooms, # for room aliases and $ for events (more below).[a-z0-9._=-] plus / in historical accounts, with length up to 255 chars. Case is usually preserved but compared case-insensitively.The MXID is permanent. Your display name (a human-friendly label like "Alice Chen") and avatar can change at any time; the MXID cannot. This is important when people verify each other's identities — you verify an MXID, not a display name, because display names are easy to spoof.
Matrix uses four prefix characters to mark what kind of thing an identifier refers to:
| Sigil | Meaning | Example |
|---|---|---|
@ | User (account) | @alice:your-name.meldry.com |
! | Room (internal ID) | !AbCdEfGhIjKlMn:server |
# | Room alias (friendly name) | #general:your-name.meldry.com |
$ | Event (message, reaction, etc.) | $event_hash:server |
Internal room IDs (!…) are opaque and unique forever. A room alias (#general:server) is a human-friendly pointer at a room ID; the same room can have many aliases and they can be changed by room admins.
You can also bind "external" identifiers to your Matrix account: email addresses, phone numbers, and (historically) Microsoft/Google accounts. These 3PIDs let someone find you by email or phone even if they don't know your MXID. Binding is stored in an identity server (Meldry runs its own) and is revocable at any time.
bob@example.com to a room.3PID lookup is opt-in: you have to explicitly bind the 3PID to make yourself discoverable. Many Matrix users operate anonymously behind just a localpart and never touch 3PIDs.
Identity servers are a classic privacy trade-off. You gain discoverability but you also publish "this 3PID belongs to a Matrix user" to anyone who looks. Meldry's per-workspace identity server is scoped to your workspace — external servers can't enumerate it. If you don't care about 3PID discovery, don't bind anything.
When you sign in from a new client — laptop, phone, tablet, server-side bot — the homeserver gives that session a device ID (e.g. WOXXHRVJKP). One MXID can have many device IDs simultaneously, one per place you're signed in.
Devices are the unit of E2EE trust: when someone verifies "Alice", what they're really verifying is Alice's cross-signing key, which in turn vouches for all of Alice's devices. New devices get added to the list and need to be re-verified (or they piggyback on cross-signing, which we cover in the encryption section).
When you sign up for a Meldry workspace, we automatically create one Matrix user on your homeserver with:
Subsequent users (your teammates) are created either by you via the dashboard, or through self-signup if you enable open registration. Each gets their own MXID on the same homeserver.