A personal TrustDID identity for individual email users. No domain or web hosting required — your DID is hosted by TrustDID.
This guide has been merged into the unified TrustDID User Guide.
The new guide covers both Professional and Business users in one place, with role-specific badges so you know exactly which sections apply to you.
Users whose email provider does not support hosting a did.json file. This includes Gmail, Outlook.com, Yahoo, Videotron, and most ISP email addresses. TrustDID hosts your public DID document at users.trustdid.ca/user/{your-id}/did.json so anyone can verify your signatures.
Already registered? Individual Dashboard →
After registering via the web enrollment and receiving your API token and User UUID, run the setup command:
One command — use the API token and ID from your enrollment completion page. Your account type is detected from the token automatically:
trustdid-setup --managed YOUR_TOKEN YOUR_ID
The setup will:
~/.trustdid/config.jsonYour registration token is automatically saved in config.json under
your profile's registrationToken field. This token is used for publishing DID updates
and removing your profile from the server.
On completion, the following files are created:
~/.trustdid/
config.json ← signing configuration
user/
{uuid}/
did.json ← your DID document (published online)
keys/
{uuid}/
signing.pem ← Ed25519 private key (keep secret!)
signing.pub
encryption.pem ← X25519 private key (keep secret!)
encryption.pub
signing_pq.pem ← ML-DSA-44 secret key (keep secret!)
signing_pq.pub
backup/
trustdid_backup_*.tar.gz
When someone verifies a document you signed, the verifier answers two independent questions: Document authenticity — is it genuine? (Verified / Inconsistent / Failed / Unsigned) — and Trusted signer — who vouches for it? (Yes / No / Unknown, answered against the trust registries the verifier relies on). The math tells you it's genuine — people tell you whether to trust it.
TrustDID Document Verification
==============================
Signer: did:web:users.trustdid.ca:user:52ab2c63#active
Timestamp: 2026-08-12T14:03:22Z
Document authenticity Verified
Trusted signer Yes
Authentic and trusted
Your hosted identity lives on the dedicated domain users.trustdid.ca. TrustDID hosting your identity does not by itself vouch for you — a "Trusted signer: Yes" answer comes from trust registries that list you. A perfectly authentic document from a signer the recipient's registries don't list shows "Trusted signer: No", and that is a normal, honest outcome, not a failure.
The TrustDID browser extension for Chrome, Edge, and Firefox lets you verify signed web pages and documents, and sign emails in Gmail directly from your browser.
chrome://extensions/ (or edge://extensions/)chrome-edge/ folder from the downloads pageabout:debugging#/runtime/this-firefoxmanifest.json from the extracted firefox/ folderWhen you visit a page that has a .vrfy file, click the TrustDID icon to verify the page's authenticity and see the signer's identity. In Gmail, the extension adds sign and verify buttons directly in the compose and read views.
The Outlook and Thunderbird plugins enable automatic email signing and one-click verification for received emails. They require the TrustDID local service.
# Windows: install as a service (requires admin)
trustdid-service install
trustdid-service start
# Any platform: run in foreground
trustdid-service run
manifest.xml from the extracted Outlook zip.xpi fileOnce installed, outgoing emails are automatically signed with your TrustDID identity, and received signed emails can be verified with one click.
Sign any file — your email identity works exactly like a company identity for signing:
# Basic signing
trustdid-sign report.pdf
# With reason and location
trustdid-sign contract.pdf --reason "Agreement review" --location "Montreal, QC"
# GUI mode
trustdid-sign invoice.pdf --tui
This produces a .vrfy verification manifest. Send both the original file and the .vrfy file to your recipient.
report.pdf ← original document (unchanged)
report.pdf.vrfy ← verification manifest (send both)
Your signature contains:
did:web:users.trustdid.ca:user:{uuid})| Argument | Description |
|---|---|
document |
Path to file to sign (required) |
--reason, -r |
Reason for signing (optional) |
--location, -l |
Location information (optional) |
--tui |
Show GUI progress window |
Verify a signed document received from anyone — no keys or account needed:
# Verify a document (auto-detects .vrfy file)
trustdid-verify contract.pdf
# TUI mode (animated terminal UI)
trustdid-verify contract.pdf --tui
# Output result as JSON
trustdid-verify contract.pdf --json
The verifier fetches the signer's public key from their DID, verifies the cryptographic signature, and reports the result — all locally on your computer. No documents are ever uploaded.
| Argument | Description |
|---|---|
document |
Path to document to verify (required) |
signature |
Path to .vrfy file (optional, auto-detected) |
--tui |
Interactive terminal UI with animated verification steps |
--json |
Output result as JSON |
--skip-hash |
Skip document hash check (email body verification) |
Send encrypted files that only the intended recipient can read:
# Encrypt a file for a recipient
trustdid-encrypt confidential.pdf recipient@example.com
# Specify which encryption key to use
trustdid-encrypt report.pdf alice@example.com --key active-encrypt
# GUI mode
trustdid-encrypt --tui
Send the two output files to the recipient:
confidential.pdf.enc ← encrypted data
confidential.pdf.meta ← encryption metadata
When you receive encrypted files, decrypt them:
# Auto-detect profile from .meta
trustdid-decrypt confidential.pdf.enc
# GUI mode
trustdid-decrypt --tui
| trustdid-encrypt | |
|---|---|
document |
File to encrypt |
email |
Recipient email address |
--key, -k |
Recipient key ID (skips interactive selection) |
--tui |
GUI mode |
| trustdid-decrypt | |
encrypted |
Encrypted .enc file |
metadata |
.meta file (optional, auto-detected) |
--profile, -p |
Local profile for decryption (auto-detected from .meta) |
--tui |
GUI mode |
To remove your email identity and delete the remote DID document from users.trustdid.ca:
# Remove by email address (uses stored token)
trustdid-setup --remove you@example.com
# Remove by UUID
trustdid-setup --remove 52ab2c63
The removal process:
config.jsonThe --remove command does not delete your private keys from ~/.trustdid/keys/.
Previously signed documents remain verifiable even after removal, but no new signatures can be published.
If the token was not stored in config.json (older versions), supply it manually with
--token YOUR_TOKEN. If the token is lost entirely, contact TrustDID IT to remove the server-side profile via the admin panel.
Your TrustDID email identity creates a DID that looks like this:
did:web:users.trustdid.ca:user:52ab2c63
This resolves to a publicly accessible DID document at:
https://users.trustdid.ca/user/52ab2c63/did.json
did:web: — the DID method (web-based, no blockchain)users.trustdid.ca — the dedicated domain for hosted individual identities (TrustDID hosts it for you):user:52ab2c63 — your unique 8-character identifierShare your DID with anyone who needs to verify your documents or send you encrypted files. They can look up your public keys anytime at the URL above.
Only the public keys are published in the DID document. Your signing and encryption private keys stay in ~/.trustdid/keys/ on your machine. TrustDID never has access to your private keys.
| Command | Purpose | Key Arguments |
|---|---|---|
trustdid-setup |
Create / remove identity | --managed, --remove, --pull |
trustdid-sign |
Sign any document | document, --reason, --location, --tui |
trustdid-verify |
Verify a signed document | document, --tui, --json, --skip-hash |
trustdid-encrypt |
Encrypt for a recipient | document, email, --key, --tui |
trustdid-decrypt |
Decrypt a received file | encrypted, --profile, --tui |
trustdid-service |
Local service for Outlook plugin | run/install/start/stop |
You're all set. You now have a self-sovereign digital identity tied to your email address — with document signing, encryption, and post-quantum cryptography built in.