Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.formo.so/llms.txt

Use this file to discover all available pages before exploring further.

The formo profiles command group lets you look up individual wallet profiles, search across your entire user base with filters and sorting, merge-update identity properties, and manage labels on a wallet.

formo profiles get

Fetch a single wallet profile by address or ENS name.
Requires profiles:read scope on your API key.

Arguments

ArgumentTypeRequiredDescription
addressstringWallet address (0x…) or ENS name

Options

OptionTypeRequiredDescription
--expandstringComma-separated list of fields to expand: apps, chains, tokens, labels

Examples

# Get a wallet profile by address
formo profiles get 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

# Get a profile by ENS name
formo profiles get vitalik.eth

# Get profile with expanded labels and chains
formo profiles get vitalik.eth --expand labels,chains

# Get profile with all expanded fields
formo profiles get 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --expand apps,chains,tokens,labels

Expand fields

FieldDescription
appsDApps the wallet has interacted with
chainsBlockchain networks the wallet is active on
tokensToken holdings for the wallet
labelsWallet labels and tags

Search wallet profiles with optional filters, sorting, and pagination.
Requires profiles:read scope on your API key.

Options

OptionTypeRequiredDescription
--addressstringFilter by wallet address
--pagenumberPage number (1-indexed, default 1)
--sizenumberPage size (default 100, max 1000)
--orderByenumField to sort by (see values below)
--orderDirenumSort direction: asc or desc
--expandstringComma-separated fields to expand
--conditionsstringJSON array of FilterCondition objects for advanced filtering
--logicenumLogic operator for combining conditions: and (default) or or

--orderBy values

ValueDescription
last_onchainLast on-chain activity timestamp
first_onchainFirst on-chain activity timestamp
net_worth_usdTotal net worth in USD
updated_atProfile last updated
tx_countTotal transaction count
first_seenFirst seen by Formo
last_seenLast seen by Formo
num_sessionsNumber of sessions
revenueRevenue attributed
volumeVolume attributed
pointsPoints attributed

Examples

# List first 10 profiles
formo profiles search --size 10

# Top 5 profiles by net worth
formo profiles search --orderBy net_worth_usd --orderDir desc --size 5

# Get the second page of 20 profiles
formo profiles search --page 2 --size 20

# Search with a filter condition
formo profiles search \
  --conditions '[{"field":"net_worth_usd","op":"gt","value":10000}]' \
  --size 20

# Search profiles matching either condition (OR logic)
formo profiles search \
  --conditions '[{"field":"net_worth_usd","op":"gt","value":10000},{"field":"tx_count","op":"gt","value":50}]' \
  --logic or \
  --size 20
The response is a paginated envelope: { data, total, page, size, has_more }. Use has_more to know whether to fetch --page <n+1>.

FilterCondition reference

The --conditions option accepts a JSON array of filter condition objects:
[
  { "field": "net_worth_usd", "op": "gt", "value": 10000 },
  { "field": "tx_count", "op": "gte", "value": 5 }
]
FieldTypeDescription
fieldstringProfile field to filter on
opstringOperator (see table below)
valueanyValue to compare against

Filter operators

OperatorDescription
eqEqual to
neqNot equal to
gtGreater than
gteGreater than or equal to
ltLess than
lteLess than or equal to
inIn a set of values
ninNot in a set of values
By default, multiple conditions are combined with AND logic. Use --logic or to combine with OR logic instead.

formo profiles update

Merge-update identity properties on a wallet profile. Only the listed property keys are accepted; unknown keys are rejected server-side.
Requires profiles:write scope on your API key.

Arguments

ArgumentTypeRequiredDescription
addressstringWallet address (0x…) or ENS name

Options

OptionTypeRequiredDescription
--propertiesstringJSON object of properties to merge

Allowed property keys

user_id, display_name, email, farcaster, discord, twitter, telegram, instagram, website, github, linkedin, facebook, tiktok, youtube, reddit, avatar, description, location, ens, lens, basenames, linea

Examples

# Set display name and Twitter handle
formo profiles update 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
  --properties '{"display_name":"Vitalik","twitter":"VitalikButerin"}'

# Set just the email
formo profiles update vitalik.eth \
  --properties '{"email":"alice@example.com"}'

formo profiles labels create

Upsert one or more labels on a wallet profile. Provide either a single label via --tagId or a batch via --labels.
Requires profiles:write scope on your API key.

Arguments

ArgumentTypeRequiredDescription
addressstringWallet address (0x…) or ENS name

Options

OptionTypeRequiredDescription
--tagIdstringLabel identifier (e.g. vip, airdrop_eligible). Required unless --labels is provided.
--valuestringOptional label value (e.g. tier name, country code)
--chainIdstringOptional chain identifier the label applies to
--labelsstringJSON array of UserLabelInput objects for batch upsert

Examples

# Tag a wallet as VIP
formo profiles labels create 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --tagId vip

# Apply a tiered label scoped to a chain
formo profiles labels create 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
  --tagId tier --value gold --chainId 1

# Apply multiple labels in one call
formo profiles labels create 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
  --labels '[{"tag_id":"vip"},{"tag_id":"airdrop_eligible","chain_id":"1"}]'

UserLabelInput shape

FieldTypeRequiredDescription
tag_idstringLabel identifier
valuestringOptional label value
chain_idstringOptional chain identifier

formo profiles labels delete

Delete a label from a wallet profile. Pass --chainId to scope the deletion to a chain-specific label.
Requires profiles:write scope on your API key.

Arguments

ArgumentTypeRequiredDescription
addressstringWallet address (0x…) or ENS name

Options

OptionTypeRequiredDescription
--tagIdstringLabel identifier to delete
--chainIdstringOptional chain identifier to scope the deletion

Examples

# Remove the vip label
formo profiles labels delete 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 --tagId vip

# Remove a chain-scoped label
formo profiles labels delete 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 \
  --tagId tier --chainId 1