Overview
This page defines the core vocabulary used throughout Cryptique’s documentation. Where relevant, each term is mapped to its equivalent in Mixpanel or Amplitude.distinct_id
The primary identifier for a user in Cryptique. Every user — anonymous or identified — has one.- Anonymous users: Cryptique auto-generates a
distinct_id(e.g.anon_abc123xyz) on first visit, stored in a first-party cookie (cq_distinct_id). - Identified users: When you call
Cryptique.identify('your_id'), the anonymousdistinct_idis replaced with the ID you supply (typically your database user ID or UUID).
distinct_id is always developer-controlled after identification — Cryptique never reassigns it.
| Tool | Equivalent term |
|---|---|
| Mixpanel | distinct_id |
| Amplitude | user_id / device_id |
user_identity_id
An internal UUID assigned by Cryptique to each profile record. Unlikedistinct_id (which you control), user_identity_id is system-generated and stable across merges. You will see it in raw data exports; you do not need to set or reference it in your SDK calls.
identify()
The SDK method that links an anonymous session to a known user. Call it once per session, at login or signup.- If the ID has never been seen: the current anonymous profile is converted to an identified profile.
- If the ID has been seen on the same device: sessions merge seamlessly.
- If the ID has been seen on a different device or session: the CQ Intelligence merge engine unifies the profiles automatically.
| Tool | Equivalent |
|---|---|
| Mixpanel | mixpanel.identify() |
| Amplitude | amplitude.setUserId() |
CQ Intelligence merge engine
Cryptique’s internal system for unifying profiles that belong to the same real user across devices, sessions, and wallets. Merge is triggered when:- The same
identify()ID is called across two different sessions or devices. - The same wallet address is connected on two different profiles.
identify() and walletAddress() usage.
auto-events
Behavioral events the SDK sends withoutCryptique.track(), using the same pipeline as custom events. They are off unless you set auto-events="true" on the script tag or call Cryptique.enableAutoEvents().
Examples of event names (not exhaustive):
| Event | What triggers it |
|---|---|
page_view | Page load / route |
element_click | Clicks |
rage_click / dead_click | Frustration / non-interactive patterns |
page_scroll | Scroll depth increases |
form_submit | Form submit (metadata only) |
form_validation_error / form_abandoned | Validation and abandon signals |
media_play / media_pause | Video/audio |
text_selection / copy_action | Selection and copy |
js_error / network_error | Client errors |
page_performance | Performance summary after load |
exit_intent / page_summary | Exit and page-level aggregates |
Cryptique.disableAutoEvent(). See Auto-Events.
| Tool | Equivalent |
|---|---|
| Mixpanel | Autocapture (select plans) |
| Amplitude | Autocapture / Session Replay |
groups
Group membership ties the current user to entities you label with a group key (e.g.company) and group ID (e.g. acme-inc). Group profiles store properties for that pair.
| SDK | Role |
|---|---|
Cryptique.set_group(key, id) / add_group / remove_group | Membership |
Cryptique.get_group(key, id).set({...}) | Group profile (like people.set for the group) |
Cryptique.group namespace — APIs are on the root object. See Groups.
| Tool | Equivalent |
|---|---|
| Mixpanel | Group Analytics |
| Amplitude | Groups |
wallet enrichment
The automatic process by which Cryptique adds on-chain properties to a user profile once a wallet address is linked. No extra SDK calls are needed. Properties added automatically:| Property | Description |
|---|---|
wallet_age_days | Days since the wallet’s first on-chain transaction |
total_transaction_count | All transactions across supported chains |
net_worth_usd | Approximate portfolio value across chains |
eth_balance (and per-chain equivalents) | Native token balance per chain |
dapps_used | dApps the wallet has interacted with |
is_whale | Derived boolean based on net worth |
people methods
TheCryptique.people.* namespace contains methods for setting and managing persistent user profile properties. Unlike event properties (which are attached to a single event), people properties are stored on the profile and persist across sessions.
| Method | What it does |
|---|---|
people.set() | Set properties (overwrites existing values) |
people.set_once() | Set only if the property doesn’t already exist |
people.increment() | Add to a numeric property |
people.append() | Add to a list property (allows duplicates) |
people.union() | Add to a list property (no duplicates) |
people.remove() | Remove a value from a list property |
people.unset() | Delete a property from the profile |
people.deleteUser() | Permanently delete the entire profile |
people.trackCharge() | Record a revenue event on the profile |
| Tool | Equivalent |
|---|---|
| Mixpanel | mixpanel.people.set() etc. |
| Amplitude | amplitude.identify() with Identify object |
trackCharge()
Records a revenue or payment event against a user profile. Useful for tracking subscription payments, NFT purchases, or any monetization event.| Tool | Equivalent |
|---|---|
| Mixpanel | mixpanel.people.track_charge() |
| Amplitude | Revenue event via Revenue object |
transactions
On-chain events generated from your indexed smart contracts. Unlike behavioral events (which you track via the SDK), transactions are captured automatically once you add a contract in Settings → Contracts. Transactions are linked to user profiles via the wallet address — if the wallet that executed a transaction is connected to a Cryptique profile, the transaction appears in that profile’s timeline. See Transactions for details.session
A period of continuous activity by a user. A new session begins when:- A user visits the site for the first time.
- More than 30 minutes have elapsed since their last event.
cq_session_id first-party cookie (30-minute expiry).
| Tool | Equivalent |
|---|---|
| Mixpanel | Session (same concept) |
| Amplitude | Session (same concept) |
Next Steps
User Profile Data Model
How profiles are structured
Implementation Guide
End-to-end implementation patterns