Changelog
We ship new features, fixes, and improvements to Formo every week.
Changelog
We ship new features, fixes, and improvements to Formo every week.
Here are this week’s highlights:
Improved Charts and Dashboards
Add Charts to Existing Boards from Templates
Improved Role-Based Access Control
Agent Memory for Ask AI
Page URL Normalization
Improvements and Fixes
Improved Charts and Dashboards

Charts across the dashboard got a batch of practical upgrades this week:
New event totals on the activity page. View totals events per event type and other breakdowns for a date range.
New pie chart legend controls. Hover over a legend entry to highlight its slice, click one or more to highlight slices. This works everywhere pie charts appear in the Overview and custom dashboards.
New dashboard templates UI. The templates browser is easier to scan, with clearer previews and descriptions for each template. Learn How to Build a Custom Dashboard.
Add Charts to Existing Boards from Templates
You can now add charts from a library of chart templates into an existing custom board instead of creating a new one from scratch.

This makes it faster to iterate: Open a board, pick the charts you want, and add them. A few templates worth trying:
Conversion Funnel (Behavior): Example funnel chart for your key touchpoints.
User Retention (Behavior): Weekly cohort retention off any event.
Daily Active Users (Behavior): DAU trend over time as a line chart.
Revenue by UTM Source (Acquisition): Revenue attribution grouped by campaign source.
Top DeFi App Positions (Onchain): Apps where your users hold positions across all of DeFi.
Improved Role-Based Access Control
Formo uses role-based access control to control what each teammate can view or change:
Owner: Full access to the workspace. Owners can invite admins, transfer ownership, delete the workspace, and delete projects. Each workspace has one owner.
Admin: Full access to the workspace. Can manage members, roles, and settings but cannot invite admins or delete the workspace and projects.
Editor: Can manage projects, forms, contracts, charts, dashboards, and alerts. Editors cannot manage members, workspace settings, and key project settings.
Viewer: Read-only access to projects and forms.

Workspace members can now better see the surfaces their role can actually act on:
Your current role now shows in the account dropdown, so you always know what you can and cannot do in the current workspace.
Billing, usage, workspace, and project settings are now hidden entirely from roles that can’t act on them.
Sensitive user data (social handles, profile properties) can now be optionally hidden from Viewer roles for teams needing more control on visibility.
Learn more about roles.
Agent Memory for Ask AI
Ask AI now has Agent Memory: durable workspace facts that persist across conversations, so you no longer have to re-teach it key metric definitions, core funnels, or team knowledge each time.

The agent captures workspace-level facts as you work (for example, the key steps of your core conversion funnel: page → connect_wallet → swap), stores them per workspace, and uses them to ground its answers. Admins can review or remove entries at any time.
Page URL Normalization
Page URLs and paths are now normalized at ingest so /pricing and /pricing/roll up correctly instead of appearing as separate rows.
This update is live for top pages, pathname filters, and every page-scoped chart across the Overview and custom dashboards. Existing workspaces and projects do not need to do anything.
The web SDK now applies the same normalization at capture time. Upgrade to @formo/analytics 1.33.1 to get consistent path handling end-to-end, including trailing-slash stripping on page events.
Improvements and Fixes
Added dynamic date variables to chart examples.
Fixed the audit log auth feed so routine session refresh no longer surfaces as signed out events.
Added event totals popover on the Activity chart header for at-a-glance breakdown counts.
Improved onboarding checklist: cleaner step ordering and more accurate completion detection.
Improved demo project so referrers, UTM sources, and entry/exit paths look like real traffic.
Fixed closed funnels to exclude users whose step-1 event fires in the conversion-window slack past the end date.
Fixed Ask AI: queued messages no longer disappear on stream errors, tool-call output stays behind the tool boundary, and streaming code blocks render at a readable size.
Fixed Ask AI: redundant tool invocations within a single turn are now deduplicated.
Fixed Ask AI: JSON-only insight responses no longer append the “how I calculated” footer.
Added Passport label fallback so humanity and aggregate scores are more reliably set in wallet profiles.
Updated the invite screen to show a simpler CTA when the invite has already been responded to.
Platform security and performance improvements.
Here are this week’s highlights:
Improved Charts and Dashboards
Add Charts to Existing Boards from Templates
Improved Role-Based Access Control
Agent Memory for Ask AI
Page URL Normalization
Improvements and Fixes
Improved Charts and Dashboards

Charts across the dashboard got a batch of practical upgrades this week:
New event totals on the activity page. View totals events per event type and other breakdowns for a date range.
New pie chart legend controls. Hover over a legend entry to highlight its slice, click one or more to highlight slices. This works everywhere pie charts appear in the Overview and custom dashboards.
New dashboard templates UI. The templates browser is easier to scan, with clearer previews and descriptions for each template. Learn How to Build a Custom Dashboard.
Add Charts to Existing Boards from Templates
You can now add charts from a library of chart templates into an existing custom board instead of creating a new one from scratch.

This makes it faster to iterate: Open a board, pick the charts you want, and add them. A few templates worth trying:
Conversion Funnel (Behavior): Example funnel chart for your key touchpoints.
User Retention (Behavior): Weekly cohort retention off any event.
Daily Active Users (Behavior): DAU trend over time as a line chart.
Revenue by UTM Source (Acquisition): Revenue attribution grouped by campaign source.
Top DeFi App Positions (Onchain): Apps where your users hold positions across all of DeFi.
Improved Role-Based Access Control
Formo uses role-based access control to control what each teammate can view or change:
Owner: Full access to the workspace. Owners can invite admins, transfer ownership, delete the workspace, and delete projects. Each workspace has one owner.
Admin: Full access to the workspace. Can manage members, roles, and settings but cannot invite admins or delete the workspace and projects.
Editor: Can manage projects, forms, contracts, charts, dashboards, and alerts. Editors cannot manage members, workspace settings, and key project settings.
Viewer: Read-only access to projects and forms.

Workspace members can now better see the surfaces their role can actually act on:
Your current role now shows in the account dropdown, so you always know what you can and cannot do in the current workspace.
Billing, usage, workspace, and project settings are now hidden entirely from roles that can’t act on them.
Sensitive user data (social handles, profile properties) can now be optionally hidden from Viewer roles for teams needing more control on visibility.
Learn more about roles.
Agent Memory for Ask AI
Ask AI now has Agent Memory: durable workspace facts that persist across conversations, so you no longer have to re-teach it key metric definitions, core funnels, or team knowledge each time.

The agent captures workspace-level facts as you work (for example, the key steps of your core conversion funnel: page → connect_wallet → swap), stores them per workspace, and uses them to ground its answers. Admins can review or remove entries at any time.
Page URL Normalization
Page URLs and paths are now normalized at ingest so /pricing and /pricing/roll up correctly instead of appearing as separate rows.
This update is live for top pages, pathname filters, and every page-scoped chart across the Overview and custom dashboards. Existing workspaces and projects do not need to do anything.
The web SDK now applies the same normalization at capture time. Upgrade to @formo/analytics 1.33.1 to get consistent path handling end-to-end, including trailing-slash stripping on page events.
Improvements and Fixes
Added dynamic date variables to chart examples.
Fixed the audit log auth feed so routine session refresh no longer surfaces as signed out events.
Added event totals popover on the Activity chart header for at-a-glance breakdown counts.
Improved onboarding checklist: cleaner step ordering and more accurate completion detection.
Improved demo project so referrers, UTM sources, and entry/exit paths look like real traffic.
Fixed closed funnels to exclude users whose step-1 event fires in the conversion-window slack past the end date.
Fixed Ask AI: queued messages no longer disappear on stream errors, tool-call output stays behind the tool boundary, and streaming code blocks render at a readable size.
Fixed Ask AI: redundant tool invocations within a single turn are now deduplicated.
Fixed Ask AI: JSON-only insight responses no longer append the “how I calculated” footer.
Added Passport label fallback so humanity and aggregate scores are more reliably set in wallet profiles.
Updated the invite screen to show a simpler CTA when the invite has already been responded to.
Platform security and performance improvements.
Here are this week's highlights:
Dune Integration
Multi-Select Page Filters
Improvements and Fixes
Dune Integration
You can now query data from Dune directly inside your Formo dashboards, so your existing Dune queries can live next to your product analytics on the same board.

Write a Dune query, pick a chart type, and view the result alongside your Formo insights without leaving the Formo dashboard. Perfect for teams who already maintain protocol dashboards on Dune and want them consolidated in one place.
A Dune API Key is required for this feature.
Multi-Select Page Filters
The page filter on the overview page now supports multiple selections.

Add or remove pages and analyze multiple pages all at once. You can view traffic and other metrics for one or more pages easily.
Improvements and Fixes
Added support for Robinhood mainnet (chain ID 4663) alongside the existing Robinhood testnet support.
Added URL trailing slash normalization to the Web SDK (1.33.1), so
/pricingand/pricing/no longer split into two rows in your analytics.Added AAL2 step-up authentication to MFA management endpoints so enrolling and rotating factors requires a fresh MFA challenge.
Improved chart tooltips with a multi-column layout that shows the current value, the previous period's value, and the percentage delta on hover, so you can read period-over-period movement without eyeballing two lines.
Improved event filters to order built-in SDK properties first, so common properties such as urls in page events are easier to find across every event type.
Improved project deletion to run transactionally so a partial failure no longer leaves orphaned data behind.
Fixed the funnel step picker truncating events on high-cardinality projects, so every event is now available when building a funnel.
Fixed NaN values showing up in the weekly insights email Top Referrers and Top Countries sections.
Performance improvements and security fixes.
Here are this week's highlights:
Dune Integration
Multi-Select Page Filters
Improvements and Fixes
Dune Integration
You can now query data from Dune directly inside your Formo dashboards, so your existing Dune queries can live next to your product analytics on the same board.

Write a Dune query, pick a chart type, and view the result alongside your Formo insights without leaving the Formo dashboard. Perfect for teams who already maintain protocol dashboards on Dune and want them consolidated in one place.
A Dune API Key is required for this feature.
Multi-Select Page Filters
The page filter on the overview page now supports multiple selections.

Add or remove pages and analyze multiple pages all at once. You can view traffic and other metrics for one or more pages easily.
Improvements and Fixes
Added support for Robinhood mainnet (chain ID 4663) alongside the existing Robinhood testnet support.
Added URL trailing slash normalization to the Web SDK (1.33.1), so
/pricingand/pricing/no longer split into two rows in your analytics.Added AAL2 step-up authentication to MFA management endpoints so enrolling and rotating factors requires a fresh MFA challenge.
Improved chart tooltips with a multi-column layout that shows the current value, the previous period's value, and the percentage delta on hover, so you can read period-over-period movement without eyeballing two lines.
Improved event filters to order built-in SDK properties first, so common properties such as urls in page events are easier to find across every event type.
Improved project deletion to run transactionally so a partial failure no longer leaves orphaned data behind.
Fixed the funnel step picker truncating events on high-cardinality projects, so every event is now available when building a funnel.
Fixed NaN values showing up in the weekly insights email Top Referrers and Top Countries sections.
Performance improvements and security fixes.
Here are this week’s highlights:
New Contract Events Pipeline
Improved Ask AI
Expanded Filter Operators and Breakdowns
Demo Project for New Workspaces
Improvements and Fixes
This release builds on the previous product update around first-seen behavior filters and transaction frequency.
New Contract Events Pipeline
The contract events pipeline received a major upgrade this week. Setup is faster, you have more granular control over which contracts feed your analytics, and onchain activity is now attributable to the builder behind each transaction.

Recommended contracts. The Contracts page now surfaces contracts your project already interacts with based on transaction events but hasn’t tracked yet. Add recommended contracts to get automatic transaction decoding and contract events.
Contract ingestion toggle. Each contract gets more granular ingestion controls. Each contract defaults as disabled to keep the contract’s ABI available for transaction decoding while excluding it from event ingestion. Enable it for your core contracts to ingest its contract events.
Builder code attribution. Contract events now automatically extract the builder code from the source transaction, so you can attribute activity to the builder that made it.
Performance and reliability improvements. Pipelines spin up instantly. Automatic retries, dead-letter queues, and at-least-once delivery guarantees at any scale.
Available everywhere. The new contract events pipeline support every major EVM chain.
Improved Ask AI
Ask AI is now smarter, faster, and more reliable. The chat is easier to read, you can keep typing while it’s still answering, and answers come back more quickly with greater accuracy.

Behind the scenes, the Formo Agent is now powered by the latest frontier model. The result is a deeper understanding of your data, sharper handling of complex questions, and cleaner charts.
Expanded Filter Operators and Breakdowns
Filters across Formo now support a richer set of operators.

String filters on Overview, Activity, Funnels (including segment filters on Boards), breakdown tabs (Sources, Pages, Events, Locations, Wallets, Chains) now accept
contains,starts with, andends withalongside the existing equals operators.Numeric filters on retention gain
notEqualsand>=/<=aliases, and Overview metric filters pick up>=and<=on the generic dimension chain.The Activity chart also gains a breakdown dropdown, so you can split the events time-series by channel, device, location, referrer, UTM, builder code, and more, using the same breakdown taxonomy as Overview.
The same operators and breakdowns are also available via the Formo API.
Demo Project for New Workspaces
New workspaces without an active project now see a fully populated demo project with realistic mock data across all of the analytics surfaces.

Explore the product end-to-end before you install Formo, including Overview, Activity, Funnels, Retention, Insights, Wallet Intelligence, Ask Formo, boards, and segments.
Improvements and Fixes
Expanded channel classification to detect ads, webmail, and mobile app referrers, so more sessions land in a meaningful attribution bucket instead of “Direct”.
Added an optional
_is_deletedtombstone to the label upsert API, so backfilled imports can express “label removed at past time T” and point-in-time retention drops the wallet in the correct historical week.Added DefiLlama as a price oracle for token USD conversion, broadening coverage for long-tail tokens.
Added a user-configurable default timezone in account settings, so reports, exports, and charts render in your local timezone instead of UTC by default.
Released
@formo/cli1.0.2 with expanded coverage of alerts, boards, charts, contracts, events, profiles, and segments, so you can drive the full Formo API from your terminal or AI agents.Improved the Users page by hiding enrichment columns that have no data, so the table fits more useful columns on screen.
Improved Tinybird MCP reliability with reconnect and retry on closed connections, so long-running Ask Formo sessions no longer fail mid-answer.
Improved identity-graph clustering by splitting edge materialization into 8 hash shards, so clustering jobs finish reliably for the largest projects instead of timing out.
Improved
project_userslatency with a single-scan rewrite oflinked_addresses, speeding up the Users page for projects with many linked wallets.Fixed the activity feed in the profile drawer inheriting the Users table’s page number, so opening a profile now always shows the latest event instead of an older page.
Fixed step reordering in the Form Builder silently dropping the welcome step.
Fixed a number-formatting bug where integers ending in zero (100, 2500) were corrupted to (1, 25).
Fixed event deduplication dropping events that arrived without a
message_idby stamping a UUID at ingest.Fixed the Insights weekly email occasionally failing to send, so digests now land reliably in your inbox.
Hidden the Transactions per Wallet card when no wallets have transacted, so empty states no longer clutter the Overview.
Added a master “All” row to the Create API Key dialog that toggles Read or Write across every scope at once, preserving the Read/Write invariants.
Added support for Robinhood Chain Testnet (chainId 46630).
Platform security and performance improvements.
Here are this week’s highlights:
New Contract Events Pipeline
Improved Ask AI
Expanded Filter Operators and Breakdowns
Demo Project for New Workspaces
Improvements and Fixes
This release builds on the previous product update around first-seen behavior filters and transaction frequency.
New Contract Events Pipeline
The contract events pipeline received a major upgrade this week. Setup is faster, you have more granular control over which contracts feed your analytics, and onchain activity is now attributable to the builder behind each transaction.

Recommended contracts. The Contracts page now surfaces contracts your project already interacts with based on transaction events but hasn’t tracked yet. Add recommended contracts to get automatic transaction decoding and contract events.
Contract ingestion toggle. Each contract gets more granular ingestion controls. Each contract defaults as disabled to keep the contract’s ABI available for transaction decoding while excluding it from event ingestion. Enable it for your core contracts to ingest its contract events.
Builder code attribution. Contract events now automatically extract the builder code from the source transaction, so you can attribute activity to the builder that made it.
Performance and reliability improvements. Pipelines spin up instantly. Automatic retries, dead-letter queues, and at-least-once delivery guarantees at any scale.
Available everywhere. The new contract events pipeline support every major EVM chain.
Improved Ask AI
Ask AI is now smarter, faster, and more reliable. The chat is easier to read, you can keep typing while it’s still answering, and answers come back more quickly with greater accuracy.

Behind the scenes, the Formo Agent is now powered by the latest frontier model. The result is a deeper understanding of your data, sharper handling of complex questions, and cleaner charts.
Expanded Filter Operators and Breakdowns
Filters across Formo now support a richer set of operators.

String filters on Overview, Activity, Funnels (including segment filters on Boards), breakdown tabs (Sources, Pages, Events, Locations, Wallets, Chains) now accept
contains,starts with, andends withalongside the existing equals operators.Numeric filters on retention gain
notEqualsand>=/<=aliases, and Overview metric filters pick up>=and<=on the generic dimension chain.The Activity chart also gains a breakdown dropdown, so you can split the events time-series by channel, device, location, referrer, UTM, builder code, and more, using the same breakdown taxonomy as Overview.
The same operators and breakdowns are also available via the Formo API.
Demo Project for New Workspaces
New workspaces without an active project now see a fully populated demo project with realistic mock data across all of the analytics surfaces.

Explore the product end-to-end before you install Formo, including Overview, Activity, Funnels, Retention, Insights, Wallet Intelligence, Ask Formo, boards, and segments.
Improvements and Fixes
Expanded channel classification to detect ads, webmail, and mobile app referrers, so more sessions land in a meaningful attribution bucket instead of “Direct”.
Added an optional
_is_deletedtombstone to the label upsert API, so backfilled imports can express “label removed at past time T” and point-in-time retention drops the wallet in the correct historical week.Added DefiLlama as a price oracle for token USD conversion, broadening coverage for long-tail tokens.
Added a user-configurable default timezone in account settings, so reports, exports, and charts render in your local timezone instead of UTC by default.
Released
@formo/cli1.0.2 with expanded coverage of alerts, boards, charts, contracts, events, profiles, and segments, so you can drive the full Formo API from your terminal or AI agents.Improved the Users page by hiding enrichment columns that have no data, so the table fits more useful columns on screen.
Improved Tinybird MCP reliability with reconnect and retry on closed connections, so long-running Ask Formo sessions no longer fail mid-answer.
Improved identity-graph clustering by splitting edge materialization into 8 hash shards, so clustering jobs finish reliably for the largest projects instead of timing out.
Improved
project_userslatency with a single-scan rewrite oflinked_addresses, speeding up the Users page for projects with many linked wallets.Fixed the activity feed in the profile drawer inheriting the Users table’s page number, so opening a profile now always shows the latest event instead of an older page.
Fixed step reordering in the Form Builder silently dropping the welcome step.
Fixed a number-formatting bug where integers ending in zero (100, 2500) were corrupted to (1, 25).
Fixed event deduplication dropping events that arrived without a
message_idby stamping a UUID at ingest.Fixed the Insights weekly email occasionally failing to send, so digests now land reliably in your inbox.
Hidden the Transactions per Wallet card when no wallets have transacted, so empty states no longer clutter the Overview.
Added a master “All” row to the Create API Key dialog that toggles Read or Write across every scope at once, preserving the Read/Write invariants.
Added support for Robinhood Chain Testnet (chainId 46630).
Platform security and performance improvements.
Here are this week’s highlights:
User Attribution Filters
Retention Cohorts by Label
Historical Label Backfills
Profiles Batch API
Improvements and Fixes
User Attribution Filters
The Users page now has an attribution mode toggle on the Wallets, Clusters, and Visitors tables, so you can switch between Any, First touch, and Last touch to see how a wallet looks under each attribution model without leaving the page.

This makes it easy to compare a campaign’s first-touch reach against the wallets that actually converted under last-touch, and to spot the difference between users your channels introduced versus the ones they closed.
Retention Cohorts by Label
Retention cohorts now support filtering by user labels, so you can measure retention for the segments that actually matter to you.

You can send a custom label like open_interest, define a cohort to wallets that carry that label (e.g. open_interest > 1000), and watch how they retain over time, instead of being limited to event-based cohorts.
Carry-forward is built into the retention logic, so a label written once (or sporadically) is correctly applied to every subsequent week until the next event for that key.
Historical Label Backfills
The Create Label API now accepts an optional timestamp on each label write, so you can record labels at a point in the past instead of always at server time:
Current time: omit
timestampand the label is recorded at the moment you send it. This is the right default for live signals you’re sending as users earn them.Historical data: pass an ISO-8601
timestampto record the label at a specific point in the past. This lets you backfill historical readings (for example, last quarter’sopen_interestsnapshot) so retention cohorts can evaluate each label value at the correct point in time.
This pairs especially well with cohorts based on numeric thresholds, where the value you cared about on a user’s signup day may not be the value they carry today.
Profiles Batch API
The Profiles API now has batch endpoints for user labels and properties, so you can upsert up to 100 wallets in a single request instead of one wallet per call. Perfect for a nightly data syncs and cron jobs.

Both endpoints return partial-success results, so a single bad row doesn’t fail the whole batch.
Improvements and Fixes
Added CSV export for analytics overview charts on Countries, Pages, Sources, Devices, Wallets, and Chains.
Added links from overview page charts to the users page so you can click any row to drill into the underlying wallets matching selected filters.
Added page size selector to the Activity and Users tables.
Improved accuracy for visitor and session counts on overview charts so they match the headline KPIs, using shared first-touch attribution model.
The Channel filter on the Users page now segments wallets by the channel that brought them in on their very first session, matching first-touch attribution on the Overview Channel chart.
Show full country names in the legend and tooltip of the Countries chart, in place of two-letter ISO codes.
Added
afandreferrerto the Web SDK‘s default tracked referral parameters so common affiliate and referrer query strings are captured out of the box.Added a workspace ID field to workspace settings, so support can debug your issues faster.
Improved Ask AI error diagnostics so transient failures are actually debuggable, with richer error context captured for our team.
Improved Ask AI response quality with reorganized system prompts and tighter SQL and chart guardrails.
Improved Ask AI tool-call resilience so mid-stream errors fall back gracefully instead of breaking the response.
Improved user clusters query performance.
Fixed Boards chart pagination scrolling to the wrong chart.
Fixed the date-picker disappearing on Boards.
Fixed the missing template title and description on the Dashboard template.
Fixed user count inflation in overview charts caused by anonymous ID churn from automated bots.
Platform security and performance improvements.
Here are this week’s highlights:
User Attribution Filters
Retention Cohorts by Label
Historical Label Backfills
Profiles Batch API
Improvements and Fixes
User Attribution Filters
The Users page now has an attribution mode toggle on the Wallets, Clusters, and Visitors tables, so you can switch between Any, First touch, and Last touch to see how a wallet looks under each attribution model without leaving the page.

This makes it easy to compare a campaign’s first-touch reach against the wallets that actually converted under last-touch, and to spot the difference between users your channels introduced versus the ones they closed.
Retention Cohorts by Label
Retention cohorts now support filtering by user labels, so you can measure retention for the segments that actually matter to you.

You can send a custom label like open_interest, define a cohort to wallets that carry that label (e.g. open_interest > 1000), and watch how they retain over time, instead of being limited to event-based cohorts.
Carry-forward is built into the retention logic, so a label written once (or sporadically) is correctly applied to every subsequent week until the next event for that key.
Historical Label Backfills
The Create Label API now accepts an optional timestamp on each label write, so you can record labels at a point in the past instead of always at server time:
Current time: omit
timestampand the label is recorded at the moment you send it. This is the right default for live signals you’re sending as users earn them.Historical data: pass an ISO-8601
timestampto record the label at a specific point in the past. This lets you backfill historical readings (for example, last quarter’sopen_interestsnapshot) so retention cohorts can evaluate each label value at the correct point in time.
This pairs especially well with cohorts based on numeric thresholds, where the value you cared about on a user’s signup day may not be the value they carry today.
Profiles Batch API
The Profiles API now has batch endpoints for user labels and properties, so you can upsert up to 100 wallets in a single request instead of one wallet per call. Perfect for a nightly data syncs and cron jobs.

Both endpoints return partial-success results, so a single bad row doesn’t fail the whole batch.
Improvements and Fixes
Added CSV export for analytics overview charts on Countries, Pages, Sources, Devices, Wallets, and Chains.
Added links from overview page charts to the users page so you can click any row to drill into the underlying wallets matching selected filters.
Added page size selector to the Activity and Users tables.
Improved accuracy for visitor and session counts on overview charts so they match the headline KPIs, using shared first-touch attribution model.
The Channel filter on the Users page now segments wallets by the channel that brought them in on their very first session, matching first-touch attribution on the Overview Channel chart.
Show full country names in the legend and tooltip of the Countries chart, in place of two-letter ISO codes.
Added
afandreferrerto the Web SDK‘s default tracked referral parameters so common affiliate and referrer query strings are captured out of the box.Added a workspace ID field to workspace settings, so support can debug your issues faster.
Improved Ask AI error diagnostics so transient failures are actually debuggable, with richer error context captured for our team.
Improved Ask AI response quality with reorganized system prompts and tighter SQL and chart guardrails.
Improved Ask AI tool-call resilience so mid-stream errors fall back gracefully instead of breaking the response.
Improved user clusters query performance.
Fixed Boards chart pagination scrolling to the wrong chart.
Fixed the date-picker disappearing on Boards.
Fixed the missing template title and description on the Dashboard template.
Fixed user count inflation in overview charts caused by anonymous ID churn from automated bots.
Platform security and performance improvements.
Here are this week's highlights:
Wallet Clusters
Filter by Channel
New Dashboard Templates
Improved Geolocation
Improvements and Fixes
Wallet Clusters
Introducing a new wallet Clusters tab on the Users page. Clusters are groups of wallets associated with a single user.
Using identity resolution, multiple wallet addresses are grouped into identity-stitched user clusters: one row per wallet cluster.

Clustering happens automatically behind the scenes with minimal setup required. Here's how clustering works:
First, an explicit
user_idfrom the SDK identify event (for example, a Privy user ID or an in-app custom user id) merges every wallet identified under it into one cluster.Then, wallets without an explicit user ID are still grouped by
anonymous_id, using the earliest-seen canonical address as the cluster key.Otherwise, the wallet stands as its own single-address cluster.
Each cluster row shows the sum of individual wallet data including net worth, socials, labels, first and last seen, volume, revenue, and demographics.
Filter by Channel
You can now filter data by channel based on a 12-channel taxonomy such as Organic Social, Paid Search, Referrals, and more.

The twelve channels are:
Channel | How it's classified |
|---|---|
Paid Search | Paid signal + search-engine referrer ( |
Paid Video | Paid signal + video-platform referrer ( |
Paid Social | Paid signal + social-platform referrer ( |
| |
Referrals |
|
Display |
|
AI | Referrer is an AI assistant (ChatGPT, Claude, Perplexity, Gemini, DeepSeek, Copilot, etc.) |
Organic Search |
|
Organic Social |
|
Organic Video | Video-platform referrer with no paid signal |
Referrers | Any other non-empty referrer not matched above |
Direct | No referrer, no UTM, no click IDs (typed URL, bookmark, stripped referrer) |
Filter by Channel works across every chart and metric on the overview page (top sources, top pages, top locations, top chains, top events, top wallets, KPIs, revenue, volume, wallets, transactions).
Learn more about Channels.
New Dashboard Templates
Three new dashboard templates are now available. Choose from the following templates when you create a custom board, to help you get started:
User Retention & Cohorts Dashboard
User Segments Dashboard
Feature Adoption Dashboard

Each template ships with prebuilt charts and SQL queries against your project's custom events so you can set up a working board more quickly. Pick a template and create your first custom board in a few clicks.
Need more help? Check out How to Build a Custom Dashboard.
Improved Geolocation
Improved country detection for sesions and users is now live with server-side geolocation. This works together with a browser-timezone fallback to improve data accuracy for users with non-default timezones and VPNs.
Audience insights, top countries, and country breakdowns across the dashboard report countries is now more accurate than before.
Analytics remains privacy-friendly: no IP addresses are logged or stored anywhere in Formo. Read more about what we collect.
This improvement is live today. No SDK upgrade is required.
Improvements and Fixes
Added dashboard template previews so you can see the charts inside a template before creating it.
Added a new Tracking Plan Generator free tool that outputs a recommended event taxonomy, property schemas, and SDK code snippets for web and mobile to help users get started more quickly.
Added page and session scopes to the Filter by Page filter, so you can fllter for both sessions that viewed page X and data for a specific page X.
Added a refresh button to the Users table so you can pull fresh data without reloading the whole page.
Improved Format SQL performance in the SQL editor, with faster formatting on large queries.
Improved the churn analysis section on the Insights page.
Fixed an edge case with Solana wallet profiling.
Minor UI and UX fixes.
Performance improvements and security fixes.
Here are this week's highlights:
Wallet Clusters
Filter by Channel
New Dashboard Templates
Improved Geolocation
Improvements and Fixes
Wallet Clusters
Introducing a new wallet Clusters tab on the Users page. Clusters are groups of wallets associated with a single user.
Using identity resolution, multiple wallet addresses are grouped into identity-stitched user clusters: one row per wallet cluster.

Clustering happens automatically behind the scenes with minimal setup required. Here's how clustering works:
First, an explicit
user_idfrom the SDK identify event (for example, a Privy user ID or an in-app custom user id) merges every wallet identified under it into one cluster.Then, wallets without an explicit user ID are still grouped by
anonymous_id, using the earliest-seen canonical address as the cluster key.Otherwise, the wallet stands as its own single-address cluster.
Each cluster row shows the sum of individual wallet data including net worth, socials, labels, first and last seen, volume, revenue, and demographics.
Filter by Channel
You can now filter data by channel based on a 12-channel taxonomy such as Organic Social, Paid Search, Referrals, and more.

The twelve channels are:
Channel | How it's classified |
|---|---|
Paid Search | Paid signal + search-engine referrer ( |
Paid Video | Paid signal + video-platform referrer ( |
Paid Social | Paid signal + social-platform referrer ( |
| |
Referrals |
|
Display |
|
AI | Referrer is an AI assistant (ChatGPT, Claude, Perplexity, Gemini, DeepSeek, Copilot, etc.) |
Organic Search |
|
Organic Social |
|
Organic Video | Video-platform referrer with no paid signal |
Referrers | Any other non-empty referrer not matched above |
Direct | No referrer, no UTM, no click IDs (typed URL, bookmark, stripped referrer) |
Filter by Channel works across every chart and metric on the overview page (top sources, top pages, top locations, top chains, top events, top wallets, KPIs, revenue, volume, wallets, transactions).
Learn more about Channels.
New Dashboard Templates
Three new dashboard templates are now available. Choose from the following templates when you create a custom board, to help you get started:
User Retention & Cohorts Dashboard
User Segments Dashboard
Feature Adoption Dashboard

Each template ships with prebuilt charts and SQL queries against your project's custom events so you can set up a working board more quickly. Pick a template and create your first custom board in a few clicks.
Need more help? Check out How to Build a Custom Dashboard.
Improved Geolocation
Improved country detection for sesions and users is now live with server-side geolocation. This works together with a browser-timezone fallback to improve data accuracy for users with non-default timezones and VPNs.
Audience insights, top countries, and country breakdowns across the dashboard report countries is now more accurate than before.
Analytics remains privacy-friendly: no IP addresses are logged or stored anywhere in Formo. Read more about what we collect.
This improvement is live today. No SDK upgrade is required.
Improvements and Fixes
Added dashboard template previews so you can see the charts inside a template before creating it.
Added a new Tracking Plan Generator free tool that outputs a recommended event taxonomy, property schemas, and SDK code snippets for web and mobile to help users get started more quickly.
Added page and session scopes to the Filter by Page filter, so you can fllter for both sessions that viewed page X and data for a specific page X.
Added a refresh button to the Users table so you can pull fresh data without reloading the whole page.
Improved Format SQL performance in the SQL editor, with faster formatting on large queries.
Improved the churn analysis section on the Insights page.
Fixed an edge case with Solana wallet profiling.
Minor UI and UX fixes.
Performance improvements and security fixes.
Here are this week's highlights:
Lifecycle Settings
At-Risk Lifecycle Stage
x402 and MPP Support
Unique Visitors
Improvements and Fixes
Lifecycle Settings
Lifecycle thresholds are now configurable per project from your project settings page.

Defaults like "Power user = 5 active days in last 30 days" don't fit every product, so you can now tune the windows for New, Returning, Power user, At Risk, Churned, and Resurrected lifecycles to match how your team defines engagement.
New At Risk Lifecycle Stage
You can now see a new At Risk lifecycle stage that flags previously engaged users whose activity has slowed but who haven't fully churned yet.
At Risk is the right lifecycle to retain them with an intervention campaign before they're gone for good, and it surfaces consistently across the Users page, Lifecycle reports, and wallet profile labels.
x402 and MPP Support for Profiles API
The Profiles API is now available to AI Agents via x402 (Base) and MPP (Tempo.) Agents can pay 0.05 USDC per request to get enriched wallet profile data with no API key required.

This unlocks pay-per-call agent access to wallet enrichment and personalization use cases based on onchain data.
Unique Visitors
Formo now tracks Unique Visitors, equivalent to GA's Active Users. Unique Visitors counts distinct anonymous_ids over the selected period, deduplicating across sessions and days.
This gives you a clean top-of-funnel KPIs alongside wallets, transactions, and revenue, and a like-for-like comparison with the visitor metric most teams already report from web analytics.
Improvements and Fixes
Added Binance verification labels, automatically tagging wallets that hold a Binance Account Bound Token so you can segment KYC-verified users.
Added a billing period selector on the Usage page so you can page through previous billing periods to inspect historical event and MAU consumption.
Added a hover dropdown for Dashboards when the sidebar is collapsed, so you can switch boards without expanding the nav.
Fixed duplicating a board so chart settings and positions are copied alongside the layout.
Improved form digest cron resilience, retrying through transient 522s from upstream origins instead of failing the run.
Performance improvements and security fixes.
Here are this week's highlights:
Lifecycle Settings
At-Risk Lifecycle Stage
x402 and MPP Support
Unique Visitors
Improvements and Fixes
Lifecycle Settings
Lifecycle thresholds are now configurable per project from your project settings page.

Defaults like "Power user = 5 active days in last 30 days" don't fit every product, so you can now tune the windows for New, Returning, Power user, At Risk, Churned, and Resurrected lifecycles to match how your team defines engagement.
New At Risk Lifecycle Stage
You can now see a new At Risk lifecycle stage that flags previously engaged users whose activity has slowed but who haven't fully churned yet.
At Risk is the right lifecycle to retain them with an intervention campaign before they're gone for good, and it surfaces consistently across the Users page, Lifecycle reports, and wallet profile labels.
x402 and MPP Support for Profiles API
The Profiles API is now available to AI Agents via x402 (Base) and MPP (Tempo.) Agents can pay 0.05 USDC per request to get enriched wallet profile data with no API key required.

This unlocks pay-per-call agent access to wallet enrichment and personalization use cases based on onchain data.
Unique Visitors
Formo now tracks Unique Visitors, equivalent to GA's Active Users. Unique Visitors counts distinct anonymous_ids over the selected period, deduplicating across sessions and days.
This gives you a clean top-of-funnel KPIs alongside wallets, transactions, and revenue, and a like-for-like comparison with the visitor metric most teams already report from web analytics.
Improvements and Fixes
Added Binance verification labels, automatically tagging wallets that hold a Binance Account Bound Token so you can segment KYC-verified users.
Added a billing period selector on the Usage page so you can page through previous billing periods to inspect historical event and MAU consumption.
Added a hover dropdown for Dashboards when the sidebar is collapsed, so you can switch boards without expanding the nav.
Fixed duplicating a board so chart settings and positions are copied alongside the layout.
Improved form digest cron resilience, retrying through transient 522s from upstream origins instead of failing the run.
Performance improvements and security fixes.
Here are this week's highlights:
Behavior Filters Based on First-Seen
Transaction Frequency Chart
Query Parameter Redaction
Sticky Referrer Tracking
Improvements and Fixes
Behavior Filters Based on First-Seen
Behavior filters now support First-seen relative time windows to make targeting much more precise.

Until now, behavior filters were limited to rolling windows ("did X in the last N days"). You can now anchor windows to each user's first-seen timestamp, so you can ask questions like:
Users who visited the Trading Competition page within 2 hours of their first session (attribute engagement directly to the campaign that brought them in).
Users who connected a wallet, deposited, and clicked "Enroll" within their first 24 hours (first-day activation funnel).
Users who came back to transact more than 7 days after first-seen (true returning users vs. same-session conversions).
Together these mean better attribution to specific campaigns, sharper onboarding activation analysis, and more targeted segments.
Learn more in the Wallet Segmentation guide.
Transaction Frequency Chart
A new transaction frequency chart on the Users page show you how often your users transact.

View the distribution of transaction counts per wallet to distinguish one-time users from power users, spot drop-off between first and second transactions, and target wallets by activity tier.
Query Parameter Redaction
You can now strip sensitive query parameters before events are stored or sent. Pass a list of query parameter names and the SDK redacts matching keys (case-insensitive) from event properties.

Learn more in the Web SDK docs.
Sticky Referrer Tracking
The Web SDK now keeps first-touch referrer sticky across an entire session, so internal navigation no longer overwrites the source that brought a user in.
This means cleaner channel reports, more accurate first-touch attribution, and no more "self-referral" noise from internal page-to-page navigation.
Improvements and Fixes
Hardened AI Insights generation so Acquisition, Activation, and Behavioral cards reliably render on the page and in the weekly email.
Improved Ask AI response quality with an eval-and-review harness, tighter prompt rules, and better date and tool-selection handling.
Extracted
volume,revenue, andpointsto typed columns on events for faster, more reliable revenue and volume queries across dashboards and the SQL Explorer.Fixed a bug with filtering by Referrer URLs.
Steered invited users to join their team's existing workspace during onboarding instead of accidentally creating a new one.
Added wallet icons (via RDNS) to the Top Wallets chart for quicker visual identification of which wallets your users are connecting with.
Standardized all destructive-action confirmation modals to a single "type the resource name to confirm" pattern across projects, workspaces, dashboards, charts, and API keys.
Added an upgrade button to the Usage page, mirroring the Billing page placement.
Upgraded
@formo/analyticsto v1.32.0 across all 17 example apps.Improved infrastructure monitoring for faster incident detection.
Performance and security improvements.
Here are this week's highlights:
Behavior Filters Based on First-Seen
Transaction Frequency Chart
Query Parameter Redaction
Sticky Referrer Tracking
Improvements and Fixes
Behavior Filters Based on First-Seen
Behavior filters now support First-seen relative time windows to make targeting much more precise.

Until now, behavior filters were limited to rolling windows ("did X in the last N days"). You can now anchor windows to each user's first-seen timestamp, so you can ask questions like:
Users who visited the Trading Competition page within 2 hours of their first session (attribute engagement directly to the campaign that brought them in).
Users who connected a wallet, deposited, and clicked "Enroll" within their first 24 hours (first-day activation funnel).
Users who came back to transact more than 7 days after first-seen (true returning users vs. same-session conversions).
Together these mean better attribution to specific campaigns, sharper onboarding activation analysis, and more targeted segments.
Learn more in the Wallet Segmentation guide.
Transaction Frequency Chart
A new transaction frequency chart on the Users page show you how often your users transact.

View the distribution of transaction counts per wallet to distinguish one-time users from power users, spot drop-off between first and second transactions, and target wallets by activity tier.
Query Parameter Redaction
You can now strip sensitive query parameters before events are stored or sent. Pass a list of query parameter names and the SDK redacts matching keys (case-insensitive) from event properties.

Learn more in the Web SDK docs.
Sticky Referrer Tracking
The Web SDK now keeps first-touch referrer sticky across an entire session, so internal navigation no longer overwrites the source that brought a user in.
This means cleaner channel reports, more accurate first-touch attribution, and no more "self-referral" noise from internal page-to-page navigation.
Improvements and Fixes
Hardened AI Insights generation so Acquisition, Activation, and Behavioral cards reliably render on the page and in the weekly email.
Improved Ask AI response quality with an eval-and-review harness, tighter prompt rules, and better date and tool-selection handling.
Extracted
volume,revenue, andpointsto typed columns on events for faster, more reliable revenue and volume queries across dashboards and the SQL Explorer.Fixed a bug with filtering by Referrer URLs.
Steered invited users to join their team's existing workspace during onboarding instead of accidentally creating a new one.
Added wallet icons (via RDNS) to the Top Wallets chart for quicker visual identification of which wallets your users are connecting with.
Standardized all destructive-action confirmation modals to a single "type the resource name to confirm" pattern across projects, workspaces, dashboards, charts, and API keys.
Added an upgrade button to the Usage page, mirroring the Billing page placement.
Upgraded
@formo/analyticsto v1.32.0 across all 17 example apps.Improved infrastructure monitoring for faster incident detection.
Performance and security improvements.
Here are this week's highlights:
Filter by Page
Angular SDK support
Crossmint and OpenFort examples
Improvements and Fixes
Filter by Page
You can view the performance of specific pages with the new Page filter. The Overview and Activity pages now support filtering by Page, such as specific vault or campaign page.
You can also click any row in the Top Pages chart to apply the page filter inline, the same way segments work elsewhere in the dashboard.
Angular SDK support
The Web SDK now supports Angular. Non-React frameworks (Angular, Vue, Svelte, vanilla JS) can now use Formo without React types. React and Next.js apps continue to work as before.
See the Angular example and the docs for more details.
Crossmint and OpenFort examples
The examples repo now includes end-to-end integrations for Crossmint embedded wallets and OpenFort smart wallets.
Crossmint is a platform for companies and agents to integrate stablecoin rails — including wallets, onramps, stablecoin orchestration & more.
OpenFort is the wallet stack for agentic and stablecoin payments —one open-source SDK instead of five vendors.
Improvements and Fixes
Added Angular SDK support.
Added Crossmint and OpenFort wallet examples to the examples repo.
Added a rolling curve view and richer tooltip to the Retention chart.
Refined bounce rate to an engagement-aware definition so single-page sessions with real engagement no longer inflate the metric.
Replaced the cohort-analysis Insights with volume and revenue Insights.
Added ENS name support to the public profiles API.
Added a copy button to Top Pages chart rows in the Analytics Overview.
Restricted the Formo MCP OAuth flow to Scale and Enterprise plans, matching API key access.
Restricted Weekly Insights emails to paid workspaces.
Fixed the referrer URL filter not applying on the overview page.
Fixed funnel conversion-window editor display drifting from execution.
Fixed a datepicker visual glitch when selecting a date range.
Fixed the Retention chart so still-maturing weeks render as blank instead of 0%, removing the false churn cliff on the newest cohort. AI insight rules and weekly email prompts were updated in the same pass so missing weekly retention is no longer misread as churn.
Fixed token-gated forms SIWE verification for smart-contract wallets on non-mainnet chains.
Fixed empty segments dropdown on public boards.
Fixed invalid MCP tools list error.
Migrated all SDK repos to pnpm 11 with a 7-day minimum release age for stricter supply-chain protection.
Hardened GitHub Actions across SDK repos (SHA-pinned third-party actions, command-injection fixes in the release workflow, protected credentials.)
Performance and security fixes across the platform.
Here are this week's highlights:
Filter by Page
Angular SDK support
Crossmint and OpenFort examples
Improvements and Fixes
Filter by Page
You can view the performance of specific pages with the new Page filter. The Overview and Activity pages now support filtering by Page, such as specific vault or campaign page.
You can also click any row in the Top Pages chart to apply the page filter inline, the same way segments work elsewhere in the dashboard.
Angular SDK support
The Web SDK now supports Angular. Non-React frameworks (Angular, Vue, Svelte, vanilla JS) can now use Formo without React types. React and Next.js apps continue to work as before.
See the Angular example and the docs for more details.
Crossmint and OpenFort examples
The examples repo now includes end-to-end integrations for Crossmint embedded wallets and OpenFort smart wallets.
Crossmint is a platform for companies and agents to integrate stablecoin rails — including wallets, onramps, stablecoin orchestration & more.
OpenFort is the wallet stack for agentic and stablecoin payments —one open-source SDK instead of five vendors.
Improvements and Fixes
Added Angular SDK support.
Added Crossmint and OpenFort wallet examples to the examples repo.
Added a rolling curve view and richer tooltip to the Retention chart.
Refined bounce rate to an engagement-aware definition so single-page sessions with real engagement no longer inflate the metric.
Replaced the cohort-analysis Insights with volume and revenue Insights.
Added ENS name support to the public profiles API.
Added a copy button to Top Pages chart rows in the Analytics Overview.
Restricted the Formo MCP OAuth flow to Scale and Enterprise plans, matching API key access.
Restricted Weekly Insights emails to paid workspaces.
Fixed the referrer URL filter not applying on the overview page.
Fixed funnel conversion-window editor display drifting from execution.
Fixed a datepicker visual glitch when selecting a date range.
Fixed the Retention chart so still-maturing weeks render as blank instead of 0%, removing the false churn cliff on the newest cohort. AI insight rules and weekly email prompts were updated in the same pass so missing weekly retention is no longer misread as churn.
Fixed token-gated forms SIWE verification for smart-contract wallets on non-mainnet chains.
Fixed empty segments dropdown on public boards.
Fixed invalid MCP tools list error.
Migrated all SDK repos to pnpm 11 with a 7-day minimum release age for stricter supply-chain protection.
Hardened GitHub Actions across SDK repos (SHA-pinned third-party actions, command-injection fixes in the release workflow, protected credentials.)
Performance and security fixes across the platform.
Here are this week's highlights:
OAuth on Formo MCP
Segments on Funnels
Event Exclusions in Flow Charts
Improvements and Fixes
OAuth on Formo MCP
The Formo MCP server now supports OAuth, so you can add it as a remote MCP connector in Claude, ChatGPT, Cursor, and other clients. Connect your Formo account with the tools you already use.

Learn more in the MCP docs.
Segments on Funnels
You can now filter Funnels by any saved segment, the same way you can on the Users and Activity pages.
Pick a segment from the chart controls and the entire funnel recomputes against that cohort, so you can compare conversion across audiences without duplicating charts.

Learn more in the Segments docs.
Event Exclusions in Flow Charts
Flow charts (user paths) now support an event exclusion filter. Pick events to leave out of the path entirely and the chart reflows around only the events you care about.
This is the fastest way to clean up noisy flows without changing what you instrument.
Improvements and Fixes
Added
cmd+enterkeyboard shortcut to submit on all code editors.Added unsubscribe controls usage limit alerts.
Fixed Ask AI stopping after the initial request.
Fixed datepicker not rendering on the Number charts edit preview.
Fixed errors when deleting a newly created board.
Fixed flow chart undercount where long converters were dropped from the end-step branch.
Fixed device, browser, and OS aggregations losing
unknownvalues.Fixed minor billing UI bugs.
Fixed orphaned instance page events in the Web SDK.
Fixed a Formo MCP
tools/list400 error.Performance and security fixes across the platform.
Here are this week's highlights:
OAuth on Formo MCP
Segments on Funnels
Event Exclusions in Flow Charts
Improvements and Fixes
OAuth on Formo MCP
The Formo MCP server now supports OAuth, so you can add it as a remote MCP connector in Claude, ChatGPT, Cursor, and other clients. Connect your Formo account with the tools you already use.

Learn more in the MCP docs.
Segments on Funnels
You can now filter Funnels by any saved segment, the same way you can on the Users and Activity pages.
Pick a segment from the chart controls and the entire funnel recomputes against that cohort, so you can compare conversion across audiences without duplicating charts.

Learn more in the Segments docs.
Event Exclusions in Flow Charts
Flow charts (user paths) now support an event exclusion filter. Pick events to leave out of the path entirely and the chart reflows around only the events you care about.
This is the fastest way to clean up noisy flows without changing what you instrument.
Improvements and Fixes
Added
cmd+enterkeyboard shortcut to submit on all code editors.Added unsubscribe controls usage limit alerts.
Fixed Ask AI stopping after the initial request.
Fixed datepicker not rendering on the Number charts edit preview.
Fixed errors when deleting a newly created board.
Fixed flow chart undercount where long converters were dropped from the end-step branch.
Fixed device, browser, and OS aggregations losing
unknownvalues.Fixed minor billing UI bugs.
Fixed orphaned instance page events in the Web SDK.
Fixed a Formo MCP
tools/list400 error.Performance and security fixes across the platform.
Here are this week's highlights:
Performance improvements
Last-touch attribution for funnels
Funnel and Flow public API endpoints
Performance improvements
We've completed significant performance improvements across the platform, including wallets, transactions, top pages, top sources, funnels, and flow charts.
Last-touch attribution for funnels
Funnels now support last-touch attribution as a first-class breakdown option, letting you credit the most recent source, campaign, or referrer before a user converted.
This complements first-touch attribution and gives growth and marketing teams a clearer view of which channels are actually driving conversion at the moment of action, rather than only the channel that introduced the user.
Open any existing funnel and toggle the attribution type to last-touch to see how your numbers shift. Learn more in the Funnels documentation.
Funnel and Flow public API endpoints
Funnels and Flows are now available through the public Query API, so you can pull conversion and user-journey data programmatically into dashboards, notebooks, and downstream systems.
The OpenAPI spec has been updated alongside the new endpoints, making it easy to generate clients and explore the schema. If you build internal tooling on top of Formo, point your scripts and integrations at the new endpoints.
See the API overview for more.
Here are this week's highlights:
Performance improvements
Last-touch attribution for funnels
Funnel and Flow public API endpoints
Performance improvements
We've completed significant performance improvements across the platform, including wallets, transactions, top pages, top sources, funnels, and flow charts.
Last-touch attribution for funnels
Funnels now support last-touch attribution as a first-class breakdown option, letting you credit the most recent source, campaign, or referrer before a user converted.
This complements first-touch attribution and gives growth and marketing teams a clearer view of which channels are actually driving conversion at the moment of action, rather than only the channel that introduced the user.
Open any existing funnel and toggle the attribution type to last-touch to see how your numbers shift. Learn more in the Funnels documentation.
Funnel and Flow public API endpoints
Funnels and Flows are now available through the public Query API, so you can pull conversion and user-journey data programmatically into dashboards, notebooks, and downstream systems.
The OpenAPI spec has been updated alongside the new endpoints, making it easy to generate clients and explore the schema. If you build internal tooling on top of Formo, point your scripts and integrations at the new endpoints.
See the API overview for more.
Here are this week's highlights:
AI SQL Helpers
Ask AI Follow-up Questions
Funnels Compare Mode
Area Chart
Global Search
Profile Side Panel
Query API
Improvements and Fixes
AI SQL helpers
Three new AI helpers now sit next to the SQL editor on both the Explorer page and the create/edit chart page
Explain this Query describes what a SQL query does in plain English.
Generate SQL turns a prompt into SQL.
Format SQL cleans up an existing query in place.

Ask AI Follow-up Questions
Every Ask AI response now ends suggested follow-up questions you can click to keep digging.

The suggestions are generated from the conversation so far and the project's saved charts, events, and segments, so they stay relevant to the data you're actually looking at instead of pulling you off-topic.
Funnels Compare Mode
The funnel chart now has a Compare mode toggle in its date controls, mirroring the one on the overview page, so you can put two date ranges side by side.

Each step now also shows the median time to convert from the previous step, so you can see where users stall, not just where they drop.
Area Charts
You can now create Area Charts.

Area charts support stacking out of the box. It's available alongside Line, Bar, Number, and the other existing chart types.
Global Search
Hit Cmd+K (or Ctrl+K) anywhere in the app to open a command palette. Jump to key pages, custom boards, segments, past chats, and settings even more quickly.

If your query does not match a known action, ask the question directly to Ask AI.

Profile Side Panel
On the Users page, clicking a user now opens its profile in a side panel instead opening a new tab for a smoother experience.

The side panel keeps your filtered list visible so you can scan a cohort and dip into individual wallets without losing context. A link to the standalone profile page is still there when you want to bookmark and share it.
Query API
The full Query API is now live, with 18 public endpoints that expose the same backed data that powers every chart on the Formo dashboard. Use this to build internal tooling and dashboards with Formo data.
Improvements and Fixes
Added standardized public API error codes.
Added Idempotency-Key support on writes to public API.
Added new Formo CLI
profiles updateandprofiles labels create/deletecommands.Added a
user_idfield to wallet profile data so server-side identifiers can be carried alongside wallet identity.Added a Send Test Alert action to alerts so you can verify your webhook endpoint and payload.
Added URL validation for external SSO and OAuth redirects for security.
Refactored account and workspace onboarding flow.
Standardized filter field naming across the public API surface.
Fixed sticky table column rendering and users filter bar UI issue.
Performance improvements and fixes.
Here are this week's highlights:
AI SQL Helpers
Ask AI Follow-up Questions
Funnels Compare Mode
Area Chart
Global Search
Profile Side Panel
Query API
Improvements and Fixes
AI SQL helpers
Three new AI helpers now sit next to the SQL editor on both the Explorer page and the create/edit chart page
Explain this Query describes what a SQL query does in plain English.
Generate SQL turns a prompt into SQL.
Format SQL cleans up an existing query in place.

Ask AI Follow-up Questions
Every Ask AI response now ends suggested follow-up questions you can click to keep digging.

The suggestions are generated from the conversation so far and the project's saved charts, events, and segments, so they stay relevant to the data you're actually looking at instead of pulling you off-topic.
Funnels Compare Mode
The funnel chart now has a Compare mode toggle in its date controls, mirroring the one on the overview page, so you can put two date ranges side by side.

Each step now also shows the median time to convert from the previous step, so you can see where users stall, not just where they drop.
Area Charts
You can now create Area Charts.

Area charts support stacking out of the box. It's available alongside Line, Bar, Number, and the other existing chart types.
Global Search
Hit Cmd+K (or Ctrl+K) anywhere in the app to open a command palette. Jump to key pages, custom boards, segments, past chats, and settings even more quickly.

If your query does not match a known action, ask the question directly to Ask AI.

Profile Side Panel
On the Users page, clicking a user now opens its profile in a side panel instead opening a new tab for a smoother experience.

The side panel keeps your filtered list visible so you can scan a cohort and dip into individual wallets without losing context. A link to the standalone profile page is still there when you want to bookmark and share it.
Query API
The full Query API is now live, with 18 public endpoints that expose the same backed data that powers every chart on the Formo dashboard. Use this to build internal tooling and dashboards with Formo data.
Improvements and Fixes
Added standardized public API error codes.
Added Idempotency-Key support on writes to public API.
Added new Formo CLI
profiles updateandprofiles labels create/deletecommands.Added a
user_idfield to wallet profile data so server-side identifiers can be carried alongside wallet identity.Added a Send Test Alert action to alerts so you can verify your webhook endpoint and payload.
Added URL validation for external SSO and OAuth redirects for security.
Refactored account and workspace onboarding flow.
Standardized filter field naming across the public API surface.
Fixed sticky table column rendering and users filter bar UI issue.
Performance improvements and fixes.
Here are this week’s highlights:
User Properties and Labels
Workspace Audit Log
Improved Wallet Search
Improvements and Fixes
User Properties and Labels
You can now add first-party user properties and custom user labels for wallet profiles, on the dashboard and the API.

Set a custom display name, email, socials, avatar, location, and other identity fields on a wallet profile. Tag wallets with custom labels (VIP tier, KYC status, etc). Custom user labels work with all existing features including segments, filters, and charts out of the box.
With first-party data alongside the web, product, and onchain data Formo already collects, you can now use Formo as the single source of truth for your DeFi app. No more manually stitching together a separate CRM, analytics tool, and internal database. Push user properties and labels into Formo’s customer data platform, then use the unified profile across product analytics, attribution, segmentation, and outreach.
Workspace Audit Log
Workspaces now record an Audit Log of who did what: invites, role changes, project updates, billing changes, and other key actions.

This is designed for SOC2 readiness and is useful for any team that wants visibility into workspace changes, especially when multiple team members have admin access.
Improved Wallet Search
You can now search wallets from social profiles on the Users page and Profile Search API . Search based on a partial address, ENS name, Twitter handle, or any social identifier and Formo will find the matching wallet profile.
Improvements and Fixes
Added confirmation step to destructive deletes on projects, segments, boards, contracts, and API keys.
Added a row-limit control to SQL Explorer so you can control the size of large queries.
Added raw results table to charts so you can inspect the underlying numbers behind them.
Added volume to weekly email reports so you can see week-over-week change at a glance.
Added MCP and API setup instructions to the API keys page so it’s easier to get started.
Added a feedback link to the sidebar so it’s easier to share what’s working and what isn’t.
Added 2FA status to the workspace members page.
Added ENS name support to the Activity page search bar.
Added time-based sorting to the Activity page.
Added a tooltip to the board global datepicker explaining how the selected range applies to charts.
Replaced the underlying engine for Sankey visualizations for faster, more consistent rendering.
Improved handling for unknown values from device, browser, and OS tracking.
Improved label value filtering to be case-insensitive.
Improved error handling and API key validation across the API.
Improved Ask AI’s handling of date variables in queries and charts.
Improved Web SDK location detection to only emit valid country codes.
Fixed an issue with SQL Editor exports to JSON and CSV.
Fixed an issue with the weekly email report.
Performance and scalability improvements across the platform
Here are this week’s highlights:
User Properties and Labels
Workspace Audit Log
Improved Wallet Search
Improvements and Fixes
User Properties and Labels
You can now add first-party user properties and custom user labels for wallet profiles, on the dashboard and the API.

Set a custom display name, email, socials, avatar, location, and other identity fields on a wallet profile. Tag wallets with custom labels (VIP tier, KYC status, etc). Custom user labels work with all existing features including segments, filters, and charts out of the box.
With first-party data alongside the web, product, and onchain data Formo already collects, you can now use Formo as the single source of truth for your DeFi app. No more manually stitching together a separate CRM, analytics tool, and internal database. Push user properties and labels into Formo’s customer data platform, then use the unified profile across product analytics, attribution, segmentation, and outreach.
Workspace Audit Log
Workspaces now record an Audit Log of who did what: invites, role changes, project updates, billing changes, and other key actions.

This is designed for SOC2 readiness and is useful for any team that wants visibility into workspace changes, especially when multiple team members have admin access.
Improved Wallet Search
You can now search wallets from social profiles on the Users page and Profile Search API . Search based on a partial address, ENS name, Twitter handle, or any social identifier and Formo will find the matching wallet profile.
Improvements and Fixes
Added confirmation step to destructive deletes on projects, segments, boards, contracts, and API keys.
Added a row-limit control to SQL Explorer so you can control the size of large queries.
Added raw results table to charts so you can inspect the underlying numbers behind them.
Added volume to weekly email reports so you can see week-over-week change at a glance.
Added MCP and API setup instructions to the API keys page so it’s easier to get started.
Added a feedback link to the sidebar so it’s easier to share what’s working and what isn’t.
Added 2FA status to the workspace members page.
Added ENS name support to the Activity page search bar.
Added time-based sorting to the Activity page.
Added a tooltip to the board global datepicker explaining how the selected range applies to charts.
Replaced the underlying engine for Sankey visualizations for faster, more consistent rendering.
Improved handling for unknown values from device, browser, and OS tracking.
Improved label value filtering to be case-insensitive.
Improved error handling and API key validation across the API.
Improved Ask AI’s handling of date variables in queries and charts.
Improved Web SDK location detection to only emit valid country codes.
Fixed an issue with SQL Editor exports to JSON and CSV.
Fixed an issue with the weekly email report.
Performance and scalability improvements across the platform
Here are this week's highlights:
Extra Usage
Ask AI Gets Smarter
Top Channels
Click IDs for Paid Attribution
Install-Time Mobile Attribution
Improvements and Fixes
Extra Usage
Workspaces with a payment methodcan now go above their plan's MAU limit without missing any data.

This means growing projects no longer lose data during a spike, and teams don't need to keep upgrading mid-cycle to keep tracking users.
Overages are billed as a one-time charge at the end of the cycle, and you can set a monthly spend cap so there are no surprises.
Ask AI Gets Smarter
A big batch of Ask AI improvements landed this week.

Here is a summary:
Ask AI can now answer product, SDK, and API questions by searching and citing the exact doc pages it used, instead of bouncing you to the docs.
The system prompt was updated with the latest SQL functions and variables introduced last week.
Chart proposals now enforce per-chart date ranges and tighter SQL validation.
Raw aggregate states are no longer leaked into answers.
You can save individual charts from an Ask AI dashboard to an existing board, instead of saving the whole dashboard.
New guardrails keep Ask AI focused on analytics questions it can actually answer well.
Top Channels
You can now see a Channels chart alongside Referrers and UTM.

Referrers, UTMs, and other properties are grouped into marketing channels like Organic Social, Paid Search, Direct, Referral, and Email, so you can see traffic composition by channel without having to bucket domains yourself.
Click IDs for Paid Attribution
The Web SDK now captures and persists click ID parameters from landing page URLs alongside UTMs, so paid traffic from Google, Meta, TikTok, LinkedIn, Reddit, and X is attributed correctly to the campaigns that drove it.
Twelve vendor parameters are supported including gclid, gad_source, gbraid, wbraid, dclid, fbclid, msclkid, yclid, ttclid, twclid, li_fat_id, and rdt_cid.
Install-Time Mobile Attribution
The React Native SDK now automatically captures install-time attribution from:
Google Play Install Referrer API on Android
Apple AdServices on iOS
This means you can see incoming traffic source fields (utm_source, utm_medium, utm_campaign, and friends) to your mobile app.
Deep link attribution still takes precedence, and the merge logic only fills empty fields, so real deep links never get overwritten by install referrer data.
Improvements and Fixes
Added more breakdown dimensions for charts and funnels
Added vertical resizing to the SQL Query Editor
Added per-request nonce-based Content Security Policy for tighter frontend security
Added the ability to remove saved payment methods on the free plan
Fixed double-counting of protocol-issued token values in wallet events
Fixed stale Tinybird tokens after pipe renames by auto-refreshing on scope errors
Fixed email notification defaults to use the local timezone instead of UTC
Fixed a bug where deleting a chat made links unclickable on the page
Fixed weekly insights emails sending duplicates with missing insights
Improved performance across the platform and dashboard pages
Here are this week's highlights:
Extra Usage
Ask AI Gets Smarter
Top Channels
Click IDs for Paid Attribution
Install-Time Mobile Attribution
Improvements and Fixes
Extra Usage
Workspaces with a payment methodcan now go above their plan's MAU limit without missing any data.

This means growing projects no longer lose data during a spike, and teams don't need to keep upgrading mid-cycle to keep tracking users.
Overages are billed as a one-time charge at the end of the cycle, and you can set a monthly spend cap so there are no surprises.
Ask AI Gets Smarter
A big batch of Ask AI improvements landed this week.

Here is a summary:
Ask AI can now answer product, SDK, and API questions by searching and citing the exact doc pages it used, instead of bouncing you to the docs.
The system prompt was updated with the latest SQL functions and variables introduced last week.
Chart proposals now enforce per-chart date ranges and tighter SQL validation.
Raw aggregate states are no longer leaked into answers.
You can save individual charts from an Ask AI dashboard to an existing board, instead of saving the whole dashboard.
New guardrails keep Ask AI focused on analytics questions it can actually answer well.
Top Channels
You can now see a Channels chart alongside Referrers and UTM.

Referrers, UTMs, and other properties are grouped into marketing channels like Organic Social, Paid Search, Direct, Referral, and Email, so you can see traffic composition by channel without having to bucket domains yourself.
Click IDs for Paid Attribution
The Web SDK now captures and persists click ID parameters from landing page URLs alongside UTMs, so paid traffic from Google, Meta, TikTok, LinkedIn, Reddit, and X is attributed correctly to the campaigns that drove it.
Twelve vendor parameters are supported including gclid, gad_source, gbraid, wbraid, dclid, fbclid, msclkid, yclid, ttclid, twclid, li_fat_id, and rdt_cid.
Install-Time Mobile Attribution
The React Native SDK now automatically captures install-time attribution from:
Google Play Install Referrer API on Android
Apple AdServices on iOS
This means you can see incoming traffic source fields (utm_source, utm_medium, utm_campaign, and friends) to your mobile app.
Deep link attribution still takes precedence, and the merge logic only fills empty fields, so real deep links never get overwritten by install referrer data.
Improvements and Fixes
Added more breakdown dimensions for charts and funnels
Added vertical resizing to the SQL Query Editor
Added per-request nonce-based Content Security Policy for tighter frontend security
Added the ability to remove saved payment methods on the free plan
Fixed double-counting of protocol-issued token values in wallet events
Fixed stale Tinybird tokens after pipe renames by auto-refreshing on scope errors
Fixed email notification defaults to use the local timezone instead of UTC
Fixed a bug where deleting a chat made links unclickable on the page
Fixed weekly insights emails sending duplicates with missing insights
Improved performance across the platform and dashboard pages
Here are this week's highlights:
Multi-Anchor Flows
Compare Previous Period
Ask AI Dashboard Creation
Edit Dashboard Layout
Move Charts
Duplicate Charts
SQL: Dynamic Date Variables
SQL: Price Oracle Functions
Formo CLI
Improvements and Fixes
Multi-Anchor Flows
Flow charts now support multiple anchor steps, letting you visualize how users flow through several key events rather than just one.

This gives you a more complete picture of the user journey across your DeFi app.
Compare Previous Period
You can now compare data with a previous time period on the Overview page to compare performance across consecutive periods.

For example, when 30D is selected, all charts on the overview page will compare with the previous 30D period.

This makes it easy to spot trends, measure the impact of changes, and understand whether metrics are improving or declining relative to a prior window.
Ask AI Dashboard Creation
Ask AI can now create entire dashboards for you from a prompt. Describe what you want to track and the AI will generate a complete dashboard with relevant charts, saving you the time of building each chart manually.

You can then save the charts as a new dashboard.
Reorder Charts
You can now reorder charts on your custom dashboard.

Freely rearrange your layout to put the most important metrics front and center.
Duplicate Charts
You can now duplicate any chart in your custom dashboard.

This saves time when you want to create variations of an existing chart with different filters, time ranges, or breakdowns.
Move Charts Between Dashboards
Charts can now be moved from one dashboard to another.
This makes it easy to reorganize your dashboards without having to recreate charts from scratch.
SQL: Dynamic Date Variables
Charts now support dynamic date range filtering through new template variables in your SQL queries.

Instead of hardcoding date ranges, you can set charts to automatically adjust based on a shared date picker, making dashboards more interactive and easier to explore across different time windows.

SQL: Price Oracle Functions
You can now use a price oracle function in your SQL queries.

Convert token amounts to USD values directly in your analytics queries without needing to join external price data manually.
Formo CLI
The Formo CLI (@formo/cli) is now available. The CLI gives you an agent-friendly terminal-based interface for working with Formo, from querying data to creating charts and more.
Install it via npm to get started.
Improvements and Fixes
Added Solana support to profile search and fetch endpoints
Added how-to guides to the docs such as How to Build Conversion Funnels
Added CLI documentation
Added a Tempo Accounts SDK example project.
Added SDK security documentation with architecture, data collection, and supply chain security measures
Added AI insights citations showing the data, queries, and methodology of each insight
Improved team invite validation and error handling
Unified mobile screen events with web page views in the React Native SDK, so charts and attribution work seamlessly across web and mobile
Fixed stale charts shown on custom dashboard after updating a chart
Authorization checks and security improvements
Other performance improvements and UI fixes
Here are this week's highlights:
Multi-Anchor Flows
Compare Previous Period
Ask AI Dashboard Creation
Edit Dashboard Layout
Move Charts
Duplicate Charts
SQL: Dynamic Date Variables
SQL: Price Oracle Functions
Formo CLI
Improvements and Fixes
Multi-Anchor Flows
Flow charts now support multiple anchor steps, letting you visualize how users flow through several key events rather than just one.

This gives you a more complete picture of the user journey across your DeFi app.
Compare Previous Period
You can now compare data with a previous time period on the Overview page to compare performance across consecutive periods.

For example, when 30D is selected, all charts on the overview page will compare with the previous 30D period.

This makes it easy to spot trends, measure the impact of changes, and understand whether metrics are improving or declining relative to a prior window.
Ask AI Dashboard Creation
Ask AI can now create entire dashboards for you from a prompt. Describe what you want to track and the AI will generate a complete dashboard with relevant charts, saving you the time of building each chart manually.

You can then save the charts as a new dashboard.
Reorder Charts
You can now reorder charts on your custom dashboard.

Freely rearrange your layout to put the most important metrics front and center.
Duplicate Charts
You can now duplicate any chart in your custom dashboard.

This saves time when you want to create variations of an existing chart with different filters, time ranges, or breakdowns.
Move Charts Between Dashboards
Charts can now be moved from one dashboard to another.
This makes it easy to reorganize your dashboards without having to recreate charts from scratch.
SQL: Dynamic Date Variables
Charts now support dynamic date range filtering through new template variables in your SQL queries.

Instead of hardcoding date ranges, you can set charts to automatically adjust based on a shared date picker, making dashboards more interactive and easier to explore across different time windows.

SQL: Price Oracle Functions
You can now use a price oracle function in your SQL queries.

Convert token amounts to USD values directly in your analytics queries without needing to join external price data manually.
Formo CLI
The Formo CLI (@formo/cli) is now available. The CLI gives you an agent-friendly terminal-based interface for working with Formo, from querying data to creating charts and more.
Install it via npm to get started.
Improvements and Fixes
Added Solana support to profile search and fetch endpoints
Added how-to guides to the docs such as How to Build Conversion Funnels
Added CLI documentation
Added a Tempo Accounts SDK example project.
Added SDK security documentation with architecture, data collection, and supply chain security measures
Added AI insights citations showing the data, queries, and methodology of each insight
Improved team invite validation and error handling
Unified mobile screen events with web page views in the React Native SDK, so charts and attribution work seamlessly across web and mobile
Fixed stale charts shown on custom dashboard after updating a chart
Authorization checks and security improvements
Other performance improvements and UI fixes
Here are this week's highlights:
Volume and Revenue Timeseries
Historical Wallet Data
Solana Wallet Profiles
Solana SDK: Framework Kit Integration
React Native SDK: Mobile Lifecycle Events
Improved Slack Alerts
Improvements and Fixes
Volume and Revenue Timeseries
You can see how your users' volume and revenue changes across time with a new volume and revenue timeseries chart.

Available on the profile page, the chart shows full attribution of which events, referrers, UTMs, and referrals contributed to volume and revenue.
This makes it easier to understand your highest-value users, identify key revenue signals, and understand the history of individual wallets within your app.
Historical Wallet Data
You can now view past snapshots of a wallet's net worth, apps, and tokens on the wallet profile page. Just choose a date from the dropdown.

Historical wallet data gives you a clearer picture of how your users onchain activity portfolio have changed over time.
Solana Wallet Profiles
Formo now supports Solana wallet addresses alongside EVM wallets.

Turn anonymous Solana addresses into actionable rich profiles, with social data and token balances.
Solana SDK: Framework Kit Integration
The Solana integration now works with framework-kit and @solana/kit. This stack supersedes web3.js + wallet-adapter approach.
React Native SDK: Mobile Lifecycle Events
The React Native SDK now automatically captures install, update, open, and background events following the standard mobile lifecycle spec.
Improved Slack Alerts
Slack alerts have been redesigned for better readability.

You can also now customize which event properties are displayed in each alert with a live preview.
Improvements and Fixes
Added AI-powered Insights to the weekly performance email
Added public API endpoints for alerts, boards, and AI chat
Updated Overview page chart breakdowns to sort by each metric (wallets, transactions, volume)
Improved wallet profiles Twitter/X handle resolution with fallback data sources
Fixed Funnels failing to filter custom events by volume
Fixed Activity page event timeseries timeout for high-volume projects
Fixed tooltip not displaying for negative volume values on the Overview page
Fixed missing icons for browser filter dropdown items
Fixed SDK storage fallback for environments local / session storage is unavailable
Optimized load times across dashboard pages
Other improvements and fixes
Here are this week's highlights:
Volume and Revenue Timeseries
Historical Wallet Data
Solana Wallet Profiles
Solana SDK: Framework Kit Integration
React Native SDK: Mobile Lifecycle Events
Improved Slack Alerts
Improvements and Fixes
Volume and Revenue Timeseries
You can see how your users' volume and revenue changes across time with a new volume and revenue timeseries chart.

Available on the profile page, the chart shows full attribution of which events, referrers, UTMs, and referrals contributed to volume and revenue.
This makes it easier to understand your highest-value users, identify key revenue signals, and understand the history of individual wallets within your app.
Historical Wallet Data
You can now view past snapshots of a wallet's net worth, apps, and tokens on the wallet profile page. Just choose a date from the dropdown.

Historical wallet data gives you a clearer picture of how your users onchain activity portfolio have changed over time.
Solana Wallet Profiles
Formo now supports Solana wallet addresses alongside EVM wallets.

Turn anonymous Solana addresses into actionable rich profiles, with social data and token balances.
Solana SDK: Framework Kit Integration
The Solana integration now works with framework-kit and @solana/kit. This stack supersedes web3.js + wallet-adapter approach.
React Native SDK: Mobile Lifecycle Events
The React Native SDK now automatically captures install, update, open, and background events following the standard mobile lifecycle spec.
Improved Slack Alerts
Slack alerts have been redesigned for better readability.

You can also now customize which event properties are displayed in each alert with a live preview.
Improvements and Fixes
Added AI-powered Insights to the weekly performance email
Added public API endpoints for alerts, boards, and AI chat
Updated Overview page chart breakdowns to sort by each metric (wallets, transactions, volume)
Improved wallet profiles Twitter/X handle resolution with fallback data sources
Fixed Funnels failing to filter custom events by volume
Fixed Activity page event timeseries timeout for high-volume projects
Fixed tooltip not displaying for negative volume values on the Overview page
Fixed missing icons for browser filter dropdown items
Fixed SDK storage fallback for environments local / session storage is unavailable
Optimized load times across dashboard pages
Other improvements and fixes

Here are this week's highlights:
Wallet Profile Search
Insights: Cohort Analysis
Cross-Subdomain Tracking
Improvements and Fixes
Wallet Profile Search
You can now search and view wallet profiles even if they haven't visited your app. The new search page lets you look up any wallet by address.

If a wallet hasn't been profiled yet, Formo will trigger profiling on-demand that returns results in less than a minute. Use this to enrich lead lists and target prospective users.

You can also import wallets via CSV and filter for imported users, making it easy to target and analyze specific wallet lists from external sources.
Insights: Cohort Analysis
The AI-powered Insights page now includes a cohort analysis section.

Uncover insights from user behavior across different dimensions:
Acquisition Quality: Which channels produce users with the highest retention?
Activation (Aha Moment): Which early action predicts long-term retention?
Revenue Insights: Are recent customers more valuable?
Churn Prediction: What behaviours signal a user is about to churn?
Cross-Subdomain Tracking
The Formo Web SDK (v1.28.3) now supports cross-subdomain tracking:
Cross domain tracking: see what users do as they move between your marketing site, app, docs, and other subdomains.
Accurate attribution: attribute conversions to the correct channel, even when users cross subdomains.
Automatic migration: the SDK migrates existing host-scoped cookies to the apex domain so visitors are not double-counted.
To get started, upgrade to the latest SDK version.
Improvements and Fixes
Added volume, revenue, and points filters to the activity page
Add channel filter (web, mobile, onchain, import, api) for users and events
Added a Turnkey integration example
Added outlier filtering for revenue, volume, and points metrics
Fixed segment switching not displaying the correct selected filters on the Users page
Fixed wallet profiler returning incorrect net worth for low-decimal tokens with invalid balances
Fixed duplicated app and protocol tokens appearing on the wallet profile page
Fixed Twitter/X Connect not persisting on form pages after OAuth redirect
Fixed behavior filter operators edge case for less/lessOrEqual conditions
Fixed SDK blocklist bypass via mixed-case checksum addresses
Fixed SDK storage fallback infinite loop and session cookie unbounded growth
Fixed SDK events being lost on page hide and page-leave data loss race conditions
Fixed session duration calculation for sessions with inactivity periods

Here are this week's highlights:
Wallet Profile Search
Insights: Cohort Analysis
Cross-Subdomain Tracking
Improvements and Fixes
Wallet Profile Search
You can now search and view wallet profiles even if they haven't visited your app. The new search page lets you look up any wallet by address.

If a wallet hasn't been profiled yet, Formo will trigger profiling on-demand that returns results in less than a minute. Use this to enrich lead lists and target prospective users.

You can also import wallets via CSV and filter for imported users, making it easy to target and analyze specific wallet lists from external sources.
Insights: Cohort Analysis
The AI-powered Insights page now includes a cohort analysis section.

Uncover insights from user behavior across different dimensions:
Acquisition Quality: Which channels produce users with the highest retention?
Activation (Aha Moment): Which early action predicts long-term retention?
Revenue Insights: Are recent customers more valuable?
Churn Prediction: What behaviours signal a user is about to churn?
Cross-Subdomain Tracking
The Formo Web SDK (v1.28.3) now supports cross-subdomain tracking:
Cross domain tracking: see what users do as they move between your marketing site, app, docs, and other subdomains.
Accurate attribution: attribute conversions to the correct channel, even when users cross subdomains.
Automatic migration: the SDK migrates existing host-scoped cookies to the apex domain so visitors are not double-counted.
To get started, upgrade to the latest SDK version.
Improvements and Fixes
Added volume, revenue, and points filters to the activity page
Add channel filter (web, mobile, onchain, import, api) for users and events
Added a Turnkey integration example
Added outlier filtering for revenue, volume, and points metrics
Fixed segment switching not displaying the correct selected filters on the Users page
Fixed wallet profiler returning incorrect net worth for low-decimal tokens with invalid balances
Fixed duplicated app and protocol tokens appearing on the wallet profile page
Fixed Twitter/X Connect not persisting on form pages after OAuth redirect
Fixed behavior filter operators edge case for less/lessOrEqual conditions
Fixed SDK blocklist bypass via mixed-case checksum addresses
Fixed SDK storage fallback infinite loop and session cookie unbounded growth
Fixed SDK events being lost on page hide and page-leave data loss race conditions
Fixed session duration calculation for sessions with inactivity periods
Here are this week's highlights:
Advanced Funnel Filtering
Tempo Mainnet Support
Improvements and Fixes
Advanced Funnel Filtering
Funnels now support advanced filter operators, bringing them in line with the Users and Activity filters update last week.

You can now use:
IS NOT for exclusion filtering and
IS ONE OF for multi-value matching when analyzing funnel conversions.
These operators make it much easier to zero in on the exact user segments you care about when measuring conversion performance. For example, filter out bot traffic from your funnel analysis or compare conversion rates across multiple referrer sources at once.
Tempo Mainnet Support
Formo now supports the Tempo mainnet chain.
Tempo is infrastructure for real-world payments at internet scale. It’s designed for instant settlement, predictable low fees, high throughput, and global availability.

If your DeFi app is on Tempo, use Formo to get unified, crypto-native analytics that track wallets, transactions, and more out of the box.
Improvements and Fixes
Improved billing checkout reliability for end users
Fixed Ask AI not loading for some projects by improving tool handling and increasing the assistant step limit
Fixed an error that occurred when duplicating boards
Added null safety checks to chain data filtering to prevent crashes when wallet chain data is incomplete
Improved chat history error handling and initialization safety
Fixed form submit button being clickable when required wallet or identity fields are empty
Here are this week's highlights:
Advanced Funnel Filtering
Tempo Mainnet Support
Improvements and Fixes
Advanced Funnel Filtering
Funnels now support advanced filter operators, bringing them in line with the Users and Activity filters update last week.

You can now use:
IS NOT for exclusion filtering and
IS ONE OF for multi-value matching when analyzing funnel conversions.
These operators make it much easier to zero in on the exact user segments you care about when measuring conversion performance. For example, filter out bot traffic from your funnel analysis or compare conversion rates across multiple referrer sources at once.
Tempo Mainnet Support
Formo now supports the Tempo mainnet chain.
Tempo is infrastructure for real-world payments at internet scale. It’s designed for instant settlement, predictable low fees, high throughput, and global availability.

If your DeFi app is on Tempo, use Formo to get unified, crypto-native analytics that track wallets, transactions, and more out of the box.
Improvements and Fixes
Improved billing checkout reliability for end users
Fixed Ask AI not loading for some projects by improving tool handling and increasing the assistant step limit
Fixed an error that occurred when duplicating boards
Added null safety checks to chain data filtering to prevent crashes when wallet chain data is incomplete
Improved chat history error handling and initialization safety
Fixed form submit button being clickable when required wallet or identity fields are empty
Here are this week's highlights:
Project Onboarding Checklist
Advanced Filtering for Users & Activity
ERC-8004 AI Agent Labels for Wallet Profiles
Ask AI Chat Management
Improvements and Fixes
Project Onboarding Checklist
You can now see a guided onboarding checklist in the left sidebar that walks them through Formo's key features.

The checklist covers installing Formo, adding a contract for transaction decoding, creating user segments, building charts, and the Ask AI feature.
Advanced Filters for Users & Activity
The Users and Activity pages now support advanced filter operators.
Negation operators (is / is not)
Multiple values (is one of)

Previously, all filters only supported "is" matching. You can now use "IS NOT" for exclusion filtering and "IS ONE OF" for multi-value selection, making it much easier to narrow down the exact users or events you're looking for.

We've also added click-to-modify support for Activity page filters, so you can quickly adjust filter values inline without reopening the filter panel.

ERC-8004 AI Agent Labels for Wallet Profiles
Wallet profiles now automatically detect and label wallets that are registered as ERC-8004 AI Agents.
As agent-driven transactions grow, understanding what percentage of your protocol's activity comes from agents vs. humans is becoming essential.
Formo checks against the ERC-8004 Agent Registry so you can track and segment AI agent activity across your project.
Ask AI Chat Management
You can now rename and delete your Ask AI chat conversations.

Give chats meaningful names so you can find past conversations quickly, and clean up old chats you no longer need.
Improvements and Fixes
Added API rate limits for the Profiles API and Query API to ensure fair usage and platform stability.
Added ERC-8021 Builder Code Validator, a free tool for encoding and decoding ERC-8021 builder codes for onchain attribution
Fixed billing page to correctly display upcoming charges after discounts are applied
Fixed pie chart label overlapping when two slices are close together
Fixed invite member UI to be properly disabled for non-owner and non-admin roles
Here are this week's highlights:
Project Onboarding Checklist
Advanced Filtering for Users & Activity
ERC-8004 AI Agent Labels for Wallet Profiles
Ask AI Chat Management
Improvements and Fixes
Project Onboarding Checklist
You can now see a guided onboarding checklist in the left sidebar that walks them through Formo's key features.

The checklist covers installing Formo, adding a contract for transaction decoding, creating user segments, building charts, and the Ask AI feature.
Advanced Filters for Users & Activity
The Users and Activity pages now support advanced filter operators.
Negation operators (is / is not)
Multiple values (is one of)

Previously, all filters only supported "is" matching. You can now use "IS NOT" for exclusion filtering and "IS ONE OF" for multi-value selection, making it much easier to narrow down the exact users or events you're looking for.

We've also added click-to-modify support for Activity page filters, so you can quickly adjust filter values inline without reopening the filter panel.

ERC-8004 AI Agent Labels for Wallet Profiles
Wallet profiles now automatically detect and label wallets that are registered as ERC-8004 AI Agents.
As agent-driven transactions grow, understanding what percentage of your protocol's activity comes from agents vs. humans is becoming essential.
Formo checks against the ERC-8004 Agent Registry so you can track and segment AI agent activity across your project.
Ask AI Chat Management
You can now rename and delete your Ask AI chat conversations.

Give chats meaningful names so you can find past conversations quickly, and clean up old chats you no longer need.
Improvements and Fixes
Added API rate limits for the Profiles API and Query API to ensure fair usage and platform stability.
Added ERC-8021 Builder Code Validator, a free tool for encoding and decoding ERC-8021 builder codes for onchain attribution
Fixed billing page to correctly display upcoming charges after discounts are applied
Fixed pie chart label overlapping when two slices are close together
Fixed invite member UI to be properly disabled for non-owner and non-admin roles

Here are this week's highlights:
Builder Codes
User Alerts
Improvements and Fixes
Builder Codes
Formo now automatically detects and extracts ERC-8021 Builder Codes from transaction calldata.
Builder codes are an onchain attribution standard that lets apps identify themselves in transactions. When a transaction includes an ERC-8021 data suffix, Formo parses it and includes the
builder_codesfield in the transaction event.For example, a transaction with the builder code
"uniswap"would include"builder_codes": "uniswap"in the event properties.

This works automatically — no additional configuration is needed. If your app appends builder codes to transactions, Formo will detect and attribute them.
You can now query your transaction data by builder_codes property in the dashboard, charts, and the query explorer to get instant attribution based on builder codes.
User Alerts
Get notified on Slack or webhooks in real time when high-value whales visit your app with the new User Alerts.

You can now receive notifications whenever users that fit a certain criteria visit your DeFi app, such as:
Users with a minimum net worth (minnows, dolphins, whales),
Users with specific wallet labels (Coinbase Verified, OFAC Sanctioned, Merkl Campaigns),
Users from a specific country, or
All of the above!

Improvements and Fixes
Fixed duplicate alerts being sent for the same trigger condition
Fixed mismatched MAU counts that caused inaccurate usage reporting for some projects
Allowed project domain changes without rotating the write key
Synced usage metering with billing periods so usage metrics now align with your subscription cycle
Wallets that exceed the MAU limit are now hidden
Fixed 404s for form and sidebar links

Here are this week's highlights:
Builder Codes
User Alerts
Improvements and Fixes
Builder Codes
Formo now automatically detects and extracts ERC-8021 Builder Codes from transaction calldata.
Builder codes are an onchain attribution standard that lets apps identify themselves in transactions. When a transaction includes an ERC-8021 data suffix, Formo parses it and includes the
builder_codesfield in the transaction event.For example, a transaction with the builder code
"uniswap"would include"builder_codes": "uniswap"in the event properties.

This works automatically — no additional configuration is needed. If your app appends builder codes to transactions, Formo will detect and attribute them.
You can now query your transaction data by builder_codes property in the dashboard, charts, and the query explorer to get instant attribution based on builder codes.
User Alerts
Get notified on Slack or webhooks in real time when high-value whales visit your app with the new User Alerts.

You can now receive notifications whenever users that fit a certain criteria visit your DeFi app, such as:
Users with a minimum net worth (minnows, dolphins, whales),
Users with specific wallet labels (Coinbase Verified, OFAC Sanctioned, Merkl Campaigns),
Users from a specific country, or
All of the above!

Improvements and Fixes
Fixed duplicate alerts being sent for the same trigger condition
Fixed mismatched MAU counts that caused inaccurate usage reporting for some projects
Allowed project domain changes without rotating the write key
Synced usage metering with billing periods so usage metrics now align with your subscription cycle
Wallets that exceed the MAU limit are now hidden
Fixed 404s for form and sidebar links
TLDR;
Formo’s February 2026 release added Merkl Campaign Attribution, linking wallet activity and onchain transactions to specific Merkl incentive campaigns so teams can measure incentive ROI, track performance by partner, and optimize reward allocation.
Event Alerts deliver real-time notifications for wallet connections, transactions, page views, or custom events via webhook or Slack. Solana is now supported natively via the Web SDK with Wallet Adapter integration — tracking connects, signatures, and transactions.
React Native SDK brings the same event tracking to mobile apps via the Formo Events API. Chart Templates provide pre-built queries that auto-generate charts by type (funnels, geo breakdowns, time-series) for faster dashboard setup.
gm, builders! 👋
Here’s your roundup of February 2026’s onchain news and growth insights.
Highlights
Merkl Campaign Attribution
Ask AI Chat History, Event Alerts, and Solana Support
React Native SDK and Chart Templates
How to Reach Product-Market Fit in Web3
How to Define Your Ideal Customer Profile in DeFi
Web3 Monthly Recap
Introducing Merkl Campaign Attribution:
Merkl Campaign Attribution is a feature that links wallet activity and on-chain transactions to specific Merkl incentive campaigns.
It enables teams to measure how incentive programs influence user behavior, liquidity, and conversions onchain.
Measure Incentive ROI: Attribute wallet connections, transactions, and liquidity directly to Merkl campaigns to understand which incentives drive real growth.
Track Campaign Performance: Identify which partners, channels, or campaigns bring the most valuable users and onchain activity.
Optimize Growth Strategies: Use wallet-level attribution to refine incentive programs, allocate rewards more effectively, and focus on campaigns that drive long-term engagement.
Introducing Ask AI Chat History, Event Alerts, and Solana Support
Ask AI Chat History, Event Alerts, and Solana Support are new features in Formo that enhance how teams analyze user behavior, monitor important activity, and support multi-chain apps.
They enable builders to revisit past analytics insights, get real-time notifications for key user events, and track wallet interactions on Solana.
Ask AI Chat History: Revisit past analytics conversations, continue previous queries, and reference insights without starting over.
Monitor Important User Activity: Set up alerts for wallet connections, transactions, page views, or custom events and receive notifications via webhooks or Slack when they occur.
Support Solana Apps: Track wallet connections, signatures, and transactions on Solana using the Formo Web SDK with native integration for the Solana Wallet Adapter.
Build Cross-Chain Analytics: Analyze engagement and user behavior across multiple ecosystems, enabling better insights for apps expanding beyond Ethereum.
Introducing React Native SDK and Chart Templates
React Native SDK: Track user activity directly in React Native mobile apps using the Formo Events API, enabling teams to capture events like user actions, page views, and transactions from mobile environments.
Mobile Analytics for Web3 Apps: Extend Formo analytics beyond web apps, allowing mobile-first teams to measure engagement, conversions, and onchain behavior from their React Native applications.
Chart Templates: Instantly generate charts with pre-built example queries that match the selected chart type, helping teams quickly visualize metrics without writing queries from scratch.
Faster Dashboard Creation: Start with templates for funnels, geographic breakdowns, and time-series trends, then customize them to analyze user journeys, growth metrics, and campaign performance.
How WalletConnect Uses Formo to Power Creator Submissions and Community Research
WalletConnect needed a way to verify onchain actions from community contributors and understand their user base at a deeper level. While searching for a crypto-native form solution, they found that nothing on the market could do what they needed.
They turned to Formo, and within hours, their community was already submitting content through token-gated forms. The team also gained wallet intelligence capabilities to analyze onchain activity and build sharper user personas.
How to Track DeFi Marketing ROI: Connecting Offchain Campaigns to Onchain Conversions
This article reframes ROI around the link between attention and capital movement, rather than treating them as the same signal. ROI only becomes clear when it sits inside a coherent DeFi marketing strategy.
Step-by-Step Guide to Analytics for Crypto and DeFi Apps With Dynamic
This guide outlines implementing analytics for Dynamic embedded wallets in crypto DeFi apps using the Formo SDK. Steps cover SDK integration, user identification via wallet addresses, event tracking for key transactions like swaps and stakes, and wallet intelligence from ENS and portfolio data.
Web3 Monthly Recap
Building permissionless neobanks by Pantera Capital. Link
The WhatsApp moment for money is here by Chris Dixon. Link
Growing pains by Patrick Mayr. Link
The long game for crypto by Chris Dixon. Link
Stablecoins Are The Next Platform for Money by a16z crypto. Link
2026 Stablecoin Momentum Report by Mo Kasstawi. Link
The Year Ahead for Apps 2026 by Delphi Digital. Link
Blockchain Data APIs Explained by Allium. Link
TLDR;
Formo’s February 2026 release added Merkl Campaign Attribution, linking wallet activity and onchain transactions to specific Merkl incentive campaigns so teams can measure incentive ROI, track performance by partner, and optimize reward allocation.
Event Alerts deliver real-time notifications for wallet connections, transactions, page views, or custom events via webhook or Slack. Solana is now supported natively via the Web SDK with Wallet Adapter integration — tracking connects, signatures, and transactions.
React Native SDK brings the same event tracking to mobile apps via the Formo Events API. Chart Templates provide pre-built queries that auto-generate charts by type (funnels, geo breakdowns, time-series) for faster dashboard setup.
gm, builders! 👋
Here’s your roundup of February 2026’s onchain news and growth insights.
Highlights
Merkl Campaign Attribution
Ask AI Chat History, Event Alerts, and Solana Support
React Native SDK and Chart Templates
How to Reach Product-Market Fit in Web3
How to Define Your Ideal Customer Profile in DeFi
Web3 Monthly Recap
Introducing Merkl Campaign Attribution:
Merkl Campaign Attribution is a feature that links wallet activity and on-chain transactions to specific Merkl incentive campaigns.
It enables teams to measure how incentive programs influence user behavior, liquidity, and conversions onchain.
Measure Incentive ROI: Attribute wallet connections, transactions, and liquidity directly to Merkl campaigns to understand which incentives drive real growth.
Track Campaign Performance: Identify which partners, channels, or campaigns bring the most valuable users and onchain activity.
Optimize Growth Strategies: Use wallet-level attribution to refine incentive programs, allocate rewards more effectively, and focus on campaigns that drive long-term engagement.
Introducing Ask AI Chat History, Event Alerts, and Solana Support
Ask AI Chat History, Event Alerts, and Solana Support are new features in Formo that enhance how teams analyze user behavior, monitor important activity, and support multi-chain apps.
They enable builders to revisit past analytics insights, get real-time notifications for key user events, and track wallet interactions on Solana.
Ask AI Chat History: Revisit past analytics conversations, continue previous queries, and reference insights without starting over.
Monitor Important User Activity: Set up alerts for wallet connections, transactions, page views, or custom events and receive notifications via webhooks or Slack when they occur.
Support Solana Apps: Track wallet connections, signatures, and transactions on Solana using the Formo Web SDK with native integration for the Solana Wallet Adapter.
Build Cross-Chain Analytics: Analyze engagement and user behavior across multiple ecosystems, enabling better insights for apps expanding beyond Ethereum.
Introducing React Native SDK and Chart Templates
React Native SDK: Track user activity directly in React Native mobile apps using the Formo Events API, enabling teams to capture events like user actions, page views, and transactions from mobile environments.
Mobile Analytics for Web3 Apps: Extend Formo analytics beyond web apps, allowing mobile-first teams to measure engagement, conversions, and onchain behavior from their React Native applications.
Chart Templates: Instantly generate charts with pre-built example queries that match the selected chart type, helping teams quickly visualize metrics without writing queries from scratch.
Faster Dashboard Creation: Start with templates for funnels, geographic breakdowns, and time-series trends, then customize them to analyze user journeys, growth metrics, and campaign performance.
How WalletConnect Uses Formo to Power Creator Submissions and Community Research
WalletConnect needed a way to verify onchain actions from community contributors and understand their user base at a deeper level. While searching for a crypto-native form solution, they found that nothing on the market could do what they needed.
They turned to Formo, and within hours, their community was already submitting content through token-gated forms. The team also gained wallet intelligence capabilities to analyze onchain activity and build sharper user personas.
How to Track DeFi Marketing ROI: Connecting Offchain Campaigns to Onchain Conversions
This article reframes ROI around the link between attention and capital movement, rather than treating them as the same signal. ROI only becomes clear when it sits inside a coherent DeFi marketing strategy.
Step-by-Step Guide to Analytics for Crypto and DeFi Apps With Dynamic
This guide outlines implementing analytics for Dynamic embedded wallets in crypto DeFi apps using the Formo SDK. Steps cover SDK integration, user identification via wallet addresses, event tracking for key transactions like swaps and stakes, and wallet intelligence from ENS and portfolio data.
Web3 Monthly Recap
Building permissionless neobanks by Pantera Capital. Link
The WhatsApp moment for money is here by Chris Dixon. Link
Growing pains by Patrick Mayr. Link
The long game for crypto by Chris Dixon. Link
Stablecoins Are The Next Platform for Money by a16z crypto. Link
2026 Stablecoin Momentum Report by Mo Kasstawi. Link
The Year Ahead for Apps 2026 by Delphi Digital. Link
Blockchain Data APIs Explained by Allium. Link
Load more
Turn data into action
Measure what matters and make impactful decisions with Formo.
Turn data into action
Measure what matters and make impactful decisions with Formo.
Turn data into action
Measure what matters and make impactful decisions with Formo.
Platform
Platform