Wallet-first means less to protect
A contact can exist with just a wallet address. Wallets are already public on-chain, so a wallet-only audience carries no personal data to leak. You can enrich, segment, and reach these users with in-app notifications without ever collecting an email or a name. The privacy question only arises when you do collect an email, and that’s where the fingerprint comes in.The email fingerprint
When you store an email, the platform also computes a private, per-workspace fingerprint of it: a one-way keyed hash that can’t be reversed back to the address. The fingerprint is what the platform uses to work with the contact:- Matching and dedup. Two imports of the same address collide on the fingerprint, so you never get duplicate contacts.
- Suppression. Bounces, complaints, and unsubscribes are recorded against the fingerprint and honored on every future send.
- Engagement analytics. Opens and clicks join back to the contact through the fingerprint.
Matching on the fingerprint is exact-match by design. You can look a contact up by their full email, but you can’t do partial or wildcard searches (like “everyone at a domain”) against the fingerprint.
Optional at-rest encryption
Beyond the fingerprint, you can turn on encryption of the address itself so it’s stored as ciphertext rather than plain text. This is available:- Per import, with a protection flag when you start the import.
- Per form, so contacts captured through a specific form are protected on capture.
- Workspace-wide, as a default for everything.
Email verification (syntax, deliverability, spam-trap checks) runs at capture time, before protection is applied, so turning on encryption doesn’t reduce list quality. Merge variables are unaffected, since campaigns render tags like
{{ greeting_name }} and unsubscribe links rather than interpolating the raw address.
