Get Profile
Retrieve a comprehensive wallet profile by address, including onchain labels, token holdings, DeFi positions, web demographics, and lifecycle data.

Authentication
- Workspace API Key
- x402
- MPP
profiles:read permission. Include the API key in your request headers:Path parameters
address(string): A wallet address or ENS name. Accepts an EVM address (e.g.0x0000000000000000000000000000000000000000), a Solana address, or an ENS name (e.g.vitalik.eth). ENS names are resolved to an address before lookup.
Query parameters
expand
Comma-separated list of optional sections to include in the response.
Supported values:
apps- DeFi app interactions and balanceschains- Per-chain activity metrics (net worth, tx count, first/last activity per chain)tokens- Token holdings with balances and priceslabels- Wallet labels from various sources
apps, chains, and tokens collections are capped at 50 items each.Response Fields
Core Profile Data
| Field | Type | Description |
|---|---|---|
address | string | The wallet address |
net_worth_usd | number | Total net worth in USD across all chains |
tx_count | integer | Total transaction count across all chains |
first_onchain | string | null | First on-chain activity timestamp (ISO 8601) |
last_onchain | string | null | Last on-chain activity timestamp (ISO 8601) |
updated_at | string | null | Last profile update timestamp (ISO 8601) |
Lifecycle
| Field | Type | Description |
|---|---|---|
lifecycle | string | null | User lifecycle stage based on activity patterns |
New- Recently acquired userReturning- User who has returned after absencePower user- Highly active userResurrected- User who returned after long absenceAt Risk- Established user who is still active but going quietChurned- User who has stopped engaging
Social & Identity
| Field | Type | Description |
|---|---|---|
ens | string | null | ENS name |
farcaster | string | null | Farcaster username |
lens | string | null | Lens handle |
basenames | string | null | Base names |
linea | string | null | Linea identifier |
discord | string | null | Discord username |
telegram | string | null | Telegram username |
twitter | string | null | Twitter/X handle |
github | string | null | GitHub username |
linkedin | string | null | LinkedIn profile |
email | string | null | Email address |
website | string | null | Website URL |
instagram | string | null | Instagram handle |
facebook | string | null | Facebook profile |
tiktok | string | null | TikTok handle |
youtube | string | null | YouTube channel |
reddit | string | null | Reddit username |
Profile Display
| Field | Type | Description |
|---|---|---|
avatar | string | null | Avatar image URL |
display_name | string | null | Display name |
description | string | null | Profile description |
User Engagement Data
These fields are populated based on events tracked in your project:| Field | Type | Description |
|---|---|---|
first_seen | string | null | First seen timestamp in your app (ISO 8601) |
last_seen | string | null | Last seen timestamp in your app (ISO 8601) |
num_sessions | integer | null | Total number of sessions |
revenue | number | null | Total revenue |
volume | number | null | Total volume |
points | number | null | Total points |
activity_dates | array | null | Array of activity dates (YYYY-MM-DD format) |
Device & Location
| Field | Type | Description |
|---|---|---|
location | string | null | User location (country code) |
device | string | null | Device type |
browser | string | null | Browser name |
os | string | null | Operating system |
Attribution & UTM
| Field | Type | Description |
|---|---|---|
first_utm_source | string | null | First UTM source |
last_utm_source | string | null | Last UTM source |
first_utm_medium | string | null | First UTM medium |
last_utm_medium | string | null | Last UTM medium |
first_utm_campaign | string | null | First UTM campaign |
last_utm_campaign | string | null | Last UTM campaign |
first_utm_content | string | null | First UTM content |
last_utm_content | string | null | Last UTM content |
first_utm_term | string | null | First UTM term |
last_utm_term | string | null | Last UTM term |
first_referrer | string | null | First referrer domain |
last_referrer | string | null | Last referrer domain |
first_referrer_url | string | null | First referrer full URL |
last_referrer_url | string | null | Last referrer full URL |
first_ref | string | null | First referral code |
last_ref | string | null | Last referral code |
Last Event
| Field | Type | Description |
|---|---|---|
last_type | string | null | Last event type |
last_event | string | null | Last event name |
last_properties | string | null | Last event properties (JSON string) |
Expanded Fields
When using theexpand parameter, these additional fields are included:
chains (when expand=chains)
Array of per-chain wallet data:
| Field | Type | Description |
|---|---|---|
chain_id | string | Chain ID |
net_worth_usd | number | Net worth on this chain |
tx_count | integer | Transaction count on this chain |
first_onchain | string | First activity on this chain |
last_onchain | string | Last activity on this chain |
labels (when expand=labels)
Array of wallet labels:
| Field | Type | Description |
|---|---|---|
id | string | Label ID |
value | string | Label value |
chain_id | string | Chain ID where label applies |
source | string | Label source (e.g., manual, automated) |
apps (when expand=apps)
Array of DeFi app interactions:
| Field | Type | Description |
|---|---|---|
chain_id | string | Chain ID |
id | string | App ID |
name | string | App name |
img | string | null | App image URL |
url | string | null | App URL |
balance_usd | number | Balance in USD for this app |
tokens (when expand=tokens)
Array of token holdings:
| Field | Type | Description |
|---|---|---|
chain_id | string | Chain ID |
token_address | string | Token contract address |
app_id | string | App ID |
name | string | Token name |
symbol | string | Token symbol |
img | string | null | Token image URL |
decimals | integer | Token decimals |
price | number | Token price in USD |
balance | string | Token balance (as string to preserve precision) |
balance_usd | number | Token balance value in USD |
Example Response
Error Responses
| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Invalid address or ENS name, or the ENS name could not be resolved |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | API key does not have profiles:read permission |
| 404 | PROFILE_NOT_FOUND | Profile does not exist |
| 500 | INTERNAL_SERVER_ERROR | Failed to fetch wallet profile data |
Authorizations
Workspace API key (e.g. formo_xxx). Create one in the Formo dashboard under Team Settings > API Keys.
Path Parameters
Wallet address. Accepts an EVM (0x...) or Solana address, or an ENS name (e.g. vitalik.eth) which is resolved to an address.
Query Parameters
Comma-separated: apps, chains, tokens, labels
Response
Profile details
Comprehensive wallet profile with onchain and offchain data
First onchain activity date
Last onchain activity date
First seen in project
Last seen in project
New, Returning, Power user, Resurrected, At Risk, Churned First referrer full URL
Last referrer full URL
First referral code
Last referral code
First UTM content
Last UTM content
First UTM term
Last UTM term
Last event type
Last event name
Last event properties (JSON string)
Array of activity dates (YYYY-MM-DD format)
Requires expand=chains
Requires expand=apps
Requires expand=tokens
Requires expand=labels